• 热门标签

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

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

一个应用程序显示这些事件周围的文本,并可能允许通过X L i n k跳至文档内那个位置。
函数here( )返回包含X P o i n t e r自身的元素。该函数允许XPo i n t e r指向其他位置,这些位置和
指向文档自身内X P o i n t e r的位置相关。例如,下面的X P o i n t e r将指向X P o i n t e r元素自身的上一级:
程序清单8 - 5 9
函数unique( )是一个布尔函数,用来决定一个位置集合是否仅仅包含一项。在X P o i n t e r中确
认一个单个位置由X P o i n t e r表达式所指定是很重要的(例如,若自动处理正在翻译的文件)。下
面两个谓词意义相同:
程序清单8 - 6 0
8.4.3 XPointer错误
不合适的X P o i n t e r可能会导致三个错误。任何识别X P o i n t e r解析器需要以某种方式处理这些
错误(X P o i n t e r规范将精确的机制留给开发者设计识别X P o i n t e r处理器)。
1. 语法错误
一个和X P o i n t e r规范的语法限制不相对应的程序段标识符将会导致语法错误。
2. 资源错误
语法正确的程序段标识符,但是附加了一个不合适的资源(例如一个文档不是一个格式正
规X M L文档),将会导致资源错误。
3. 子资源错误
语法正确的程序段标识符,附加了一个格式正规的X M L文档,但是不能产生一个有效的位
置会导致一个子资源错误。
任何识别X P o i n t e r的处理应用程序应该能捕捉这些错误,并按照顺序进行处理。
8.4.4 小结
X P o i n t e r为U R I提供一个机制来指向一个X M L文档的某一个部分。然而目前X P o i n t e r还没有
严格地安装启用,当前的规范正处于最后的集成状态,使用X P o i n t e r的处理器安装启用不久将会
成为现实。
第8章链接和查询使用277 下载
8.5 XML程序段交换
随着X M L文档存储容量扩充,以及文档平均规模的增加,文档操作变得越来越难处理。如
果我们在任何时候能够方便地利用文档的一小部分而不必把整个文档转换并加载进来,这样就
很好了。为达到这个目的, W 3 C为X M L程序段交换制定了一个标准(称为X F L,不过现有的工
作草案并没有使用这个缩写),定义了X M L文档块产生和转换的一些机制。然而,这个标准仅仅
停留在工作草案的状态—虽然这个研究组已经结束了这项工作,然而决定推迟执行和推广这
个规范,直到其他一些X M L规范发展成熟一些以后。
这个关于X M L程序段交换的W 3 C规范可以在如下的网址查到:
h t t p : / / w w w . w 3 . o r g / T R / W D - x m l - f r a g m e n t。
8.5.1 什么是文档程序段
文档程序段在这个规范中被定义为原始文档的正规匹配子集。文档的正确匹配子集包含整
个信息项—不过和X M L文档不同,不必具有类似意义上的完整形状。必须明确的是正确匹配
子集必须包含整体标签(不允许部分标签),即一个正确匹配子集如果具有初始标签,它必须有
一个对应的结束标签。后面我们将会看到一些例子。
由服务于程序段的应用程序来决定哪一个信息块对使用者是有用的。一个最普遍的例子就
是仅仅传输使用者的程序段所必需的元素,不过其他类型的程序段也是可能的。为了帮助我们
了解哪一个文档块是一个程序段,让我们看一下本章前面的一个示意图(参见图8 - 1 3)。
图8-13
278使用XML 高级编程
下载
文档
元素: Catalog
元素: Book
属性: color 元素: Title 元素: Pages 元素: ISBN
元素: RecSubj-
C a t e g o r i e s 元素: Price
文本: "$49.95"
元素: Catagory
文本: "Web 文本: "XML"
Publishing"
文本:
"Internet"
元素: Catagory
文本: "1-
文本: "480" 861001-57-6"
文本: "IE5 XML
文本: "red" Pr o g r a m . . . "
元素: Catagory
在上面的树状示意图上,通过直线和主树干相连的的每个分支被认为可能是程序段,因为
每个分支在原始文档范围内连续形式被定义。它们被嵌入在标识内而不能保证是正确匹配,从
而属性被定义为程序段。并且邻近的兄弟(和它们的子节点)可以一同被定义为一个程序段,
这是由于它们一起同时出现在原始文档中,还可以按照原始(序列化文本)文档:一个有效的
程序段作为一个邻近的文本块出现原始文档中,相反的是非邻近的文本决不会是有效的程序段。
不过必须指出的是可能有些邻近的文本块不是有效的程序段—上面的规则仍然适用。
上面的示意图中一些有效的程序段可能是:
• <RecSubjCategories>元素和它们的子节点
• 文本项“4 8 0”
• 前两个< C a t e g o r y >元素和它们的子节点
然而,下面这些可能就不是有效的程序段:
• 第一个< C a t e g o r y >元素和第三个< C a t e g o r y >元素
• <color>属性
• <Price>开始标识,但没有< / P r i c e >结束标识
• 不具有文本子节点的< B o o k >元素
8.5.2 文档程序段的一些用途
我们知道了文档程序段的概念,那么我们用它们做些什么呢?让我们看一下程序段能够在
应用程序开发中发挥作用的几个途径:
• 使用程序段可以有助于我们节省资源消耗(处理时间、内存需求、网络需求、存储需求
等)。
• 使用程序段有助于我们从源文档中隔离出相关的信息子集,只要这些信息是相邻近的。非
邻近信息不能以一个单一程序段来发送,避免使程序段对特定信息块的校订来说不是最优
的选择。
• 使用程序段可以使我们能够为庞大的X M L文档产生一个实时编辑环境。
1. 节省资源
程序段对我们发挥作用最明显的表现就是能够减少网络传输和系统处理的信息量。举例来
说,一个使用者需要从Wr o x目录中了解某一本书的有关信息。这时发送给接收方的不是Wr o x
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(97)