XML模式:WSD
所属分类:
网页制作 / XML/XSLT
阅读数:
759
收藏 0赞 0分享
Web 服务描述语言(Web Services Description Language,WSDL)提供了一种描述 Web 服务(大多使用 SOAP)的简单方法。WSDL 允许您描述利用 SOAP 标准所提供的服务和接口。
比方说,可以创建描述某台服务器上提供的服务的 WSDL 文件,然后把该文件分发给需要这些服务的 Web 服务消费者。通过阅读和解析 WSDL 文件,消费者能够了解到使用这些 Web 服务需要知道的所有信息,包括可以交换的数据类型、参数以及返回的各种错误和其他信息。
再次使用来自 W3C 的例子,可以看到不同远程函数的声明和交换的数据都是通过结构的 XML 定义处理的,如清单 3 所示。
清单 3. 不同远程函数和交换数据的 XML 定义
<?xml version="1.0"?>
<!-- root element wsdl:definitions defines set of related services -->
<wsdl:definitions name="EndorsementSearch"
targetNamespace="http://namespaces.snowboard-info.com"
xmlns:es="http://www.snowboard-info.com/EndorsementSearch.wsdl"
xmlns:esxsd="http://schemas.snowboard-info.com/EndorsementSearch.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!-- wsdl:types encapsulates schema definitions of communication types;
here using xsd -->
<wsdl:types>
<!-- all type declarations are in a chunk of xsd -->
<xsd:schema targetNamespace="http://namespaces.snowboard-info.com"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<!-- xsd definition: GetEndorsingBoarder [manufacturer string,
model string] -->
<xsd:element name="GetEndorsingBoarder">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="manufacturer" type="string"/>
<xsd:element name="model" type="string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- xsd definition: GetEndorsingBoarderResponse
[... endorsingBoarder string ...] -->
<xsd:element name="GetEndorsingBoarderResponse">
<xsd:complexType>
<xsd:all>
<xsd:element name="endorsingBoarder" type="string"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
<!-- xsd definition: GetEndorsingBoarderFault
[... errorMessage string ...] -->
<xsd:element name="GetEndorsingBoarderFault">
<xsd:complexType>
<xsd:all>
<xsd:element name="errorMessage" type="string"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<!-- wsdl:message elements describe potential transactions -->
<!-- request GetEndorsingBoarderRequest is of type GetEndorsingBoarder -->
<wsdl:message name="GetEndorsingBoarderRequest">
<wsdl:part name="body" element="esxsd:GetEndorsingBoarder"/>
</wsdl:message>
<!-- response GetEndorsingBoarderResponse is of type
GetEndorsingBoarderResponse -->
<wsdl:message name="GetEndorsingBoarderResponse">
<wsdl:part name="body" element="esxsd:GetEndorsingBoarderResponse"/>
</wsdl:message>
<!-- wsdl:portType describes messages in an operation -->
<wsdl:portType name="GetEndorsingBoarderPortType">
<!-- the value of wsdl:operation eludes me -->
<wsdl:operation name="GetEndorsingBoarder">
<wsdl:input message="es:GetEndorsingBoarderRequest"/>
<wsdl:output message="es:GetEndorsingBoarderResponse"/>
<wsdl:fault message="es:GetEndorsingBoarderFault"/>
</wsdl:operation>
</wsdl:portType>
<!-- wsdl:binding states a serialization protocol for this service -->
<wsdl:binding name="EndorsementSearchSoapBinding"
type="es:GetEndorsingBoarderPortType">
<!-- leverage off soap:binding document style ...(no wsdl:foo pointing at
the soap binding) -->
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<!-- semi-opaque container of network transport details classed by
soap:binding above ... -->
<wsdl:operation name="GetEndorsingBoarder">
<!-- again bind to SOAP? ... -->
<soap:operation soapAction="http://www.snowboard-info.com/
EndorsementSearch"/>
<!-- further specify that the messages in the wsdl:operation
"GetEndorsingBoarder" use SOAP? ... -->
<wsdl:input>
<soap:body use="literal"
namespace="http://schemas.snowboard-info.com/EndorsementSearch.xsd"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"
namespace="http://schemas.snowboard-info.com/EndorsementSearch.xsd"/>
</wsdl:output>
<wsdl:fault>
<soap:body use="literal"
namespace="http://schemas.snowboard-info.com/EndorsementSearch.xsd"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<!-- wsdl:service names a new service "EndorsementSearchService" -->
<wsdl:service name="EndorsementSearchService">
<wsdl:documentation>snowboarding-info.com Endorsement Service</
wsdl:documentation>
<!-- connect it to the binding "EndorsementSearchSoapBinding" above -->
<wsdl:port name="GetEndorsingBoarderPort"
binding="es:EndorsementSearchSoapBinding">
<!-- give the binding an network address -->
<soap:address location="http://www.snowboard-info.com/EndorsementSearch"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
WSDL 声明了消息类型、默认数据类型和内容以及交换的数据结构。
访问服务器上 SOAP 结构需要使用的一切信息都可以在这个 WSDL 中找到。大多数语言和环境都提供一种阅读和解析 WSDL 的机制,以确定可用的函数和数据交换。
WSDL 不仅定义了用于交换信息的 SOAP 接口,通过适当的 WSDL 生成程序,还可用于创建发送请求、生成并格式化响应所需要的代码。
WSDL 和 SOAP 组成了一个强大的远程过程调用系统。
WAP教程(6):WML 任务-XML/XSLT
任务 (task) 定义了事件发生时所执行的动作,比如在输入一个卡片或选择一个链接之类的时间发生时。
任务 (task) 定义了事件发生时所执行的动作,比如在输入一个卡片或选择一个链接之类的时间发生时。
Go 任务
&l
收藏 0赞 0分享
WAP教程(5):WML 输入-XML/XSLT
输入字段可以制作让用户可输入信息的 WML 卡片,正如这个例子演示的.
输入字段
可以制作让用户可输入信息的 WML 卡片,正如这个例子演示的:
<?xml version="1.0"?>
<
收藏 0赞 0分享
WAP教程(4):WML 链接和图像-XML/XSLT
链接可以制作 WML 卡片来显示 WML 的锚功能,图像可以制作 WML 卡片来显示图像.
链接
可以制作 WML 卡片来显示 WML 的锚功能。
<anchor>
<anchor> 标签总是要规定一个任
收藏 0赞 0分享
WAP教程(8):WML 变量-XML/XSLT
变量当用户在卡片组的卡片之间切换时,我们需要在变量中存储数据。WML 变量对大小写敏感。
变量
当用户在卡片组的卡片之间切换时,我们需要在变量中存储数据。WML 变量对大小写敏感。
通过 Setvar 命令规定变量
当用户
收藏 0赞 0分享
WAP教程(2):WAP 基础-XML/XSLT
WAP 的主页与 HTML 的主页非常不同。用于 WAP 的标记语言是 WML (Wireless Markup Language)。WML 使用标签 - 类似 HTML - 但是语法更严格且遵守 XML 1.0 标准。
WAP 主页
W
收藏 0赞 0分享
WAP教程(9):WML 实例-XML/XSLT
带有两个卡片的一个卡片组 - 一个供用户输入,一个供显示结果 - 正如本例中展示的.
带有两个卡片的一个卡片组 - 一个供用户输入,一个供显示结果 - 正如本例中展示的:
<?xml version="1.0"
收藏 0赞 0分享
WAP教程(1):WAP 简介-XML/XSLT
WAP 协议被设计用来在无线客户端(比如移动电话)上展示因特网内容。
WAP 协议被设计用来在无线客户端(比如移动电话)上展示因特网内容。
您应当具备的基础知识
在继续学习之前,您需要对下面的知识有基本的了
收藏 0赞 0分享
XML入门教程:XSLT-XML/XSLT
XSLT是XSL的一部份,它是XML的一种应用,指定将一篇XML文档转换成另一种XML文档的规则。XSLT文档即是一篇XML文档,也是一个样式表,里面包含一系列的模板。XSLT处理器对输入XML文档中的元素和样式表中的模板进行比较,如果匹配,则将该模板的内
收藏 0赞 0分享
XMLHTTPRequest对象-XML/XSLT
XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。
1、XMLHTTPReque
收藏 0赞 0分享
查看更多