English 中文(简体)
WSDL - Quick Guide
  • 时间:2024-11-05

WSDL - Quick Guide


Previous Page Next Page  

WSDL - Introduction

WSDL为网络服务说明语言。 这是描述网络服务的标准格式。 WSDL是由微软和IBM联合开发的。

Features of WSDL

    WSDL是在权力下放和分配的环境中进行信息交流的XML协议。

    WSDL的定义描述了如何利用网络服务以及它将如何运作。

    WSDL是说明如何与基于XML的服务接口的一种语言。

    WSDL是世界通用说明、发现和融合(UDDI)的一个组成部分,是设在罗马的全世界商业登记处。

    WSDL是UDDI使用的语言。

    WSDL被宣布为大炮,并列为W-S-D-L。

WSDL Usage

WSDL经常与SOAP和XML Schema一起使用,通过因特网提供网络服务。 连接网络服务的客户方案可以读到SDL,以确定服务器上有哪些功能。 使用的任何特殊数据类型都包含在以XML Schema为形式的WSDL档案中。 然后,客户可使用SOAP实际称呼WSDL所列的职能之一。

History of WSDL

WSDL 1.1于2001年3月提交,作为W3C号说明,由Ariba、IBM和Microsoft介绍为W3CXML在XML议定书方面开展的活动。

世界网络联合会(W3C)没有认可WSDL 1.1,但刚刚发布了2版草案,作为建议(正式标准),因此得到世界3C的支持。

WSDL - Elements

WSDL将网络服务分为三个具体、可识别的内容,一旦确定,即可合并或重新使用。

可单独界定的《妇女发展权利宣言》的三个主要内容是:

    Types

    Operations

    Binding

WSDL文件有各种内容,但这些内容载于这三个主要内容中,这些内容可以作为单独文件开发,然后可以合并或重新使用,以形成WSDL完整的档案。

WSDL Elements

世界妇女论坛文件载有以下内容:

    这是妇发论坛所有文件的根本内容。 报告界定了网络服务的名称,宣布文件其余部分使用的多个名称空间,并载有本文所述的所有服务内容。

    该信息中使用的数据类型是XML图。

    它是数据的一个抽象定义,其形式是作为整个文件传递的信息,或作为拟被描绘成一种援引方法的论点。

    这是信息操作的抽象定义,例如指明一种方法、电文或业务流程,接受和处理电文。

    它是一套抽象的行动,分为一个或多个终点,界定了为具有约束力的行动收集工作;从抽象的角度来说,收集行动可以被绘制成通过各种具有约束力的运输的地图。

    它是为特定港口类型确定的具体操作程序和数据格式。

    它是一个具有约束力的网络地址,提供了服务通信的目标地址。

    它是一份包含档案中服务定义的相关终点;该服务机构绘制了对港口具有约束力的地图,并包括任何易懂的定义。

除这些主要内容外,妇女地位部的具体规定还界定了以下用途要素:

    。 这部分内容用于提供可供人阅读的文件,可列入《世界可持续发展宣言》的任何其他内容。

    这一要素用于进口其他WSDL文件或XML Schemas。

NOTE-WSDL部分通常自动使用网络服务软件生成。

The WSDL Document Structure

WSDL文件的主要结构就是这样:

<definitions>
   <types>
      definition of types........
   </types>

   <message>
      definition of a message....
   </message>

   <portType>
      <operation>
         definition of a operation.......  
      </operation>
   </portType>

   <binding>
      definition of a binding....
   </binding>

   <service>
      definition of a service....
   </service>
</definitions>

妇女和自联文件还可包含其他内容,如推广内容和服务内容,从而能够将若干网络服务的定义合并为一份WSDL文件。

进一步分析世界可持续发展论坛文件的一个实例。

WSDL - Example

下面是一份WSDL文件,用于展示一个简单的WSDL方案。

让我们承担这项服务,提供一种称为sayHello的公开职能。 这项职能预期只有一个直截了当的参数,并回去了一次直观的问候。 例如,如果你通过参数world。 当时的服务职能sayHello > 回复了问答,“Hello, World>。

Example

页: 1 wsdl file -

<definitions name = "HelloService"
   targetNamespace = "http://www.examples.com/wsdl/HelloService.wsdl"
   xmlns = "http://schemas.xmlsoap.org/wsdl/"
   xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:tns = "http://www.examples.com/wsdl/HelloService.wsdl"
   xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
 
   <message name = "SayHelloRequest">
      <part name = "firstName" type = "xsd:string"/>
   </message>
	
   <message name = "SayHelloResponse">
      <part name = "greeting" type = "xsd:string"/>
   </message>

   <portType name = "Hello_PortType">
      <operation name = "sayHello">
         <input message = "tns:SayHelloRequest"/>
         <output message = "tns:SayHelloResponse"/>
      </operation>
   </portType>

   <binding name = "Hello_Binding" type = "tns:Hello_PortType">
      <soap:binding style = "rpc"
         transport = "http://schemas.xmlsoap.org/soap/http"/>
      <operation name = "sayHello">
         <soap:operation soapAction = "sayHello"/>
         <input>
            <soap:body
               encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
               namespace = "urn:examples:helloservice"
               use = "encoded"/>
         </input>
		
         <output>
            <soap:body
               encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
               namespace = "urn:examples:helloservice"
               use = "encoded"/>
         </output>
      </operation>
   </binding>

   <service name = "Hello_Service">
      <documentation>WSDL File for HelloService</documentation>
      <port binding = "tns:Hello_Binding" name = "Hello_Port">
         <soap:address
            location = "http://www.examples.com/SayHello/" />
      </port>
   </service>
</definitions>

Example Analysis

    Type——使用内在数据类型,并在XMLSchema中加以界定。

      声明HelloRequest - first 姓名

      说Helloresponse——回报值

    Bled - 指示使用SOAP HTTP运输协议。

    - 与URI有约束力的合伙人:http://www.examples.com/SayHello/,可在那里获得经营服务。

WSDL - <definition> Element

<definitions> 内容必须是妇发委会所有文件的根本内容。 它界定了网络服务的名称。

这里是使用定义/i>要素的最后一章中的代码。

<definitions name="HelloService"
   targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl"
   xmlns="http://schemas.xmlsoap.org/wsdl/"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   ................................................
</definitions>

从上述例子来看,我们可以得出结论:finitions -

    它是所有其他元素的集装箱。

    本文件称为Helloservice

    a targetNamespacevide. targetNamespace 是XML Schema的一项公约,使WSDL文件能够提及自己。 例如,我们指定了http://www.examples.com/wsdl/Helloservice.wsdl。

    a 缺省名称:xmlns=http://schemas.xmlsoap.org/wsdl/。 因此,所有没有名称空间的部件,如messageportType,均被视为违约WSDL名称空间的一部分。

    文件其余部分使用的多个名称空间。

名称空间规格并不要求文件出现在特定地点。 重要的一点是,你具体说明了一种独特的价值,不同于界定的所有其他名称空间。

WSDL - <types> Element

网上服务需要界定其投入和产出,以及它们如何被绘制成地图并脱离这些服务。 WSDL <types> 内容是确定网络服务所使用的数据类型。 类型为XML文件或文件部分。

    类型<-i>要素说明用户与服务器之间使用的所有数据类型。

    WSDL并不完全与具体的打字系统挂钩。

    W3C XML Schema规格作为确定数据类型的缺省选择。

    如果该服务只使用XML Schema的简单类型,例如插图和分类,则不需要 类型

    WSDL允许以单独要素界定这些类型,以便这些类型能够用多种网络服务加以重新使用。

这里是摘自W3C规格的法典。 该法典描述了如何在妇女地位部内使用元件。

<types>
   <schema targetNamespace = "http://example.com/stockquote.xsd"
      xmlns = "http://www.w3.org/2000/10/XMLSchema">
		
      <element name = "TradePriceRequest">
         <complexType>
            <all>
               <element name = "tickerSymbol" type = "string"/>
            </all>
         </complexType>
      </element>
		
      <element name = "TradePrice">
         <complexType>
            <all>
               <element name = "price" type = "float"/>
            </all>
         </complexType>
      </element>
		
   </schema>
</types>

数据类型涉及确定数据类型和你打算使用网络服务的格式的问题。 发送人与接收人共享信息类型。 因此,信息的接收者需要获得你用来编码数据的信息,并且必须了解如何编码数据。

WSDL - <message> Element

<message> 内容介绍了网络服务提供者与消费者之间正在交换的数据。

    每个网络服务处有两个信息:投入和产出。

    这些投入说明了网络服务的参数,产出介绍了网络服务的回报数据。

    每一信息均包含0或更多<part>。 参数,每个参数的网络服务功能。

    每一<part> 参数与<types>界定的具体类型有关。 集装箱元素。

让我们从《妇女发展权利宣言》的例章中抽取一部法典。

<message name = "SayHelloRequest">
   <part name = "firstName" type = "xsd:string"/>
</message>

<message name = "SayHelloResponse">
   <part name = "greeting" type = "xsd:string"/>
</message>

这里界定了两个信息内容。 第一项是请求信息SayHelloRequest,第二项是回复信息SayHelloResponse

这些信息中的每一部分都包含一个部分内容。 就请求而言,该部分具体规定了职能参数;在这种情况下,我们规定了一个单一的firstName参数。 对答复而言,该部分具体规定了职能回报值;在这种情况下,我们具体说明了一次问候回报值。

WSDL - <portType> Element

<portType> 内容将多个信息要素结合起来,形成完整的单向或双向操作。

例如,<portType>。 可将一项请求和一份答复信息合并为单一的请求/反应行动。 这在SOAP服务中最常用。 甲型六氯环己烷可以确定多种作业。

让我们从《妇女发展权利宣言》的例章中抽取一部法典。

<portType name = "Hello_PortType">
   <operation name = "sayHello">
      <input message = "tns:SayHelloRequest"/>
      <output message = "tns:SayHelloResponse"/>
   </operation>
</portType>

    港口 类型要素界定了单一操作,称为sayHello

    这项行动包括一个单一的投入信息SayHelloRequest和一个投入信息。

    产出信息SayHelloResponse

Patterns of Operation

WSDL支持四个基本业务模式——

One-way

该处收到信息。 因此,这项行动有一个单一的投入要素。 单向操作的图表是:

<wsdl:definitions .... > 
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken">
         <wsdl:input name = "nmtoken"? message = "qname"/>
      </wsdl:operation>
   </wsdl:portType >
</wsdl:definitions>

Request-response

该处收到信息并发出答复。 因此,该业务有一个投入要素,后面是output要素。 为了消除错误,还可具体列出一个任择的fault要素。 请求答复行动图表是:

<wsdl:definitions .... >
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
         <wsdl:input name = "nmtoken"? message = "qname"/>
         <wsdl:output name = "nmtoken"? message = "qname"/>
         <wsdl:fault name = "nmtoken" message = "qname"/>*
      </wsdl:operation>
   </wsdl:portType>
</wsdl:definitions>

Sopcit-response

该处发出信息并收到答复。 因此,该业务有1个output要素,之后是1个input要素。 为了消除错误,还可具体列出一个任择的fault要素。 收费业务的图表是:

<wsdl:definitions .... >
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens">
         <wsdl:output name = "nmtoken"? message = "qname"/>
         <wsdl:input name = "nmtoken"? message = "qname"/>
         <wsdl:fault name = "nmtoken" message = "qname"/>*
      </wsdl:operation>
   </wsdl:portType >
</wsdl:definitions>

Notification

该处发出信息。 因此,该业务有一个单一的output要素。 通知操作的图表如下:

<wsdl:definitions .... >
   <wsdl:portType .... > *
      <wsdl:operation name = "nmtoken">
         <wsdl:output name = "nmtoken"? message = "qname"/>
      </wsdl:operation>
   </wsdl:portType>
</wsdl:definitions>

WSDL - <binding> Element

< binding> 内容提供了具体细节,说明如何实际将“portType>号”操作传送到电线上。

    可通过多种运输方式提供这些设备,包括吉卜赛人、吉卜赛人、波什尼亚克人、波什尼亚斯人。

    具有约束力的文书就转让portType业务时使用何种议定书提供了具体信息。

    具有约束力的文书提供了服务所在地的信息。

    对于《社会行动计划》议定书,具有约束力的是<soap: binding>,而运输是《社会行动计划》在《吉大港山区行动计划》议定书之上发出的信息。

    您可具体说明单一port Type的多重约束力。

具有约束力的内容有两个特性: 姓名 类型属性。

<binding name = "Hello_Binding" type = "tns:Hello_PortType">

<-> 姓名 属性界定了具有约束力的名称和装设港的类型,在这种情况下是“港口:Hello_PortType”港。

SOAP Binding

WSDL 1.1 包括SOAP1.1的内在延伸。 这使你能够具体说明SOAP的具体细节,包括SOAP负责人、SOAP编码风格和SOAPAction HTTP负责人。 《经济、社会、文化权利国际公约》的推广内容包括:

    soap:binding

    soap:operation

    soap:body

soap:binding

这一要素表明,这项约束力将通过《国家行动计划》予以提供。 <>i>e> >属性是指SOAP信息格式的总体风格。 rpc的风格价值具体指明了PC格式。

<transport属性表示《社会行动计划》信息的运输。 http://schemas.xmlsoap.org/soap/http://schemas.xmlsoap.org/soap/smtp表示SOAP HTTP运输。

soap:operation

这一要素表明,特定行动对具体的《经济、社会、文化权利国际公约》的实施具有约束力。

soap:body

这一要素使你能够具体说明投入和产出信息的细节。 就Hello World而言,身体要素具体规定了与特定服务相关的SOAP编码风格和URN名称空间。

这里是“实例”一章的法典的一部分。

<binding name = "Hello_Binding" type = "tns:Hello_PortType">
   <soap:binding style = "rpc" transport = "http://schemas.xmlsoap.org/soap/http"/>
   <operation name = "sayHello">
      <soap:operation soapAction = "sayHello"/>
			
      <input>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </input>
			
      <output>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </output>
   </operation>
</binding>

WSDL - <ports> Element

A <port> 内容通过规定一个具有约束力的单一地址来界定个人终点。

The grammar to specified a port -

<wsdl:definitions .... >
   <wsdl:service .... > *
      <wsdl:port name = "nmtoken" binding = "qname"> *
         <-- extensibipty element (1) -->
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>

    港口部分有两个特性: 姓名 约束

    <->称属性为《世界可持续发展论坛文件》中界定的所有港口提供了独一无二的名称。

    具有约束力的属性是指使用WSDL定义的联系规则的约束。

    具有约束力的免责内容用于具体说明港口的地址信息。

    港口MUST NOT指明了不止一个地址。

    港口MUST NOT具体说明除处理信息以外的任何具有约束力的信息。

这里是《例》一章中的一项法典。

<service name = "Hello_Service">
   <documentation>WSDL File for HelloService</documentation>
   <port binding = "tns:Hello_Binding" name = "Hello_Port">
      <soap:address
         location = "http://www.examples.com/SayHello/">
   </port>
</service>

WSDL - <service> Element

<service> 内容界定了网络服务支持的港口。 每项辅助议定书都有一个港口要素。 服务要素是收集港口。

    网络服务客户可从服务内容中学习以下内容:

      where to access the service,

      through which port to access the web service, and

      how the communication messages are defined.

    服务要素包括提供可读文件的文件内容。

这里是《例》一章中的一项法典。

<service name = "Hello_Service">
   <documentation>WSDL File for HelloService</documentation>
   <port binding = "tns:Hello_Binding" name = "Hello_Port">
      <soap:address
         location = "http://www.examples.com/SayHello/">
   </port>
</service>

port要素的约束性特性将服务地址与网络服务中确定的具有约束力的内容联系起来。 例如,Hello_Bled

<binding name =" Hello_Binding" type = "tns:Hello_PortType">
   <soap:binding style = "rpc"
      transport = "http://schemas.xmlsoap.org/soap/http"/>
   <operation name = "sayHello">
      <soap:operation soapAction = "sayHello"/>
		
      <input>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </input>
			
      <output>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </output>
   </operation>
</binding>

WSDL - Summary

我们在本教学中涵盖了妇女和自卫队的基础。 下一步是学习SOAP、UDDI和网络服务。

Web Services

网络服务是开放的标准(XML、SOAP、HTTP等)。 与其他网络应用程序互动的网络应用,以便交换数据。

为更多地了解网络服务,访问Web Services Tutorial.

UDDI

UDDI是一个基于XML的标准,用于描述、出版和寻找网络服务。

了解更多关于《世界人权宣言》,访问。 UDDI Tutorial.

SOAP

《社会行动计划》是一份简单的XML议定书,允许在吉大港山区交流信息。

更多了解SOAP,访问。 SOAP Tutorial.

WSDL - References

如果你有兴趣把你的公司、网站或书籍列为WSDL资源,请在网站主人@辅导点上联系。

List of WSDL Specifications

Specification Draft / Proposal W3C Recommendation
     
WSDL 1.1 Note

15. Mar 2001

 
WSDL Usage Scenarios

04. Jun 2002

 
WSDL Requirements

28,2002年10月

 
WSDL Architecture

11. Feb 2004

 
WSDL Glossary

11. Feb 2004

 
WSDL Usage Scenarios

11. Feb 2004

 
WSDL 1.2 Core Language

。 2003年6月

 
WSDL 1.2 Message Patterns

。 2003年6月

 
WSDL 1.2 Bindings

。 2003年6月

 
WSDL 2.0 Primer

27. Mar 2006

 
WSDL 2.0 Core Language

 
WSDL 2.0 Adjuncts

27. Mar 2006

 
WSDL 2.0 SOAP 1.1 Binding

27。 2006年8月

 
WSDL 2.0 RDF Mapping

18. May 2006

 
WS Addressing Core  

09. May 2006

WS Addressing SOAP Binding  

09. May 2006

Web Architecture  

15. Dec 2004

Advertisements