Ich arbeite an einer WSDL-Datei, die eine Anzahl von Elementen definiert. Etwas wie folgt aus:So vermeiden Sie, sich in WSDL-Operationen mit identischen SOAP-Headern zu wiederholen
<wsdl:operation name="MyOperationName">
<soap:operation soapAction="http://www.domain.dk/myschema#MyService" style="document"/>
<wsdl:input name="MyServiceRequest">
<soap:header use="literal" part="SecurityHeader" message="tns:SecurityHeader"/>
<soap:header use="literal" part="SomethingElseHeader" message="tns:SomethingElseHeader"/>
<soap:header use="literal" part="WhitelistingHeader" message="tns:WhitelistingHeader" wsdl:required="true"/>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="MyServiceResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="MyFault">
<soap:fault name="MyFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
Ich habe eine Menge von Wsdl Operationen und sie alle teilen die gleiche identische Liste von soap: Header-Elemente:
<soap:header use="literal" part="SecurityHeader" message="tns:SecurityHeader"/>
<soap:header use="literal" part="SomethingElseHeader" message="tns:SomethingElseHeader"/>
<soap:header use="literal" part="WhitelistingHeader" message="tns:WhitelistingHeader" wsdl:required="true"/>
Gibt es eine Möglichkeit, dies nur einmal zu definieren und dann Irgendwie "hinzufügen" Sie es zu den WSDL-Operationen als irgendeine Art von Referenz? Auf diese Weise würde ich nur etwas ändern müssen, wenn sich die Header ändern oder ich einen neuen Header hinzufügen müsste.
Ich habe versucht, das wsdl: Eingabeelement wie folgt zu erweitern (siehe unten), aber ich bin hier meiner Meinung nach xml/wsdl klug. Aber das veranschaulicht, wonach ich suche.
<xs:complexType name="StandardHeaders">
<xs:simpleContent>
<xs:extension base="wsdl:operation">
<soap:header use="literal" part="SecurityHeader" message="tns:SecurityHeader"/>
<soap:header use="literal" part="SomethingElseHeader" message="tns:SomethingElseHeader"/>
<soap:header use="literal" part="WhitelistingHeader" message="tns:WhitelistingHeader" wsdl:required="true"/>
</xs:extension>xx
</xs:simpleContent>
</xs:complexType>
...
<wsdl:input name="MyServiceRequest">
<tns:StandardHeaders />