WSDL 绑定样式可以是 RPC 样式或文档样式。用法可以是编码的,也可以是文字的。您如何决定使用哪一种样式/用法的组合呢?本文将帮助您解决这个问题。
public void myMethod(int
x); |
<message
name="myMethodRequest">
<part
name="x" type="xsd:int"/>
</message>
<message
name="empty"/>
<portType
name="PT">
<operation name="myMethod">
<input
message="myMethodRequest"/>
<output
message="empty"/>
</operation>
</portType>
<binding
.../>
<!-- I won‘t bother with
the details, just assume it‘s RPC/encoded. --> |
<soap:envelope>
<soap:body>
<myMethod>
<x xsi:type="xsd:int">5</x>
</myMethod>
</soap:body>
</soap:envelope>
|
|
<message
name="myMethodRequest">
<part
name="x" type="xsd:int"/>
</message>
<message
name="empty"/>
<portType
name="PT">
<operation name="myMethod">
<input
message="myMethodRequest"/>
<output
message="empty"/>
</operation>
</portType>
<binding
.../>
<!-- I won‘t bother with
the details, just assume it‘s RPC/
literal. -->
|
<soap:envelope>
<soap:body>
<myMethod>
<x>5</x>
</myMethod>
</soap:body>
</soap:envelope>
|
<types>
<schema>
<element name="xElement" type="xsd:int"/>
</schema>
</types>
<message
name="myMethodRequest">
<part
name="x"
element="xElement"/>
</message>
<message
name="empty"/>
<portType
name="PT">
<operation name="myMethod">
<input
message="myMethodRequest"/>
<output
message="empty"/>
</operation>
</portType>
<binding
.../>
<!-- I won‘t bother with
the details, just assume it‘s
document/literal. -->
|
<soap:envelope>
<soap:body>
<xElement>5</xElement>
</soap:body>
</soap:envelope>
|
|
<types>
<schema>
<element name="myMethod"/>
<complexType>
<sequence>
<element name="x" type="xsd:int"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<message
name="myMethodRequest">
<part
name="
parameters" element="
myMethod"/>
</message>
<message
name="empty"/>
<portType
name="PT">
<operation name="myMethod">
<input
message="myMethodRequest"/>
<output
message="empty"/>
</operation>
</portType>
<binding .../>
<!-- I won‘t bother with
the details, just assume it‘s document/literal. -->
|
<soap:envelope>
<soap:body>
<myMethod>
<x>5</x>
</myMethod>
</soap:body>
</soap:envelope>
|
|
public void myMethod(int
x);
public
void myMethod(int x, String y);
|
|
public void myMethod(int
x);
public void myMethod(int x,
String y);
public
void someOtherMethod(int x);
|
<complexType
name="Node">
<sequence>
<element
name="name" type="xsd:string"/>
<element
name="left" type="Node" xsd:nillable="true"/>
<element
name="right" type="Node" xsd:nillable="true"/>
</sequence>
</complexType> |
<A>
<name>A</name>
<left
href="12345"/>
<right
href="12345"/>
</A>
<B id="12345">
<name>B</name>
<left
xsi:nil="true"/>
<right
xsi:nil="true"/>
</B> |
<A>
<name>A</name>
<left>
<name>B</name>
<left
xsi:nil="true"/>
<right
xsi:nil="true"/>
</left>
<right>
<name>B</name>
<left
xsi:nil="true"/>
<right
xsi:nil="true"/>
</right>
</A> |
<types>
<schema>
<complexType name="animal">
<sequence>
<element
name="name" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="dog">
<complexContent mixed="false">
<extension
base="animal">
<sequence>
<element name="breed" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
</types>
<message
name="in">
<part name="trainee"
type="animal"/>
</message>
<message
name="empty"/>
<portType
name="AnimalTrainer">
<operation
name="train">
<input
message="in"/>
<output
message="empty"/>
</operation>
</portType> |
<soap:envelope>
<soap:body>
<train>
<trainee xsi:type="Dog">
<name>Bob</name>
<breed>Bloodhound</breed>
</trainee>
</train>
</soap:body>
</soap:envelope>
|
原文地址:http://www.cnblogs.com/snailrun/p/3761344.html