<binding>和<operation>元素
Binding栏是完整描述协议、序列化和编码的地方,Types, Messages和PortType栏处理抽象的数据内容,而Binding栏是处理数据传输的物理实现。Binding栏把前三部分的抽象定义具体化。
把相关的数据制定和消息声明分开,这意味着同一类型服务的提供者可以把一系列的操作标准化。每个提供者可以提供定制的binding来互相区分。
WSDL也有一个重要的结构,使抽象定义可以放在分离的文件中,而不是和Bindings和Services在一起,这样可在不同的服务提供者之间提供标
准化的抽象定义,这很有帮助。例如,银行可以用WSDL文档来标准化一些银行的操作。每个银行仍然可以自由的订制下层的协议、串行优化,及编码。
下面是重载的WSDL示例 的Binding栏,重复在此以便讨论
:
<binding name="fooSampleBinding" type="wsdlns:fooSamplePortType">
<stk:binding preferredEncoding="UTF-8" />
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="foo">
<soap:operation soapAction="http://tempuri.org/action/foo1"/>
<input name="foo1">
<soap:body use="encoded" namespace="http://tempuri.org/message/"
encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/" />
</input>
</operation>
<operation name="foo">
<soap:operation soapAction="http://tempuri.org/action/foo2"/>
<input name="foo2">
<soap:body use="encoded"
namespace="http://tempuri.org/message/"
encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/" />
</input>
</operation>
</binding> |
<binding>元素已经取了一个名字(本例中"fooSampleBinding"),这样就可以被Services栏的<port>元素引用了。
它有一个"type"的属性引用<portType>,本例中就是"wsdlns:fooSamplePortType"。第二行是MSTK2的扩展元素
<stk:binding>,它指定了preferredEncoding属性为"UTF-8"。
<soap:binding>元素指定了所使用的风格("rpc")和传输方式。Transport属性应用了一个namespace,正是这个namespace指明使用HTTP SOAP协议。
有两个同以"foo"命名的<operation>元素。唯一不同的是它们各自的<input>名字,分别为"foo1"和"foo2"。两个
<operation>元素中的<soap:operation>元素有同样的"soapAction"属性,是URI。soapAction属性是
SOAP特定的URI,它只是简单的使用于SOAP消息。所产生的SOAP消息有一个SOAPAction头,而URI也仅在
<soap:operation>元素里才起作用。soapAction属性在HTTP的binding中是必需的,但在其他非HTTP
binding中却不要提供。目前它的使用并不清楚,但它似乎有助于本例中的两个"foo"操作。SOAP
1.1指明soapAction用来确定消息的"意图"。似乎服务器
可以在不解析整个消息的情况下就能使用这一属性来发送消息。实际上,它的使用多种多样。<soap:operation>元素也可以包含另一属性,即"style"属性,在有必要冲突<soap:binding>元素指定的风格时可以使用。
<operation>属性可以包含<input>, <output>
和<fault>的元素,它们都对应于PortType栏中的相同元素。只有<input>元素在上例中提供。这三个元素中的每一个可有一个可选
的"name"属性,在本例中,我们用这种方法来区分同名操作。在本例的<input>元素中有一个<soap:body>元素,它指定了哪些信息被写进
SOAP消息的信息体中。该元素有以下属性:
Use
用于制定数据是"encoded"还
是"literal"。"Literal"指结果SOAP消息包含以抽象定义(Types, Messages,
和PortTypes)指定格式存在的数据。"Encoded"指"encodingStyle"属性决定了编码方式。
Namespace
每个SOAP消息体可以有其自己的namespace来防止命名冲突。这一属性制定的URI在结果SOAP消息中逐字使用。
EncodingStyle
对SOAP编码,它应该有以下URI值:
"http://schemas.xmlsoap.org/soap/encoding"
分享到:
相关推荐
而<binding>和<operation>元素则定义了服务如何绑定到特定的通信协议,例如SOAP协议。文档风格绑定(document-style binding)是指一种绑定方式,它使用文档来传递参数和返回值,而不仅仅是简单的RPC(远程过程...
通过 `<binding>` 和 `<service>` 元素通过指定互联网协议、编码模式和互联网地址实现 `<portType>` 元素。WSDL 定义中既可以不含 `<portType>`, 也可以有多个 `<portType>`, 通常情况下,大多数都含有一个。这一...
- 可能包括其他元素,如`<extension>`和`<service>`,用于将多个Web服务定义组合在一起。 #### 十、WSDL应用实例 - **简化示例**: ```xml <message name="getTermRequest"> <part name="term" type="xs:string...
- **<binding>和<operation>元素** - 绑定(binding)元素将抽象的端口类型与具体的通信协议绑定,而操作(operation)元素则具体描述了如何在一个绑定中执行操作。 - **文档风格绑定** - 文档风格绑定意味着...
`<binding>`元素为每个端口定义了消息格式和协议细节。它是连接抽象服务定义与实际使用的具体协议之间的桥梁。 例如,以下代码片段展示了如何定义一个简单的`<binding>`元素: ```xml <message name="say"> <part...
4. **`<binding>`元素**: 描述了服务使用的通信协议和消息格式的细节。 - 示例: `<binding>` - 可以指定不同的绑定类型,如SOAP绑定,定义了如何将消息映射到特定的协议上。 #### 五、WSDL示例解析 考虑以下简化...
- WSDL文档由一系列XML元素组成,包括`<definitions>`(根元素)、`<types>`、`<import>`、`<message>`、`<portType>`、`<operation>`、`<binding>`和`<service>`等。 - `<types>`定义数据类型,通常使用XML ...
`<operation>`元素在`<binding>`中被再次定义,用于描述特定的绑定细节。 #### 文件样式系结 WSDL支持多种绑定样式,如文档样式(Document-Literal)和RPC样式(RPC-Encoding)。文档样式强调消息的自然语义表示,...
- `<binding>`元素定义了服务的通信协议和消息格式,例如HTTP、SOAP等。 **WSDL文档结构** 典型的WSDL文档结构如下: ```xml <definitions> <types> definition of types......</types> <message> definition of ...
6. **<binding>和<operation>元素**:绑定操作到具体的传输协议上,例如SOAP/HTTP。 7. **文档风格绑定**:描述如何将操作与文档风格的消息绑定起来。 8. **<service>和<port>元素**:定义服务的实际位置和端口。 #...
#### `<binding>`和`<operation>`元素 `<binding>`元素将`<portType>`中的抽象操作绑定到具体的传输协议和消息格式上。每个`<operation>`元素定义了一个具体的操作行为,包括其对应的SOAP Action等细节。 #### ...
- `<definition>`元素:作为WSDL文档的根元素,它包含了整个文档的基本信息,如命名空间、服务名称和目标命名空间。 - `name`属性:可选,用于标识WSDL文档。 - `targetNamespace`属性:指定服务的唯一命名空间,...
4. `<binding>` 元素:定义每个端口的消息格式和协议细节。 5. `<service>` 元素:包含一个或者多个 `<port>` 元素,每个 `<port>` 元素表示一个不同的 Web Service。 使用 PHP 搭建 WebService 服务器 使用 PHP ...
5. **<binding>**:指定服务的实际实现,包括消息的格式和通信协议。 6. **<service>**:可选元素,用于组合多个服务定义,方便管理和部署。 **WSDL元素详解** - **<portType>**:定义服务的行为,例如操作...
`<operation>`元素进一步细化了绑定中的操作,包括SOAP操作的`soapAction`属性以及输入和输出消息的SOAP主体定义。`<soap:body>`元素定义了消息体的使用、命名空间和编码风格。 最后,`<service>`元素定义了服务...
- 示例:`<service name="GlossaryService">` 可以包含多个 `<port>` 元素,每个 `<port>` 都绑定了一个特定的 `<binding>` 和地址。 #### 五、WSDL 示例分析 以下是一个简化版的 WSDL 示例: ```xml <message ...
WSDL文件中的元素如`<portType>`、`<operation>`、`<binding>`和`<service>`等,共同构建了服务的完整描述。例如,`<portType>`定义了服务的一组操作,而`<operation>`描述每个操作的名称、输入和输出消息。`...
<Operation>GetCustomerDetails</Operation> <CustomerId>12345</CustomerId> </Request> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ``` #### SOAP Fault 元素 - **定义**:`SOAP Fault`元素用于处理错误情况...