![]() |
Ableitung eines Abstract Types instanziieren
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:
In einer anderen XSD dann
<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" />
Code:
Ein gültiges XML würde dann zum Beispile beinhalten:
<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>
Code:
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.
<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> Ich versuche zB:
Delphi-Quellcode:
Und bekomme mit Ausführung der zweiten Zeile den foglenden Fehler:
einRequest.RequestDetail.DeclareNamespace('xsi', XSI_NS);
einRequest.RequestDetail.SetAttributeNS('xsi:type', '',TYPE_GEBURT); Zitat:
Gruß, Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz