




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XML系列学习XML-WSDL基础知识目录目 录21.Schema51.1.XML Schema 简介51.1.1.什么是 XML Schema?51.1.2.XML Schema 是 DTD 的继任者51.2.为什么要使用 XML Schema?61.2.1.XML Schema 支持数据类型61.2.2.XML Schema 使用 XML 语法61.2.3.XML Schema 可保护数据通信71.2.4.XML Schema 可扩展71.2.5.形式良好是不够的71.3.如何使用 XSD?81.3.1.一个简单的 XML 文档:81.3.2.DTD 文件81.3.3.XML Schema81.3.4.对 DTD 的引用91.3.5.对 XML Schema 的引用101.4.XSD - 元素101.4.1. 元素101.4.2.在 XML 文档中引用 Schema112.简单类型132.1.XSD 简易元素132.1.1.什么是简易元素?132.1.2.定义简易元素132.1.3.简易元素的默认值和固定值142.2.XSD 属性142.2.1.什么是属性?142.2.2.如何声明属性?142.2.3.属性的默认值和固定值152.2.4.可选的和必需的属性152.2.5.对内容的限定162.3.XSD 限定 / Facets162.3.1.对值的限定162.3.2.对一组值的限定162.3.3.对一系列值的限定172.3.4.对一系列值的其他限定192.3.5.对空白字符的限定202.3.6.对长度的限定222.3.7.数据类型的限定223.复杂类型243.1.XSD 复合元素243.1.1.什么是复合元素?243.1.2.复合元素的例子243.1.3.如何定义复合元素?253.2.XSD 复合空元素273.2.1.复合空元素:273.3.XSD 复合类型 - 仅含元素283.3.1.复合类型仅包含元素283.4.XSD 仅含文本复合元素293.4.1.仅含文本的复合元素293.5.XSD 带有混合内容的复合类型313.5.1.带有混合内容的复合类型313.6.XSD 复合类型指示器323.6.1.指示器323.6.2.Order 指示器333.6.3.ccurrence 指示器343.6.4.Group 指示器373.7.XSD 元素393.7.1. 元素393.8.XSD 元素413.8.1. 元素413.9.XSD 元素替换(Element Substitution)433.9.1.元素替换433.9.2.阻止元素替换443.9.3.使用 substitutionGroup453.9.4.什么是全局元素(Global Elements)?453.10.一个 XSD 实例453.10.1.XML 文档453.10.2.创建一个 XML Schema473.10.3.分割 Schema503.10.4.使用指定的类型(Named Types)524.数据类型554.1.XSD 字符串数据类型554.1.1.字符串数据类型(String Data Type)554.1.2.规格化字符串数据类型(NormalizedString Data Type)554.1.3.Token 数据类型(Token Data Type)564.1.4.字符串数据类型564.1.5.对字符串数据类型的限定(Restriction)564.2.XSD 日期及时间数据类型(Date and Time Data Types)574.2.1.日期数据类型(Date Data Type)574.2.2.时间数据类型(Time Data Type)584.2.3.日期时间数据类型(DateTime Data Type)584.2.4.持续时间数据类型(Duration Data Type)594.2.5.日期和时间数据类型604.2.6.对日期数据类型的限定(Restriction)614.3.XSD 数值数据类型(Numeric Data Types)614.3.1.十进制数据类型614.3.2.整数数据类型624.3.3.数值数据类型624.3.4.对数值数据类型的限定(Restriction)634.4.XSD 杂项数据类型(Miscellaneous Data Types)634.4.1.逻辑数据类型(Boolean Data Type)644.4.2.二进制数据类型(Binary Data Types)644.4.3.AnyURI 数据类型(AnyURI Data Type)644.4.4.杂项数据类型(Miscellaneous Data Types)644.4.5.对杂项数据类型的限定(Restriction)655.总结665.1.XML Schema 概要665.2.XML Schema 参考手册665.2.1.XSD 元素665.2.2.XSD Restrictions/Facets for Datatypes671. WSDL1.1. WSDL 简介1.1.1. 概述WSDL 指网络服务描述语言 (Web Services Description Language)WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。做为通讯协议,在web通讯中消息的格式被标准化的。WSDL为描述网络服务定义XML语法使交互的端点之间拥有信息交互的能力。WSDL服务定义为分布式系统提供了证据并且担任自动参与在应用通讯中处理的方法。WSDL文档定义服务作为络交互的端点或者ports的集合。在WSDL中,抽象的定义了端点和从网络部署或数据格式绑定分离的消息。允许重用抽象定义:messages(抽象的描述交互的数据);port types(operations的集合)。对一个特定port type指定明确的协议和数据格式组成了一个可重用的binding。通过将一个网络地址关联到可重用的banging,定义了一个port;port的集合定义了一个服务。因此,WSDL通过以下元素定义网络服务: Type-包含使用类型系统(例如XSD)创建的数据类型的定义的容器。 Message-一个抽象的、典型的关于用于交互的数据定义。 Operation-一个服务支持的行为(方法)的抽象描述。 PortType-被一个或多个端点支持的一系列操作的抽象。 Binding-一个明确的协议和为特定porttype指定的数据格式。 Port-一个由网络地址和一个绑定组合的单一的端点 Service-相关端点的集合。WSDL没有采用新的类型定义语言。WSDL发现需要一个富类型系统来描述消息格式,并已XML Schema(XSD)作为其权威的类型系统。通过扩展,WSDL允许使用其他类型定义语言来描述消息。另外,WSDL定义了一个通过的binding机制,被用于连接指定的协议或数据格式或抽象消息/操作/端点的结构,允许被重用。除了核心服务定义框架,本文档介绍以下的协议和消息格式作为binding的扩展。 SOAP 1.1 HTTP GET / POST MIME1.1.2. 一个WSDL例子 My first service 服务支持一个唯一的操作GetLastTradePrice,该操作通过SOAP1.1协议覆盖HTTP进行部署。请求参数为一个string类型的tickerSymbol,返回一个float的price。该例子使用固定的XML格式替代SOAP编码。1.1.3. 符号的约定1. 关键字 a) MUST,REQUIRED, SHALL表示元素必需定义b) MUST NOT, SHALL NOT表示绝对禁止的元素。c) SHOULD,RECOMMENDEDd) MAY, OPTIONAL表示可选的。e) SHOULD NOT,NOT RECOMMENDEDf)2. 文档使用的命名空间前缀:prefixnamespace URI definitionwsdl/wsdl/WSDL namespace for WSDL framework.soap/wsdl/soap/WSDL namespace for WSDL SOAP binding.http/wsdl/http/WSDL namespace for WSDL HTTP GET & POST binding.mime/wsdl/mime/WSDL namespace for WSDL MIME binding.soapenc/soap/encoding/Encoding namespace as defined by SOAP 1.1soapenv/soap/envelope/Envelope namespace as defined by SOAP 1.1xsi/2000/10/XMLSchema-instance Instance namespace as defined by XSD xsd/2000/10/XMLSchemaSchema namespace as defined by XSD .tns(various)The “this namespace” (tns) prefix is used as a convention to refer to the current document.(other)(various)All other namespace prefixes are samples only. In particular, URIs starting with “” represent some application-dependent or context-dependent URI 4.3. WSDL使用非正式的语句描述XML语法语句的产生作为XML的实例,但是值指示通过数据类型代替。通配符:”?”-0个或1个;”*”-0个或多个;”+”-1个或多个,至少一个元素后加 (例如 or )表明上下文不相干的元素或属性被忽略1.2. WSDL 文档结构1.2.1. 文档结构WSDL 文档是利用这些主要的元素来描述某个 web service 的:元素定义web service 使用的描述数据交互的数据类型,为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型web service 用于传输的数据的抽象。消息由逻辑部件组成,每个逻辑部件关联已定义的类型;每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。描述一个 web service、可被执行的操作,以及相关的消息;可以把 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。web service 使用的通信协议和数据格式,为每个port定义消息格式和协议细节。指定绑定的地址,定义一个唯一的通讯端点。聚集有关port的集合一个 WSDL 文档的主要结构是类似这样的:1.2.2. 文档命名和链接WSDL文件可以被复制一个可选的name属性,targetNamespace属性指定一个URL类型。通过使用import语句,WSDL允许在文档本地关联一个namesapce。 *1.2.3. 编写风格通过import元素可以使一个service的不同元素分别定义至独立的文档,在需要的时候被导入。最大程度的重用服务的定义,以下示例显示了使用编写风格定义上述示例/stockquote/stockquote.xsd /stockquote/stockquote.wsdl /stockquote/stockquoteservice.wsdl My first service 该示例分为三个文档定义:数据类型定义,概要定义,服务绑定。1.2.4. 语言扩展和绑定在WSDL中,绑定指定处理关联协或者对于概要实体(message,operation或portType)的数据格式信息。扩展点用于为一个特殊的协议和消息格式指定绑定信息,但是并不现实使用。扩展元素MUST使用一个不同于WSDL的XML命名空间。locationPossible usagedefinitions为整个WSDL介绍额外的信息或者定义definitions/types指定message在type系统中的格式definitions/service为服务介绍额外的信息和定义definitions/service/port为port指定地址definitions/binding在port type范围内,提供协议指定应用于操作的信息 definitions/binding/operation提供指定应用与input和output消息的信息definitions/binding/operation/input提供关于概要信息部分如何映射到明确协议和数据格式的明细。为输入消息提供额外的协议指定信息definitions/binding/operation/output提供关于概要信息部分如何映射到明确协议和数据格式的明细为输出消息提供额外的协议指定信息definitions/binding/operation/fault提供关于概要信息部分如何映射到明确协议和数据格式的明细为错误信息提供额外的协议指定信息1.2.5. 文档化WSDL使用可选的wsdl:document元素作为用于可读性文档化的一个容器。该元素允许在任何WSDL语言元素中使用。1.2.6. WSDL 实例这是某个 WSDL 文档的简化的片段: * ? ? ? * * * ? * * ? * ? ? ? ? ? * ? * ? * * ? * ? ? ? ? * * ? * * ? * ? * 1.3. WSDL TypesTypes元素封装了关于数据交互信息的数据类型定义。为了实现最大程度的协同工作能力和平台无关,WSDL比较喜欢使用XSD作为权威的类型系统,并且作为固有的类型系统。 * XSD类型系统能够用于定义在消息中定义类型。如果对相同的消息指定多个绑定,或者只有一个绑定但是绑定类型对应的类型系统并没有广泛使用,推荐遵循以下内容使用XSD: 使用element形式(没有属性) 不包含对于编码来说独特的属性或元素(例如:对于与消息的概要内容来说什么也没有做)。一些例子有:saop:root,soap:encodingStyle,xmi:id,xmi:name 数组类型需要扩展SOAP1.1 encoding 结构(/soap/encoding/)的数组类型的定义,为数组类型使用名字ArraryofXXX(XXX标示数组元素的基本类型)。通过使用soapenc:arrayType属性的默认值指定元素的类型和元素的规模。当前XSD不支持包含QName值的属性的默认值。 使用xsd:anyTYpe标示字段/参数可是是任何类型。期望只有一种类型系统能够描述所有的类型是不现实的,WSDL允许类型系统凭借扩展的元素增加。扩展元素在types元素下定义产生一个类型定义的容器元素。 * 1.4. WSDL MessagesMessages由一个活多个逻辑部分组成,每个逻辑部分使用message-typing属性关联类型系统对应的一个类型。一组message-typing属性是可扩展的。WSDL使用XSD定义了数个message-typing属性: element:使用一个QName指定XSD元素 type:使用一个QName指定一个XSD的简单类型或复制类型。其他message-type属性只要使用不同于WSDL的namespace定义。绑定扩展的属性也使用message-typing属性。定义message的语法如下: * * 用黑标标出部分为message-type对应的属性。message元素的name属性指定了一个唯一的message名字。part元素的name属性提供了在message中的一个唯一的part名字。1.4.1. Message PartsParts是描述Message逻辑抽象内容的一种机制。一个binding可能指定part的名字为了详述关于part的绑定信息。例如,如果使用RPC(远程过程调用)定义一个message,part可能代表了信息的一个参数。无论如何,为了确定part的真实意义必须检查binding。如果message拥有多个逻辑单元,那么就有多个part元素被使用。例如,下面的message有一个Purchase Order和一个Invoice组成: 无论如何,如果消息的内容十分复杂的,那么使用指定的由type system直接定义的message综合结构。在这种情况下,只有一个part被指定。在以下的例子中,body及时purchase order,也是一组invoice 1.4.2. Abstract vs. Concrete MessagesMessage定义一般被考虑是一个message内容抽象定义。一个message绑定描述了抽象内容如何映射到明确的格式,尽管如此,在一些例子中,抽象定义对于一个或多个绑定来说非常接近明其明确的代表,因此binding可能提供较少的或不提供映射信息。无论如何,对于那个相同message定义的另外的绑定可能需要扩展映射信息,理由是,直到检查绑定后才能确定当前的message有多抽象。1.5. WSDL Port Types 元素是最重要的 WSDL 元素。它可描述一个 web service、可被执行的操作,以及相关的消息。端口定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学语文《我多想去看看》课件
- 一年级《姓氏歌》课件
- 产品推销创意演讲
- 见证取样考试题库
- 计算机信息处理技术 理论题A及答案
- 内蒙古自治区乌兰察布市集宁区第二中学2024-2025学年七年级下学期5月期中考试数学试题
- 自动控制系统应急预案
- 财务会计实习工作总结8篇
- 设备采购合同(集合15篇)
- 部编版二年级上册第四单元《曹冲称象》教案
- 2024-2025学年初中英语七年级下册期末考试综合测试卷及参考答案
- 2025年山东省济南市长清区中考二模道德与法治试题(含答案)
- 冠心病的规范化诊培训课件
- 未来中国检测市场发展趋势简析(精)
- 2025年AI+赋能中小企业:出海营销的创新与发展
- 2025年福建省粮食行业职业技能竞赛(粮油保管员)备赛试题库(含答案)
- 四川电网新建电源并网服务指南(2025年)
- 2025安全月查找身边安全隐患:生产现场实拍隐患图解
- 民航危险品运输分类具有多重危险性的物质物品Dangerou
- 江苏省淮安市2022年中考化学真题(解析版)
- 事故隐患内部报告奖励制度
评论
0/150
提交评论