WSDL基础语法讲解
- 格式:docx
- 大小:73.73 KB
- 文档页数:21
wsdl文件用法WSDL(Web Services Description Language)是一种用于描述Web 服务的XML语言。
WSDL文件用于定义如何访问和使用特定的Web服务。
它包含了Web服务的详细信息,包括服务地址、可用的操作、操作所需的参数、操作返回的数据类型等。
WSDL文件是从服务端生成的,客户端可以通过解析WSDL文件来了解和使用该Web服务。
以下是WSDL文件的用法和功能的一些详细解释。
1. 描述服务:WSDL文件描述了一个Web服务的所有相关信息。
它指定了服务的名称、命名空间、服务的端口、地址和可用的操作。
2. 定义操作:WSDL文件定义了Web服务可用的操作,并指定了每个操作的名称、输入参数和输出结果。
操作的输入和输出可以是简单的数据类型,也可以是复杂的结构体或对象。
3.指定数据类型:WSDL文件可以定义自定义的数据类型,包括简单类型(如整数、字符串等)和复杂类型(如结构体、数组等)。
4.生成客户端代码:通过解析WSDL文件,客户端可以自动生成与服务进行通信所需的代码。
客户端可以根据WSDL文件中定义的操作和数据类型生成对应的函数调用和相关数据结构。
5.交互规范:WSDL文件规定了客户端与服务端之间的通信协议和消息格式。
它指定了使用哪种协议(如SOAP、HTTP等)来发送请求和接收响应,并定义了请求和响应的消息结构和格式。
6. 发现服务:WSDL文件可以作为服务目录的一部分,提供给其他开发人员用于发现和了解可用的Web服务。
其他人员可以通过查看WSDL文件来了解服务的功能和使用方式。
7. 服务的版本控制:WSDL文件可以将一个Web服务的不同版本进行区分。
通过在WSDL文件中指定版本号,客户端可以选择使用特定版本的服务。
8. 修改服务:当Web服务的接口发生变化时,需要更新对应的WSDL文件。
客户端可以根据新的WSDL文件生成新的代码,以便与更新后的服务进行交互。
10.跨平台和跨语言支持:WSDL文件是基于XML的,具有良好的可扩展性和互操作性。
WebService基础(WSDL、SOAP)Web Service:MS在2000年创造了Web Service这个词,它描述的是允许计算机网络(互联网是典型,但不局限与此)相互通信的一套标准,其核心之一是可扩展标记语言(XML),另一个则是HTTP。
5个基础标准(其中有两个是早就有了的通用标准,他们被用来实现Web Service方法,另外3个是专门用于Web Service的):1. XML 用来描述模型,格式和数据类型的通用格式,其他大多数标准都是用XML来表达的标准。
2. HTTP(HTTPS),互联网底层协议。
HTTP(S)是运用了互联网技术,通过网络发送Web Service的可能的协议之一。
3. WSDL(Web Services Description Language):用来定义服务接口。
描述服务的两个方面:服务的签名(名字和参数),以及服务的绑定和部署细节(协议和位置)。
4. SOAP是Web Service交换数据所准寻的协议。
5. UDDI,管理Web Service的标准(注册和找到服务)通常来说,使用WSDL标准是Web Service的关键特性,其他都是可选的。
例如,不一定非得使用SOAP和HTTP莱发送服务请求,也可以使用其他协议而仍然算在使用Web Service。
另外,UDDI扮演补充的角色,实际中也不用。
WSDL:怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?这就是WSDL。
WSDL标准有不同的版本,主要讲WSDL1.1和WSDL2.0。
相比较于1.1,2.0主要有:•WSDL2.0 is much more simple and easy to learn, some of the ambiguities of WSDL1.2 have removed.•Removal of message constructs. These are specified using the XML schema type system directly.•Improved support for HTTP bindings.•Unlike WSDL1.1, WSDL2.0 core specification supports for REST. Lawrence Mandel wrote a good article about REST support for WSDL2.0.WSDL文件自底向上描述服务。
WSDL 教程WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言, (网络服务描述语言, 的语言, ) 以及如何对它们进行访问。
用于描述 Web Services 以及如何对它们进行访问。
WSDL 简介WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。
的语言。
您应当具备的基础知识在继续学习之前,您需要对下面的知识有基本的了解:• XML • XML 命名空间 • XML Schema如果您希望首先学习这些项目,请访问我们的 XML 系列教程。
什么是 WSDL?• WSDL 指网络服务描述语言 • WSDL 使用 XML 编写 • WSDL 是一种 XML 文档 • WSDL 用于描述网络服务 • WSDL 也可用于定位网络服务 • WSDL 还不是 W3C 标准WSDL 可描述网络服务(Web Services) 可描述网络服务( )WSDL 指网络服务描述语言 (Web Services Description Language)。
WSDL 是一种使用 XML 编写的文档。
这种文档可描述某个 Web service。
它可规定服务的位置,以及 此服务提供的操作(或方法)。
在 W3C 的 WSDL 发展史在 2001 年 3 月,WSDL 1.1 被 IBM、微软作为一个 W3C 纪录(W3C note)提交到有关 XML 协 议的 W3C XML 活动,用于描述网络服务。
(W3C 纪录仅供讨论。
一项 W3C 纪录的发布并不代表它已被 W3C 或 W3C 团队亦或任何 W3C 成 员认可。
)在 2002 年 7 月,W3C 发布了第一个 WSDL 1.2 工作草案。
请在我们的 W3C 教程 阅读更多有关规范的状态及时间线。
WSDL 文档WSDL 文档仅仅是一个简单的 XML 文档。
WSDL文档编写规范与调用优化指南一、引言Web Services Description Language(WSDL)是一种用于描述和定位Web服务的XML格式。
WSDL文档的编写规范和调用优化对于确保Web服务的可靠性和性能至关重要。
本文将详细介绍WSDL文档的编写规范以及调用优化的指南。
二、WSDL文档编写规范1. 命名规范在编写WSDL文档时,应遵循一致的命名规范。
建议使用有意义的、描述性的名称来定义WSDL元素和属性,以便于其他开发人员理解和使用。
例如,使用清晰的名称来命名消息、操作和端口等。
2. 合理组织结构WSDL文档应具有良好的组织结构,以便于阅读和理解。
建议使用合适的层次结构和标签来组织信息,并根据需要使用注释或文档注释来提供额外的解释。
3. 准确描述Web服务接口在WSDL文档中,准确描述Web服务接口是至关重要的。
应明确列出每个操作的输入和输出消息,并定义它们的数据类型、格式和协议。
此外,还应指定操作的访问方式(如HTTP、SOAP等)和所需的参数。
4. 使用注释提供额外信息通过使用注释和文档注释,可以为其他开发人员提供有关WSDL文档的附加信息。
注释可以包括一些操作的特殊要求、调用示例或其他相关说明。
这有助于提高文档的可读性和易用性。
5. 更新及时随着Web服务的演进,可能会对其进行修改和更新。
为了确保WSDL文档的准确性和实用性,应定期进行更新,使其始终与实际代码保持一致。
三、调用优化指南1. 合理选择通信协议在使用Web服务时,应根据实际需求合理选择通信协议。
如果需要高可靠性和安全性,可以选择基于SOAP的协议,如SOAP 1.2。
如果数据量较小且需要更低的延迟,可以选择RESTful风格的Web服务。
2. 精简消息传输在WSDL文档中定义的消息结构应尽可能精简和高效。
避免在消息中包含过多的冗余信息,减少网络传输的数据量,提高调用效率。
3. 使用数据压缩对于大数据量的消息,可以考虑使用数据压缩来减少网络传输的数据量。
WSDL文档编写规范与生成工具使用指南一、前言WSDL(Web Services Description Language)是一种用于描述Web 服务的XML格式标记语言,它定义了Web服务的接口、操作和消息格式等信息。
本文将介绍WSDL文档的编写规范以及使用指南。
二、WSDL文档编写规范1. 命名规范在编写WSDL文档时,应遵循一定的命名规范,以保证文档的清晰易懂。
以下是一些常用的命名规范:- 使用清晰的英文单词或词组作为元素和属性的名称;- 为每个元素或属性使用具有描述性的名称,以便读者能够快速了解其含义;- 使用驼峰命名法或下划线命名法来命名元素和属性。
2. 结构规范WSDL文档应该具有清晰的结构,以便读者能够快速找到所需的信息。
以下是一个常见的WSDL文档结构:- types:定义消息的数据类型,如简单类型和复杂类型等;- message:定义消息的结构;- portType:定义Web服务的接口,包含一组操作;- binding:将端口类型和传输协议绑定在一起;- service:定义提供Web服务的具体信息,包括服务地址等。
3. 注释规范在编写WSDL文档时,合理使用注释可以增加文档的可读性和可维护性。
以下是一些注释规范:- 在必要的地方添加注释,解释元素或属性的含义;- 使用清晰的语言描述注释内容,避免使用模糊或不明确的词汇;- 注释应该与代码对齐,以便读者能够轻松理解注释所在的位置。
三、WSDL文档生成工具使用指南1. 常用的WSDL生成工具当编写复杂的WSDL文档时,可以借助一些工具来简化生成过程。
以下是一些常用的WSDL生成工具:- Apache Axis:一个流行的开源WSDL生成工具,支持多种开发语言;- Oracle JDeveloper:一个强大的集成开发环境,提供了WSDL文档生成的功能;- Eclipse Web Tools Platform:一个基于Eclipse平台的插件,支持WSDL生成和编辑等功能。
什么是 WSDL?∙WSDL 指网络服务描述语言∙WSDL 使用 XML 编写∙WSDL 是一种 XML 文档∙WSDL 用于描述网络服务∙WSDL 也可用于定位网络服务∙WSDL 还不是 W3C 标准WSDL 可描述网络服务(Web Services)WSDL 指网络服务描述语言 (Web Services Description Language)。
WSDL 是一种使用 XML 编写的文档。
这种文档可描述某个 Web service。
它可规定服务的位置,以及此服务提供的操作(或方法)。
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 语法这一节。
WebService 之 WSDL文件讲解恩,我想说的是,是不是经常有人在开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户给你一个WSDL文件,说按照上面的进行适配,嘿嘿,这个时候,要是你以前没有开发过,肯定会傻眼,那如果你想学习的话,就认真的看下面的讲解咯:一、WSDL概述WebServices Description Language (WSDL Web服务语言)是一个用于精确描述Web Service 的文档格式。
WSDL非常适合于用作代码生成器,它能够读取WSDL文档,并且可以为访问Web服务生成一个程序化的接口,大多数软件供应商和主要的标准机构(包括 W3C、WS-I和OASIS)都支持WSDL。
例如:JAX-RPC provider(例如:BEA Weblogic)通过API用WSDL生成相应的占位程序;IBM WebSphere、以及Apache Axis都有自己的工具生成相关的代码。
下图是一个例子:上面的例子JAX-RPC通过读取WSDL文档,创建JAX-RPC RMI接口(endpoint接口)和实现此接口的网络占位程序(stub)。
客户端程序通过RMI接口,Stub和Web Service服务端交换SAOP消息。
二、WSDL基本结构WSDL文档是一个遵循WSDL XML模式的XML文档(文档实例);类似于:SOAP文档是一个遵循SOAP XML模式的XML文档(文档实例);一个WSDL文档的根元素是definitions元素,WSDL文档包含7个重要的元素:types, import, message, portType, operations, binding和service元素。
三、WSDL声明3.1 XML声明<?xml version="1.0" encoding="UTF-8"?>WSDL的声明必须定义成使用:UTF-8 或者UTF-16 编码。
WSDL教程什么是 WSDL?∙WSDL 指网络服务描述语言∙WSDL 使用 XML 编写∙WSDL 是一种 XML 文档∙WSDL 用于描述网络服务∙WSDL 也可用于定位网络服务∙WSDL 还不是 W3C 标准WSDL 可描述网络服务(Web Services)WSDL 指网络服务描述语言 (Web Services Description Language)。
WSDL 是一种使用 XML 编写的文档。
这种文档可描述某个 Web service。
它可规定服务的位置,以及此服务提供的操作(或方法)。
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 文档中。
Web服务描述语言(WSDL) 1.02000年9月25日作者(按姓氏字母顺序排列):Erik Christensen,MicrosoftFrancisco Curbera,IBMGreg Meredith,MicrosoftSanjiva Weerawarana,IBM版权所有© 2000 Ariba,International Business Machines Corporation,Microsoft摘要WSDL 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。
这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。
相关的具体端点即组合成为抽象端点(服务)。
可以对 WSDL 进行扩展,这样无论通信时使用何种消息格式或网络协议,都可以对端点及其消息进行描述。
但是,本文档中所述的绑定只涉及有关如何将 WSDL 与 SOAP 1.1、HTTP GET/POST 和 MIME 一起使用的问题。
此版本的 WSDL 语言尚处于初步阶段,没有提供框架来说明端点的撰写过程。
描述这些约定的完整框架应包含撰写服务的方式和表达服务行为的方式(即相应的用于发送和接收消息的规则)。
服务的撰写应满足两个要求:(1) 确保类型的安全性,(2) 允许在运行时通过交换和绑定服务引用来传递引用。
后面的这一条对于在运行期协商约定以及捕获引用服务和代理服务的行为至关重要。
WSDL 规范的作者希望及时发布 WSDL 的修订版和/或一些附加文档,包括:(1) 撰写服务的框架;(2) 描述服务行为的框架。
状态本草案介绍了 Ariba、IBM 和 Microsoft 当前在服务描述方面的一些思路。
它对 NASSL、SCL 和 SDL(有关这方面的早期建议)中的一些概念进行了整理合并。
目录1.简介2.服务定义o文档结构o类型o消息o端口类型o绑定o端口o服务3.SOAP 绑定o SOAP 示例o SOAP 绑定如何扩展 WSDLo soap:bindingo soap:operationo soap:bodyo soap:faulto soap:headero soap:address4.HTTP GET 和 POST 绑定o HTTP GET/POST 示例o HTTP GET/POST 绑定如何扩展 WSDLo http:addresso http:bindingo http:operationo http:urlEncodedo http:urlReplacement5.MIME 绑定o MIME 绑定示例o MIME 绑定如何扩展 WSDLo mime:contento mime:multipartRelatedo soap:bodyo mime:mimeXml6.参考资料o有关 URI 的说明o WSDL 示例的线上格式o扩展性元素的位置o架构简介由于通信协议和消息格式在 Web 社区中已经过标准化,因而有可能以某种结构化的方式对通信加以描述,而且实现这一点也显得日益重要。
为什么使用WSDL?像Internet协议之类的标准有没有为权威所利用,或者人们这样看待它是因为顺之所获的好处远远超出了代价?曾经有许多试图建立的标准都流产了。
有时候,那些还没有普遍使用的标准甚至由法令或政府规定强行推出:Ada语言就是一例。
我相信正是跟随标准所带来的好处使它广泛接受。
例如,对于铁路服务来说,真正重要的是,不同公司所铺设的铁路结合到一起,或者是来自好几个公司的产品协调的工作在一起。
几家大的企业合力建立了SOAP标准。
Web Service描述语言(WSDL)向这种Web Service的提供商和用户推出了方便的协调工作的方法,使我们能更容易的获得SOAP的种种好处。
几家公司的铁道并在一起不算什么难事,他们所需遵循的只是两轨间的标准距离。
对Web Service来说,这要复杂得多。
我们必须先制定出指定接口的标准格式。
曾经有人说SOAP并不真需要什么接口描述语言。
如果SOAP是交流纯内容的标准,那就需要一种语言来描述内容。
SOAP消息确实带有某些类型信息,因此SOAP允许动态的决定类型。
但不知道一个函数的函数名、参数的个数和各自类型,怎么可能去调用这个函数呢?没有WSDL,我可以从必备文档中确定调用语法,或者检查消息。
随便何种方法,都必须有人参与,这个过程可能会有错。
而使用了WSDL,我就可以通过这种跨平台和跨语言的方法使Web Service代理的产生自动化。
就像COM和CORBA的IDL文件,WSDL文件由客户和服务器约定。
注意由于WSDL设计成可以绑定除SOAP以外的其他协议,这里我们主要关注WSDL在HTTP上和SOAP的关系。
同样,由于SOAP目前主要用来调用远程的过程和函数,WSDL支持SOAP传输的文档规范。
WSDL 1.1已经作为记录递交给W3C(见/TR/wsdl.html)WSDL文档结构若要理解XML文档,将之看作块状图表非常有用。
下图以XML的文档形式说明了WSDL 的结构,它揭示了WSDL文档五个栏之间的关系。
WSDL文档可以分为两部分。
顶部分由抽象定义组成,而底部分则由具体描述组成。
抽象部分以独立于平台和语言的方式定义SOAP消息,它们并不包含任何随机器或语言而变的元素。
这就定义了一系列服务,截然不同的网站都可以实现。
随网站而异的东西如序列化便归入底部分,因为它包含具体的定义。
l 抽象定义Types独立与机器和语言的类型定义Messages包括函数参数(输入与输出分开)或文档描述PortTypes引用消息部分中消息定义来描述函数签名(操作名、输入参数、输出参数)2 具体定义BindingsPortTypes部分的每一操作在此绑定实现Services确定每一绑定的端口地址下面的图中,箭头连接符代表文档不同栏之间的关系。
点和箭头代表了引用或使用关系。
双箭头代表"修改"关系。
3-D的箭头代表了包含关系。
这样,各Messages栏使用Types栏的定义,PortTypes栏使用Messages栏的定义;Bindings栏引用了PortTypes栏,Services栏引用Bindings栏,PortTypes和Bindings栏包含了operation元素,而Services栏包含了port元素。
PortTypes栏里的operation元素由Bindings栏里的operation元素进一步修改或描述。
在此背景中,我将使用标准的XML术语来描述WSDL文档。
Element是指XML的元素,而"attribute"指元素的属性。
于是:内容也可能由一个或多个元素以递归的方式组成。
根元素是所有元素之中最高级的元素。
子元素总是从属于另一个元素,父元素。
注意,文档之中可能只有一个Types栏,或根本没有。
所有其他的栏可以只有零元素、单元素或是多元素。
WSDL的列表要求所有的栏以固定的顺序出现:import, types, message, portType, binding, service。
所有的抽象可以是单独存在于别的文件中,也可以从主文档中导入。
图一:抽象定义和具体定义WSDL文件示例让我们来研究一下WSDL文件,看看它的结构,以及如何工作。
请注意这是一个非常简单的WSDL文档实例。
我们的意图只是说明它最显著的特征。
以下的内容中包括更加详细的讨论。
xmlns:xsd="/2001/X MLSchema"xmlns:soap="/wsdl/soap/"xmlns:stk="/soap-toolkit/wsdl-extension"xmlns="/wsdl/"><types><schema targetNamespace="/xsd"xmlns="/2001/XMLSchema"xmlns:SOAP-ENC="/soap/encoding/"xmlns:wsdl="/wsdl/"elementFormDefault="qualified" ></schema></types><message name="Simple.foo"><part name="arg" type="xsd:int"/></message><message name="Simple.fooResponse"><part name="result" type="xsd:int"/></message><portType name="SimplePortType"><operation name="foo" parameterOrder="arg" ><input message="wsdlns:Simple.foo"/><output message="wsdlns:Simple.fooResponse"/></operation></portType><binding name="SimpleBinding" type="wsdlns:SimplePortType"><stk:binding preferredEncoding="UTF-8" /><soap:binding style="rpc"transport="/soap/http"/><operation name="foo"><soap:operation soapAction="/action/Simple.foo"/><input><soap:body use="encoded" namespace="/message/"encodingStyle="/soap/encoding/" /></input><output><soap:body use="encoded" namespace="/message/"encodingStyle="/soap/encoding/" /></output></operation>以下是该实例文档的总述:稍后我将详细讨论每一部分的细节。
第一行申明该文档是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函数等效:这个例子足见XML和C相比要冗长的多。
(包括<message>元素,XML在示例中共使用了12行代码来表达相同的单行函数声明。
)Bindings栏可以有零个、一个或者多个<binding>元素。
它的意图是制定每个<operation >通过网络调用和回应。
Services栏同样可以有零个、一个、多个<service>元素。
它还包含了<port>元素,每个<port>元素引用一个Bindings栏里的<binding>元素。
Bindings和Services栏都包含WSDL文档。
Namespace<definitions>和子节点<schema>都是namespace属性:<definitions name="FooSample"targetNamespace="/wsdl/"xmlns:wsdlns="/wsdl/"xmlns:typens="/xsd"xmlns:xsd="/2001/X MLSchema"xmlns:soap="/wsdl/soap/"xmlns:stk="/soap-toolkit/wsdl-extension"xmlns="/wsdl/"><types><schema targetNamespace="/xsd"xmlns="/2001/XMLSchema"xmlns:SOAP-ENC="/soap/encoding/"xmlns:wsdl="/wsdl/"elementFormDefault="qualified" ></schema></types>每个namespace属性都声明了一个缩略语,用在文档中。