天天看点

WSDL(Web Service Description Language) 结构摘要【转】

WSDL文档结构

  若要理解XML文档,将之看作块状图表非常有用。下图以XML的文档形式说明了WSDL的结构,它揭示了WSDL文档五个栏之间的关系。

   WSDL文档可以分为两部分。顶部分由抽象定义组成,而底部分则由具体描述组成。抽象部分以独立于平台和语言的方式定义SOAP消息,它们并不包含任何 随机器或语言而变的元素。这就定义了一系列服务,截然不同的网站都可以实现。随网站而异的东西如序列化便归入底部分,因为它包含具体的定义。

  l 抽象定义

    Types

    独立与机器和语言的类型定义

    Messages

    包括函数参数(输入与输出分开)或文档描述

    PortTypes

    引用消息部分中消息定义来描述函数签名(操作名、输入参数、输出参数)

  2 具体定义

    Bindings

    PortTypes部分的每一操作在此绑定实现

    Services

    确定每一绑定的端口地址

下面的图中,箭头连接符代表文档不同栏之间的关系。点和箭头代表了引用或使用关系。双箭头代表"修改"关系。3-D的箭头代表了包含关系。这样,各 Messages栏使用Types栏的定义,PortTypes栏使用Messages栏的定义;Bindings栏引用了PortTypes 栏,Services栏引用Bindings栏,PortTypes和Bindings栏包含了operation元素,而Services栏包含了 port元素。PortTypes栏里的operation元素由Bindings栏里的operation元素进一步修改或描述。

WSDL(Web Service Description Language) 结构摘要【转】

             图一:抽象定义和具体定义

  在此背景中,我将使用标准的XML术语来描述WSDL文档。Element是指XML的元素,而"attribute"指元素的属性。于是:

< element  attribute ="attribute-value" > contents </ element >

内容也可能由一个或多个元素以递归的方式组成。根元素是所有元素之中最高级的元素。子元素总是从属于另一个元素,父元素。

   注意,文档之中可能只有一个Types栏,或根本没有。所有其他的栏可以只有零元素、单元素或是多元素。WSDL的列表要求所有的栏以固定的顺序出 现:import, types, message, portType, binding, service。所有的抽象可以是单独存在于别的文件中,也可以从主文档中导入。

ps:用zde生成wsdl文件时,最好给函数加上注释,说明参数类型和返回值类型,否则c++程序访问该webservices,会报错