考虑一下我有任何标准 WSDL 文件(以 XML 表示):
<wsdl:definitions>
<wsdl:types>
...
</wsdl:types>
<wsdl:message>
...
</wsdl:message>
<wsdl:portType name="countrySoap”>
<wsdl:operation name="GetCountryByCountryCode">
<wsdl:documentation>Get country name by country code</wsdl:documentation>
<wsdl:input message="tns:GetCountryByCountryCodeSoapIn" />
<wsdl:output message="tns:GetCountryByCountryCodeSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetISD">
<wsdl:documentation>Get International Dialing Code </wsdl:documentation>
<wsdl:input message="tns:GetISDSoapIn" />
<wsdl:output message="tns:GetISDSoapOut" />
</wsdl:operation>
...
<wsdl:portType name="countrySoap”>
....
</wsdl:definitions>
我想做的是有一种简单/有效的方法来交换每条消息的输入和输出消息。
例如,我想要:
<wsdl:operation name="GetCountryByCountryCode">
<wsdl:documentation>Get country name by country code</wsdl:documentation>
<wsdl:input message="tns:GetCountryByCountryCodeSoapOut" />
<wsdl:output message="tns:GetCountryByCountryCodeSoapIn" />
</wsdl:operation>
我一直在使用的示例 wsdl 文件可以在这里找到: http ://www.webservicex.net/country.asmx?WSDL
进一步说明:
- 我可能正在寻找基于 XSLT 的解决方案,因为在我看来这似乎更有效。例如,我当前的解决方案是基于 Java 的,但它似乎没有我想要的那么高效。
- 如果解决方案能够忽略任何命名空间,那就太好了,例如:一些 wsdl 文件显示为:
wsdl:definitions
,wsdl:portType
,wsdl:operation
- 而其他可能只是definitions
,portType
,operation
等。