我可以拥有一个只使用纯XML数据而不是SOAP的WSDL吗?
如果可以,请为我提供一个WSDL示例?
答案 0 :(得分:17)
是的,可以在WSDL中描述通过HTTP发送纯XML数据。在定义操作绑定时,不要使用<soap:binding>
,而是使用<http:binding>
。例如:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:example" xmlns:tns="urn:example">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:example">
<element name="content">
<complexType>
<sequence>
<element name="first" type="string"/>
<element name="second" type="integer"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<message name="id">
<part name="id" type="xsd:string"/>
</message>
<message name="info">
<part name="info" type="tns:content"/>
</message>
<portType name="widgetPortType">
<operation name="getInfo">
<input message="tns:id"/>
<output message="tns:info"/>
</operation>
</portType>
<binding name="binding" type="tns:widgetPortType">
<http:binding verb="POST"/>
<operation name="getInfo">
<http:operation location="getInfo"/>
<input>
<mime:content type="application/x-www-form-urlencoded"/>
</input>
<output>
<mime:mimeXml/>
</output>
</operation>
</binding>
<service name="widgetService">
<port name="port" binding="tns:binding">
<http:address location="http://www.example.org/"/>
</port>
</service>
</definitions>
您可以在此处找到有关使用HTTP绑定的其他信息: http://docs.oracle.com/cd/E19182-01/821-0830/cnfg_http-bc-get-processing_r/index.html