WSDL 文档结构
WSDL 文档是利用这些主要的元素来描述某个 web service 的:
元素定义
<portType> |
web service 执行的操作 |
<message> |
web service 使用的消息 |
<types> |
web service 使用的数据类型 |
<binding> |
web service 使用的通信协议 |
一个 WSDL 文档的主要结构是类似这样的:
<definitions>
<types>
definition of types........
</types>
<message>
definition of a message....
</message>
<portType>
definition of a port.......
</portType>
<binding>
definition of a binding....
</binding>
</definitions>
WSDL 文档可包含其它的元素,比如 extension 元素,以及一个 service 元素,此元素可把若干个 web services 的定义组合在一个单一的 WSDL 文档中。
如需完整的语法概述,请访问 WSDL 语法 这一节。
WSDL 端口
<portType> 元素是最重要的 WSDL 元素。
它可描述一个 web service、可被执行的操作,以及相关的消息。
可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。
WSDL 消息
<message> 元素定义一个操作的数据元素。
每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。
WSDL types
<types> 元素定义 web service 使用的数据类型。
为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。
WSDL Bindings
<binding> 元素为每个端口定义消息格式和协议细节。
WSDL 实例
这是某个 WSDL 文档的简化的片段:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
在这个例子中,<portType> 元素把 "glossaryTerms" 定义为某个端口的名称,把 "getTerm" 定义为某个操作的名称。
操作 "getTerm" 拥有一个名为 "getTermRequest" 的输入消息,以及一个名为 "getTermResponse" 的输出消息。
<message> 元素可定义每个消息的部件,以及相关联的数据类型。
对比传统的编程,glossaryTerms 是一个函数库,而 "getTerm" 是带有输入参数 "getTermRequest" 和返回参数 getTermResponse 的一个函数。
WSDL 端口可描述由某个 web service 提供的界面(合法操作)。
WSDL 端口
<portType> 元素是最重要的 WSDL 元素。
它可描述一个 web service、可被执行的操作,以及相关的消息。
端口定义了指向某个 web service 的连接点。可以把该元素比作传统编程语言中的一个函数库(或一个模块、或一个类),而把每个操作比作传统编程语言中的一个函数。
操作类型
请求-响应是最普通的操作类型,不过 WSDL 定义了四种类型:
类型定义
One-way |
此操作可接受消息,但不会返回响应。 |
Request-response |
此操走可接受一个请求并会返回一个响应 |
Solicit-response |
此操作可发送一个请求,并会等待一个响应。 |
Notification |
此操作可发送一条消息,但不会等待响应。 |
One-Way 操作
一个 one-way 操作的例子:
<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
在这个例子中,端口 "glossaryTerms" 定义了一个名为 "setTerm" 的 one-way 操作。
这个 "setTerm" 操作可接受新术语表项目消息的输入,这些消息使用一条名为 "newTermValues" 的消息,此消息带有输入参数 "term" 和 "value"。不过,没有为这个操作定义任何输出。
Request-Response 操作
一个 request-response 操作的例子:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
在这个例子中,端口 "glossaryTerms" 定义了一个名为 "getTerm" 的 request-response 操作。
"getTerm" 操作会请求一个名为 "getTermRequest" 的输入消息,此消息带有一个名为 "term" 的参数,并将返回一个名为 "getTermResponse" 的输出消息,此消息带有一个名为 "value" 的参数。
WSDL 绑定可为 web service 定义消息格式和协议细节。
绑定到 SOAP
一个 请求 - 响应 操作的例子:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation
soapAction="http://example.com/getTerm"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
binding 元素有两个属性 - name 属性和 type 属性。
name 属性定义 binding 的名称,而 type 属性指向用于 binding 的端口,在这个例子中是 "glossaryTerms" 端口。
soap:binding 元素有两个属性 - style 属性和 transport 属性。
style 属性可取值 "rpc" 或 "document"。在这个例子中我们使用 document。transport 属性定义了要使用的 SOAP 协议。在这个例子中我们使用 HTTP。
operation 元素定义了每个端口提供的操作符。
对于每个操作,相应的 SOAP 行为都需要被定义。同时您必须如何对输入和输出进行编码。在这个例子中我们使用了 "literal"。
分享到:
相关推荐
Web服务是一种基于网络的分布式计算技术,允许不同计算机之间通过...通过WSDL文档的结构化描述,开发者能够更加精确地定义服务,而客户端程序则能够通过解析WSDL文档来发现服务的接口细节,并通过网络调用这些服务。
### WSDL文档结构与各标签详解 #### 一、引言 WSDL(Web Services Description Language)是一种基于XML的语言,用于描述网络服务的功能、方法、输入输出格式等信息。通过WSDL文档,不同平台和语言之间的应用程序...
#### 四、WSDL文档结构 WSDL文档通常包含以下几个主要部分: 1. **Definitions** - 定义了服务的各种元素,如数据类型、消息、端口类型、端口和绑定。 - 这些定义是抽象的,并不依赖于特定的传输协议或消息格式...
WSDL文档结构包含以下几个关键元素: 1. **Types**:这个元素用于定义数据类型,通常使用XML Schema来定义,以便描述消息中可能的数据结构。 2. **Import**:用于引入其他WSDL文档或XML Schema文档,以便重用和...
首先,理解WSDL文档的结构至关重要。WSDL文档包含了服务的端点(即地址)、操作(对应于服务的方法)以及消息和绑定(定义了数据传输的方式)。DOM(Document Object Model)是Java处理XML文档的一种常见方式,它将...
**WSDL文档结构** WSDL文档由两大部分组成:抽象定义和具体定义。 1. **抽象定义**: - **Types**:定义独立于编程语言和平台的数据类型。 - **Messages**:描述服务操作所需的输入和输出消息,这些消息可以包含...
1. **WSDL文档结构** WSDL文档通常包含以下关键元素: - `wsdl:definitions`:这是WSDL文档的根元素,包含了服务的定义。 - `wsdl:types`:定义数据类型,可以是XML Schema或其他类型系统。 - `wsdl:message`:...
WSDL文档结构是定义Web服务的关键。WSDL文档的基本构成包括以下几个主要元素: 1. <definitions>:这是整个WSDL文档的根元素,它定义了WSDL文档中所有其他元素。 2. <types>:这个元素包含Web服务使用的所有数据类型...
5. **生成的WSDL文档结构** WSDL文档通常包括以下几个部分: - `types`:定义服务使用的数据类型。 - `message`:描述消息的结构,包括输入和输出参数。 - `portType`:定义服务的操作集合。 - `binding`:指定...
WSDL 文档结构可以分为两部分:抽象定义和具体定义。抽象定义部分定义了服务的接口和行为,而具体定义部分则定义了服务的实现细节。抽象定义部分包括 Types、Messages、PortTypes 等元素,而具体定义部分包括 ...
2. **WSDL文档结构** - **<wsdl:definitions>**:WSDL文档的根元素,包含所有其他元素的定义。 - **<wsdl:types>**:定义数据类型,通常使用XSD(XML Schema Definition)来描述消息结构。 - **<wsdl:message>**...
WebService_WSDL结构分析是对WebService_WSDL文档的结构进行了详细的分析,阐述了WSDL文档的组成元素和每个元素的作用。WSDL(Web Services Description Language,Web服务描述语言)是一种XML Application,用于...
#### 四、WSDL文档结构 WSDL文档通常包含以下几个关键部分: - **Imports**:用于导入其他WSDL文件或XML Schema文件,便于重用定义。 - **Types**:定义了XSD schema,用于描述消息中数据的类型。 - **Messages**...
WSDL文档结构: WSDL文档由两个主要部分组成:抽象定义和具体定义。 1. 抽象定义: - **Types**:定义与平台和编程语言无关的数据类型,如简单类型(string, integer等)和复杂类型(自定义对象)。 - **Messages...
1. **WSDL文档结构** - **服务(Service)**:定义了服务的位置,即在哪里可以找到服务的实现。它由一个或多个端点(Port)组成,每个端点对应服务的一个实例。 - **接口(Interface)**:描述服务提供的操作集合...
WSDL文档的这种结构允许服务提供者和消费者之间进行清晰的通信,确保服务的正确使用和互操作性。开发者可以使用各种工具,如Apache Axis2、CXF和XFire等,来生成和处理WSDL文档,简化Web服务的开发和部署流程。 ...
WSDL文档结构: WSDL文档通常分为两个主要部分:抽象定义和具体定义。 1. 抽象定义: - Types:这部分定义与平台和编程语言无关的数据类型,如简单类型或复杂类型的XML Schema。 - Messages:描述服务交互中的...
WSDL文档结构** WSDL文档主要由以下7个关键元素构成,它们都嵌套在`<definitions>`根元素内: - **types**: 定义数据类型的容器,通常使用XML Schema来定义数据类型。 - **import**: 用于导入其他WSDL文档或XML ...
WSDL文档结构由一系列相互关联的元素构成,主要包括: 1. **types**:这个元素用来定义数据类型,通常使用XML Schema中的类型系统。它是数据结构的容器,为消息中包含的数据提供类型信息。 2. **message**:表示...
### WSDL文档结构 WSDL文档的结构可以分为抽象定义和具体定义两个层次: - **Types**:定义了WSDL中使用的数据类型,通常是XSD(XML Schema Definition)的引用。 - **Messages**:描述了服务交换的数据消息的结构...