• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

q u o t e l i s t . x m l之间添加了链接:
程序清单8 - 3 9
当识别X L i n k处理器打开链接文档时,读取扩展链接,可以看到q u t o e l i s t文档和c o m m e n t s文
档之间存在一个链接。可以提出q u o t e l i s t内容,并允许链接回注释文档(参见图8 - 11)。
点击链接元素就可得到c o m m e n t信息(参见图8 - 1 2)。
如果我们能链接到q u o t e l i s t . x m l文档中精确的位置,该位置对应着我们正在评论的单词,
“m e n”,那就更好了—不过这是XPo i n t e r的工作,我们将在下面讨论。
9. Xlink总结
第8章链接和查询使用265 下载
图8-11
图8-12
XLi n k为在X M L文档中定义链接提供一种灵活的机制,使不同的资源连接到一起。这些资源
甚至可以是通常并不包含链接的资源,像图像文件。XLi n k可以用于把一个文档链接到另一个文
档,可以用于比H T M L超链接更多的文档,或者它可以将把许多不同资源链接在一起。它也可以
用于从内容中抽象出链接信息,以便于链接信息的更新。然而, XLi n k还没有在任何一种目前最
常使用工具包中被实现并流行—虽然我们毫无疑问地相信XLi n k的一些形式很快被用于X M L
的开发中。
8.3 XPointer
我们前面提到如果我们能够指向一个X M L文档的一些组成部分,而不是指向整体文档—
单独子树、属性或者甚至文本内容的一部分单独字符。W 3 C提出一个机制可以使我们这样做。
8.3.1 HTML指针
X M L指针的概念在H T M L中有一个类似物: <A NAME=...>标识。这个标识指明利用H T M L
指针语法可以链接到被< A >元素标识的位置。例如:我们有下面的文档, c o n t e n t . h t m:
266使用XML 高级编程
下载
程序清单8 - 4 0
我们从另一个文档可以链接到该文档, i n d e x . h t m,利用下面的语法:
程序清单8 - 4 1
H T M L利用符号# 来指明其后面的文字指向了目标文档中的一个命名的锚点。浏览器可以通
过把显示器调整到目标文档的标识位置,象征性地映射出内容来。注意:像H T M L锚点一样,目
标文档不需要直接指定;如果不是这样,所有的XPo i n t e r位置将和文档的基础U R I相关连(通常
该文档包含X P o i n t e r)。XPo i n t e r表达式可以用于U R I适用的任何地方。一个识别X P o i n t e r处理器
正确地对它们进行处理。例如, XPointer 可以对扩展XLi n k的定位的U R I进一步精炼。
H T M L指针的问题
像H T M L链接一样, H T M L指针存在缺点:
(1) HTML锚点必须先被声明
为了指出H T M L文档中一个特定的位置,文档必须含有<A NAME=...>锚引用。如果没有这
个声明,H T M L指针将不能指向H T M L文档的一个位置,也就不可能指入一个不具有锚点声明的
只读文档。
(2) HTML锚点必须链接到整个文档
没有办法使得一个H T M L指针指向一个目标文档的一个部分—而只能指向整个文。如果我
们能够定义一个指针使之仅仅指向目标文档的一个部分那就好了。这样处理器就可以显示出该
部分而不是整个目标文档。
后面我们将会看到, X M L指针机制将能够解决这两个问题。
8.3.2 XPointer 规范
W 3 C关于XML 指针的规范被称为XPo i n t e r,它可以在下面的网址中查到:
h t t p : / / w w w. w 3 . o rg / T R / x p t r。
在本书编写的时候, XPointer 还是一个处于最后召集状态的运行草案,这意味着下两个月
内它可能成为推荐产品,而该规范内出现的信息将不可能发生重大改变。
注意:XPo i n t e r基本上是另一个规范, XPa t h的延伸。XPa t h是用于表达X M L文档内独立信
息项目的W 3 C通用机制,也是X S LT的一个主要组成部分。XPo i n t e r提供了语法,用于说明一个
第8章链接和查询使用267 下载
到达X M L文档的链接的地址信息。稍后我们将简要讨论一下XPa t h。
1. 在U R I中指定XPo i n t e r
XPointer 可以按照和H T M L指针类似的方法被引用。当使用识别X P o i n t e r处理器进行处理的
时候,通过给X M L文档自身的U R I附加一个XPo i n t e r程序段标识符,U R I可以包含该X M L文档内
一个位置的引用。和H T M L锚点引用不同,应用于U R I的指针机制可以通过放置指针机制名称及
定位的括弧来识别—对于XPo i n t e r来说,总是采用XPointer( )的形式。
例如:h t t p : / / w w w. w r o x . c o m / C a t a l o g / c a t a l o g . x m l # x p o i n t e r ( b o o k 1 )会指向c a t a l o g . x m l文档内具
有I D为b o o k 1的元素。我们稍后将从一定的深度讨论程序段标识符的指定方法。
上个例子按照和H T M L指针同样的方法指向文档,程序段标识符指明了在映射内容时,文档
移动的位置。请求一个需要显示的指定程序段而忽略文档的其他部分也是可行的,这通过使用
程序段指示符“|”,而不是“ #”实现:
h t t p : / / w w w . w r o x . c o m / C a t a l o g / c a t a l o g . x m l | x p o i n t e r ( b o o k 1 )
这个U R I仅仅映射具有I D为book1 的元素(以及任何包含在该元素内的子元素及属性),而忽
略了文档的其他部分,这就为筛选大的XML 文档,返回和附近位置相关的信息提供一个很好的
方法。
2. 程序段标识符可以如何指定
在XPo i n t e r中有三种方法指定程序段标识符。其中之一为完全指定,非常复杂,并允许以一
定的灵活性来指向一个X M L文档。它是建立在W3C XPa t h推荐标准基础之上,这一点我们在讨
论完整规范机制时将会对其进行探讨。首先,我们讨论在XPo i n t e r中指定程序段标识符的其他两
种方法。
(1) Bare Name程序段标识
为提供我们在H T M L中使用的类似功能,一种速记表示法被提出,用来指向具有特定I D的
元素。例如,假如我们有下列的文档, c a t a l o g . x m l:
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(93)