encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="FOOSAMPLEService">
<port name="SimplePort" binding="wsdlns:SimpleBinding">
<soap:address location="http://carlos:8080/FooSample/FooSample.asp"/>
</port>
</service>
</definitions>
以下是该实例文档的总述:稍后我将详细讨论每一部分的细节。
第一行申明该文档是 XML。尽管这并不是必需的,但它有助于 XML 解析器决定是
否解析 WSDL 文件或只是报错。第二行是 WSDL 文档的根元素:<definitions>。一
些属性附属于根元素,就像<schema>子元素对于<types>元素。
<types>元素包含了 Types 栏。如果没有需要声明的数据类型,这栏可以缺省。
在 WSDL 范例中,没有应用程序特定的 types 声明,但我仍然使用了 Types 栏,只是
为了声明 schema namespaces。
<message>元素包含了 Messages 栏。如果我们把操作看作函数,<message
>元素定义了那个函数的参数。<message>元素中的每个<part>子元素都和某个参
数相符。输入参数在<message>元素中定义,与输出参数相隔离--输出参数有自己的
<message>元素。兼作输入、输出的参数在输入输出的<message>元素中有它们相
应的<part>元素。输出<message>元素以"Response"结尾,就像以前所用的
"fooResponse"。每个<part>元素都有名字和类型属性,就像函数的参数有参数名和
参数类型。
用于交换文档时,WSDL 允许使用<message>元素来描述交换的文档。
<part>元素的类型可以是 XSD 基类型,也可以是 SOAP 定义类型(soapenc)、
WSDL 定义类型(wsdl)或是 Types 栏定义的类型。
一个 PortTypes 栏中,可以有零个、单个或多个<portType>元素。由于抽象
PortType 定义可以放置在分开的文件中,在某个 WSDL 文件中没有<portType>元素
是可能的。上面的例子里只是用了一个<portType>元素。而一个<portType>元素可
在<operation>元素中定义一个或是多个操作。示例仅使用了一个名为"foo"的<
operation>元素。这和某个函数名相同。<operation>元素可以有一个、两个、三个
子元素:<input>, <output> 和<fault>元素。每个<input>和<output>元素中的
消息都引用 Message 栏中的相关的<message>元素。这样,示例中的整个<portType
>元素就和以下的 C 函数等效:
评论0