本文转自:http://blog.csdn.net/changyuming/article/details/3042601
WSDL把service定义为网络端点(或port)集合。在WSDL中,端点和消息的抽象定义与具体的网络部署或数据格式分开定义。这允许对抽象定义的重用。
WSDL中主要包含以下6个元素:
(1)definitions:是WSDL文档的根源素,主要用来定义web服务的名称、声明一些命名空间并包含下面的几个元素。
(2)types:包含一些WSDL文档中使用的数据类型定义。如果WSDL文档中只使用xml架构内建的简单类型,则可以省略types元素。
(3)message:是对被交换数据的抽象描述。它描述了一个单向的消息,即它要么是一个单一的请求消息,要么是一个单一的响应消息。message元素定义了消息的名称并包含0个或多个part元素,它们表示消息的参数或消息的返回值。
(4)portType:表示端点支持的一组抽象操作。可以把多个message元素结合在一起来构成一个完整的单向或双向操作。
(5)binding:为一个特定的端口类型指定了具体的协议和数据格式。
(6)service:是一组相关端口(使用port元素表示)的集合,其中,每一个端口都表示一个端点,包含具体的绑定和网络地址。
除了以上的6个主要元素之外,WSDL文档中还可以包含documentation元素(用来添加注释)和import元素(用来导入外部文档)。其中在documentation元素中可以包含肉眼可以读的注释信息,这个元素可以出项在任何的WSDL元素中。
1、definitions元素
是WSDL文档的根源素,用药声明一些命名空间。
下面是常用的命名空间:
前缀
|
命名空间URI
|
描述
|
http
|
http://schemas.xmlsoap.org/wsdl/http
|
WSDL HTTP GET POST绑定的命名空
|
soap
|
http://schemas.xmlsoap.org/wsdl/soap
|
WSDL SOAP绑定的命名空间
|
xsd
|
http://www.w3.org/2001/XMLSchema/
|
XSD定义的架构命名空间
|
soapenc
|
http://schemas.xmlsoap.org/soap/encoding
|
SOAP1.1定义的编码命名空间
|
mime
|
http://schemas.xmlsoap.org/wsdl/mime/
|
WSDL MIME绑定的命名空间
|
wsdl
|
http://schemas.xmlsoap.org/wsdl/
|
WSDL架构的命名空间
|
在
definitions元素中也可以使用targetNamespace属性指定当前WSDL文档的目标命名空间,并可以为它指定一个前缀,这样就可以在
当前WSDL文档中通过它来引用自身。例如,下面的两条声明把http://www.mycompany.com/service指定为当前WSDL文档
的目标命名空间,并可以在文档中使用s0前缀来引用它:
xmlns:s0="http://www.mycompany.com/service"
targetNamespace="http://www.mycompany.com/service"
可以使用definitions元素的name属性为WSDL文档指定一个可选名称。
另外,还可以在definitions元素中使用import元素导入外部的文档,并给它指定一个命名空间,形式为:<import namespace="uri" location="uri">
<wsdl:import namespace="http://port.waitingfortime.org/" location="http://localhost:9999/HelloWorld?wsdl=HelloWorld.wsdl" />
导入外部文档之后,就可以在当前文档中引用外部文档中的类型和元素。
通过使用import元素,用户可以根据抽象级别把不同的元素定义放在不同的文档中,然后再根据需要导入它们。
2、type元素
包含一些与消息相关额数据类型定义。wsdl通常使用xsd作为它的内建类型系统以达到最大的互操作性
和平台无关性。因为不可能使用一个单一的类型系统语法来描述所有的抽象类型,所以wsdl允许通过扩充性元素来增加类型系统。扩充性元素可以出项在
types元素下,指定一个类型定义系统并包含这些类型定义。
3、message元素
表
示消息的抽象定义。消息由一个或多个逻辑部分(使用part元素表示)组成,每个部分都可以使用element属性或type属性关联到一个类型上,其中
element属性使用限定名引用一个xsd元素;type属性使用限定名引用一个xsd simpleType或complexType。
格式如下:
<message name="消息名">
<part name="部分名" element="name"(或type="qname")/>
......
</message>
其中,消息的名称应该能够在当前wsdl文档中唯一标识一个消息,部分名应该能够在当前消息中唯一地标识一个部分。如果一个消息具有多个逻辑单元,则用户可
以在message元素中包含多个part子元素;也可以先定义一个表示消息逻辑结构的复杂类型,然后再message元素中仅包含一个引用该类型的
part子元素。
例如,下面定义的AddHttpGetin消息中包含2个part元素:
<message name="AddHttpGetin">
<part name="x" type="s:string"/>
<part name="y" type="s:string"/>
</message>
下面定义的AddSoapin消息中,则只包含一个引用复杂类型的part子元素Add:
<tpyes>
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="x" type="s:int"/>
<s:element minOccurs="1" maxOccurs="1" name="y" type="s:int"/>
</s:sequence>
</s:complexType>
</tpyes>
<message name="AddSoapin">
<part name="parameters" element="s0:Add"/>
</message>
4、portType元素
表
示端口类型的抽象定义,端口类型由一种抽象操作组成。在定义portType元素时,使用name属性指定它的名字。portType元素中可以包含0个
或多个operation子元素,operation元素又可以包含对应于操作参数和返回结果的输入和输出消息,分别使用input和output元素表
示,在这2个元素中可以使用message属性指定它们所对应的消息。例如:
<portType name="MyFirstWebServicesSoap">
<operation name="HelloWorld">
<documentation>返回字符串HelloWorld</documentation>
<input message="s0:HelloWorldSoapin"/>
<output message="s0:HelloWorldSoapOut"/>
</operation>
<operation name="Add">
<documentation>返回两个整数的和</documentation>
<input message="s0:AddSoapin"/>
<output message="s0:AddSoapOut"/>
</operation>
</portType>
5、binding元素
定义了portType元素中的operation和message元素的消息格式和协议细节。一个给定的portType可以具有任意数目的绑定。格式如下:
<wsdl:binding name="绑定名" type="端口类型名">
<wsdl:operation name="操作名">
<wsdl:input name="输入消息名">
</wsdl:input>
<wsdl:output name="输出消息名">
</wsdl:output>
<wsdl:fault name="错误消息名">
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
分享到:
相关推荐
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**:描述了服务交换的数据消息的结构...