ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:58.95KB ,
资源ID:24058831      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24058831.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(XPointerXML设计及应用.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

XPointerXML设计及应用.docx

1、XPointerXML设计及应用二、XPointerXPointer = XML Pointer Language = XML指针语言1概述XPointer是一种基于XPath的可扩展片段标识符语言(fragment identifier languages),可以对XML文档内的节点(node)、点(point)、范围(range)和串(string)等资源片段进行定位,用作具有text/xml、 application/xml、text/xml-external-parsed-entity或application/xml-external- parsed-entity等因特网媒体类型的任何

2、资源的片段标识符(fragment identifiers)。XPointer用作URI引用的片段标识符(fragment identifiers),可以用于XLink、XInclude、RDF(Resource Description Framework资源描述框架)和SOAP (Simple Object Access Protocol简单对象访问协议)等XML处理应用。如XLink = URI + XPointer,如URI#方案名(方案数据) ,具体如URI#xpointer(XPath的定位路径表达式),例如: xpointer(/d:*1)。XPointer的作用与格式都与HTML

3、的锚(anchor)相似: HTML锚的格式为:HTML文档#锚名,例如:a.html#chapter1 而XPointer的格式一般为: 简写形式:XML文档#标识符值,例如abc.xml#chapter1 基于方案形式:XML文档#方案(),例如abc.xml#xpointer(id(chapter1)在XML应用中,XPointer一般不被单独使用,而是被XLink和XInclude等其它XML标准引用。1)标准开始时XPointer 被设计成一个单一标准:XML Pointer Language (XPointer) Version 1.0, CR: 2001.9.11。但是,该1.0

4、版推出候选推荐标准后就被终止,没有完成标准化进程(达到最后的推荐标准阶段)。后来XPointer被分解成框架(Framework)、元素方案(element() Scheme)、名域方案(xmlns() Scheme)和指针方案(xpointer() Scheme)四个部分,其中的前三个已经在2003年3月23日成为推荐标准,而最后一个现在仍然处在草案阶段: 框架(REC 2003.3.23):XPointer Framework - W3C Recommendation 25 March 2003 元素方案(REC 2003.3.23):XPointer element() Scheme -

5、 W3C Recommendation 25 March 2003 名域方案(REC 2003.3.23):XPointer xmlns() Scheme - W3C Recommendation 25 March 2003 指针方案(WD 2002.12.19):XPointer xpointer() Scheme - W3C Working Draft 19 December 20022)功能XPointer: Framework框架片段定位的基础 element() Scheme元素方案定位元素 xmlns() Scheme名域方案解释指针中的名域前缀 xpointer() Scheme

6、指针方案提供串(string)、点(point)、两点之间的范围(range)等部分(portions)定位的高级功能3)XPointer对XPath的扩展 用于URI引用以定位资源片段(subresource) 像定位整个节点(node)一样地定位点(point)和范围(range) 通过串匹配定位文本信息4)术语 指针pointer = string串 方案scheme = 具有名称,且被一个规范所定义的专门指针数据2框架XPointer的框架(Framework)标准定义了XML指针语言(XPointer)的框架一个XML定位的可扩展系统,是其它具体XPointer方案规范(specif

7、ications)的基础。1)语法下面是XPointer框架的语法(生成式规则):XPointer Framework Syntax1 Pointer := Shorthand | SchemeBased2 Shorthand := NCName3 SchemeBased := PointerPart (S? PointerPart)*4 PointerPart := SchemeName ( SchemeData )5 SchemeName := QName6 SchemeData := EscapedData*7 EscapedData := NormalChar | ( | ) | |

8、( SchemeData )8 NormalChar := UnicodeChar - ()9 UnicodeChar := #x0-#x10FFFF其中的S在XML推荐标准中定义,NCName和QName在XML Namespace标准中定义。 可见,XPointer中的指针 = 简写指针 | 基于方案的指针 = 本地名 | 方案名(方案数据) 2)简写指针2 Shorthand := NCName简写指针(shorthand pointer)以前叫裸名(barename),由单独的一个无冒号名(NCName)构成,它至多标识资源信息集中的一个元素,尤其是文档顺序中匹配该标识名的第一个元素。

9、指针的简写形式依赖于标识符ID机制应用程序需要靠ID属性或ID元素的值来确定元素。使用方法:URI#标识符值。(1) DTD定义的ID属性简写指针中的裸名可以是由DTD定义的ID属性的值,例如: a.xml:!DOCTYPE A XPointer:a.xml#b1指向a.xml文档的第一个B元素,是基于指针方案的a.xml#xpointer(id(b1)的简写,也与基于元素方案的a.xml#element(/1/1)等价。(2) Schema确定的ID属性简写指针中的裸名也可以是由Schema定义的ID属性的值,例如: schema.xsd: a.xml: XPointer:同上例,a.xml

10、#b1指向a.xml文档的第一个B元素。(3) Schema确定的ID元素简写指针中的裸名还可以是由Schema定义的ID元素的值,例如: schema:将上例中的红色行改为:其余的不变。 a.xml: b1 b2 XPointer:同上例,a.xml#b1指向a.xml文档的第一个B元素。(4) 外部确定的ID上一个表示元素标识符的串,其值由采用本规范范围之外的机制的应用来确定。例如Relax NG: Relax NG schema: a.xml: XPointer:同上例,a.xml#b1指向a.xml文档的第一个B元素。3)基于方案的指针3 SchemeBased := PointerP

11、art (S? PointerPart)*4 PointerPart := SchemeName ( SchemeData )5 SchemeName := QName基于方案的指针(scheme-based pointer)由若干用白空分隔的指针部分(pointer parts)组成,每个部分有一个方案名和用圆括号括起来的方案数据。即:URI#方案名1(方案数据1) 方案名2(方案数据2) 方案名n(方案数据n)例如:#xpointer(id(boy-blue)/horn1) element(boy-blue/3)注意: 若提供了多个指针部分,则按从左至右的顺序来处理,处理器跳过不支持的方案

12、和不能识别出任何资源片段(subresources)的指针部分,直到第一个能识别出若干资源片段的指针部分后终止,并返回该资源片段。若所有的指针部分都不能识别出任何资源片段,则报错 方案数据中的圆括号必须成对匹配,对不是配对的圆括号必须使用转义字符 元素方案的方案名element和括号()都可以省去,只用方案的数据即可4)名域绑定上下文为了解释方案名、元素名、属性名和出现在指针部分的其它限定名的前缀,方案规范可以定义绑定XML命名空间前缀到名域名的方法。例如:#xmlns(img=http:/example.org/image) img:rect(10,10,50,50)注意: xml前缀只能被

13、绑定于名域名http:/www.w3.org/XML/1998/namespace 名域名http:/www.w3.org/XML/1998/namespace也只能被绑定给xml前缀 xmlns不能被绑定到一个名域名 名域名http:/www.w3.org/2000/xmlns/也不能被绑定给任何前缀 前缀xml不论大小写(如XML、xML、XlM、xlM、XMl等)都被保留(reserved)5)转移字符6 SchemeData := EscapedData*7 EscapedData := NormalChar | ( | ) | | ( SchemeData )8 NormalChar

14、 := UnicodeChar - ()9 UnicodeChar := #x0-#x10FFFF方案数据中的圆括号必须成对匹配,对不配对的圆括号必须使用转义字符: ( ( ) ) 例如:笑脸 :-) :-)。也可以使用十六进制编码:%HH;,如% %25;、空格 %20;、” %22;。3元素方案XPointer的元素方案(element() scheme)是与XPointer框架一起使用,进行XML元素的基本寻址。其生成式语法规则如下:element() Scheme Syntax0 PointerPart := element ( ElementSchemeData ) | Elemen

15、tSchemeData/ added by myself1 ElementSchemeData := (NCName ChildSequence?) | ChildSequence2 ChildSequence := (/ 1-9 0-9*)+即元素方案的语法:0 指针部分 = element(元素方案数据) | 元素方案数据 / 本条为我自己加的1 元素方案数据 = 标识名 子节点序列? | 子节点序列2 子节点序列 = (/不以0开头的十进制数字串n)+,其值n等价于XPath的*position() = n例子: element(intro)ID为intro的元素 element(int

16、ro/3/1)ID为intro的元素节点的第三个子元素节点的第一个孙元素节点 element(/1/2)根节点的第一个子元素节点(即文档的根元素节点)的第二个孙元素节点,等价于xpointer(/*1/*2) = xpointer(/*position() = 1/* position() = 2)4XML命名空间方案xmlns() Scheme Syntax0 PointerPart := xmlns ( XmlnsSchemeData ) / added by myself1 XmlnsSchemeData := NCName S? = S? EscapedNamespaceName2 E

17、scapedNamespaceName := EscapedData*即名域方案语法0 指针部分 = xmlns(XML名域方案数据) / 本条为我自己加的1 XML名域方案数据 = 域名前缀 = 转义名域名2 转义名域名 = 转义数据* / 一般为URI串即XML命名空间方案的格式为:xmlns(前缀 = URI)一般后跟带名域前缀的指针部分,且其中的URI只能定位到文档,不能定位于资源的片段。例如: #xmlns(abc = examp.xml#xmlns(c=http:/example.org/customer) xmlns(p=http:/example.org/personal-in

18、fo) #xpointer(/c:customer/p:name) 可以定位于文档:examp.xml片段: John Doe中的name元素。5X指针方案XPointer 的X指针方案(xpointer() Scheme)是XPointer的四个规范中唯一还没有推荐标准的规范。这主要是因为它的内容多,格式复杂,而且与XPath的关系十分紧密,所以至今还存在一些争议。XPointer的X指针方案是与XPointer框架一起使用,提供寻址XML文档之部分(portions)的高级功能。1)术语 点point无内容或子节点的XML信息集中的一个定位(location),如相邻两节点之间、文本节点中

19、的某一指定字符之后(来自DOM2中的位置position概念) 范围range位于两点之间的所有XML信息之集(也是来自DOM2规范的范围概念)点和范围并不太适合将文档看成树结构,而更适合于将文档视作一个顺序流。2)语法X指针方案的生成式语法规则如下:xpointer() Scheme Syntax0 PointerPart := xpointer (XpointerSchemeData ) / added by myself1 XpointerSchemeData := Expr / 即XPath的表达式3)对XPath的扩展 扩展信息集将XPath中的节点、节点类型和节点集的概念扩展到X指

20、针方案的定位概念(包括节点、点和范围)、定位类型(即信息节点类型+点和范围)和定位集 增加定位类型增加了点与范围两种新的定位类型(对应于DOM2的位置与范围),它们可出现在定位集的结果中,也可对它们进行与XPath中的节点测试相似的测试 添加求值规则增加了建立XPath求值上下文的规则 允许多个一级子节点似XSLT,允许根节点有多个子节点,使得表达式可以像定位良构文档一样去定位任意外部可解析实体 增加函数 covering-range与range-inside覆盖定位集中的定位范围 string-range与range-to采用识别某个或若干文本节点中给定文本串之位置的方法来标识范围 here

21、与origin进行位置定位 start-point与end-point定位节点或范围的起始与结束边界4)节点类型NodeType2 NodeType := comment | text | processing-instruction | node | point | range可见XPointer在原来XPath的生成式规则38中就有的注释、文本、处理指令和节点这四种节点类型的基础上又加了点(point)和范围(range)两种新的节点类型。5)文档的顺序XML文档:hello, big world.的带定位的文档树:例如: point(1.0) 是p元素内的刚开始处 (文本节点“hello

22、, ”之前) point(1.2) 是em元素的末尾与下面的文本节点(它包含world.)之间 point(.0) 根元素节点p之前 point(1/2/1.1) 中间文本节点中的字母b之后6)添加的函数XPointer在原有XPath的27个核心函数的基础上又新增加了如下8个函数:(1) range-to函数(到范围)格式为:location-set range-to(location-set),即:定位集 range-to(定位集)XPath中的步进规则4应该改为:4xptr Step := AxisSpecifier NodeTest Predicate* | AbbreviatedSt

23、ep | range-to ( Expr ) Predicate*即:步进 = 轴:节点测试谓词* | 缩写步进 | range-to(表达式) 谓词*其中最后一部分为新加的。例如: xpointer(id(chap1)/range-to(id(chap2)从标识符值为chap1的元素的开始点到标识符值为chap2的元素的结束点之间的范围 xpointer(descendant:REVST/range-to(following:REVEND1)定位选择所有被修订的部分,其中descendant = 后裔轴、REVST = 修订开始(revision start)空元素、REVEND = 修订结

24、束(revision end)空元素、following:REVEND1 = 后面的第一个修订结束,即本修订部分的结束(2) string-range函数(串范围)格式为:location-set string-range(location-set, string, number?, number?),即定位集 string-range(定位集, 匹配串, 首字符位置?, 字符数?)其中: 首字符位置缺省为1 字符数缺省到匹配串尾可见,当首字符位置和字符数都缺省时,返回的范围为整个匹配串。例如: string-range(/title,Thomas Pynchon)17返回指定串Thomas

25、Pynchon在title元素中的第17次出现所对应的范围 string-range(/P,Thomas Pynchon,8,0)3返回指定串Thomas Pynchon在P元素中的第3次出现的第8个字符P开始处所对应的位置点,等价于string-range(/P(Thomas Pynchon)3,P,1,0) string-range(/text(), !, 1, 2)5返回文档中所有文本节点中的感叹号!的第五次出现处的感叹号!及其随后的一个字符所对应的范围(3) covering-range函数(覆盖范围)格式为:location-set covering-range(location-set),即:定位集 covering-range(定位集) 若入口参数为点或者范围,则返回的结果不变 若入口参数为其它节点类型,则返回它们所对应的范围。例如:covering-range(元素节点) = |(4) range-inside函数(范围内)格式为:location-set range-inside(location-set) ,即:定位集 range-inside(定位集)似covering-ra

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1