我正在处理定义一些元素的WSDL文件。事情是这样的:如何避免在具有相同SOAP头的WSDL操作中重复自己
<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>
我有很多WSDL操作的,他们都有着肥皂相同的同一列表:头元素:
<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"/>
是否有某种方式来只有一次,然后定义此以某种方式将它“添加”到wsdl操作中作为某种参考?这样我只需要改变一个地方,如果标题改变或我需要添加一个新的标题。
我一直在试图扩展这样的wsdl:input元素(见下文),但我在这里xml/wsdl明智地说出了我的深度。但这说明了我在寻找什么。
<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 />