AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Ableitung eines Abstract Types instanziieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ableitung eines Abstract Types instanziieren

Ein Thema von Sherlock · begonnen am 16. Okt 2015
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#1

Ableitung eines Abstract Types instanziieren

  Alt 16. Okt 2015, 13:06
Ich kämpfe mit der Erzeugung eines SOAP-Envelopes. Mir zur Verfügung steht eine WSDL, die einen Stapel XSD referenziert. Ich habe ein konkretes Problem bei der korrekten Erzeugung eines Knotens. Hier mal ein Auszug aus den Definitionen:
Code:
   <xsd:element name="Request" type="Request" />
   <xsd:complexType name="Request">
      <xsd:sequence>
         <xsd:element ref="ClientInfo" />
         <xsd:element ref="WorkflowInfoRequest" />
         <xsd:element name="RequestDetail" type="RequestDetail" />
      </xsd:sequence>
      <xsd:attribute name="schemaVersion" type="xsd:decimal" use="required" fixed="1.0" />
   </xsd:complexType>

   <xsd:complexType name="RequestDetail" abstract="true" />
In einer anderen XSD dann
Code:
   <xsd:element name="AnzeigeGeburtRequest" type="AnzeigeGeburtRequest"/>
   <xsd:complexType name="AnzeigeGeburtRequest">
      <xsd:complexContent>
         <xsd:extension base="AnzeigeRequest">
            <xsd:sequence>
               <xsd:element ref="AnzeigeGeburt"/>
            </xsd:sequence>
         </xsd:extension>
      </xsd:complexContent>
   </xsd:complexType>
Ein gültiges XML würde dann zum Beispile beinhalten:

Code:
<ns3:RequestDetail xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns3:AnzeigeGeburtRequest">
            <ns3:AnzeigeGeburt>
               <ns3:EntityInfo>
                  <ns3:SourceSystem>ZPS</ns3:SourceSystem>
                  <ns3:Zeitpunkt />
                  <ns3:DurchgefuehrtVon>
Hier nun mein Problem: Wie bekomme ich Delphi beigebracht, daß der Knoten RequestDetail genauso wie im Beispiel auszusehen hat? Der SOAP Assistent bringt mir übrigens nicht, da ich den Soap-Envelope als XML-Datei an ein anderes Programm geben muss, und die ObjectTosOAP-Methode in einen Schemafehler läuft. Darum habe ich den SOAP-Anteil entfernt und die XSDs selbst per Assistenten eingebunden. Das klappt weitestgehend bisher, nur bekomme ich eben diese Abstrakt nach Konkretisierung nicht geregelt.
Ich versuche zB:

Delphi-Quellcode:
  einRequest.RequestDetail.DeclareNamespace('xsi', XSI_NS);
  einRequest.RequestDetail.SetAttributeNS('xsi:type', '',TYPE_GEBURT);
Und bekomme mit Ausführung der zweiten Zeile den foglenden Fehler:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt GebDat_QS.exe ist eine Exception der Klasse EOleException mit der Meldung 'Verweis auf ein nicht deklariertes Namespace-Präfix: 'xsi'' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Ich bin in XML so gar nicht versiert...eventuell gibt es hier aber jemanden, der mir helfen kann?

Gruß,
Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz