• 热门标签

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

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

的整个目录(关于所有书籍的详细资料),而这会迫使使用者从整个目录中搜索自己感兴趣的
一本书的信息,相反发送方仅发送这一本书的程序段给使用者即可。这样就会减少传输消耗的
带宽,进而使接收段的剖析更为快捷,直接得到需求的信息,而根本不用去考虑滤除不必要的
信息。
2. 收集信息子集
让我们扩展一下本章前面的例子。假定Wr o x在X M L目录文档中包含了关于特权,分布数量
等的私人信息。不过,如果信息不是邻近的, X F I不允许我们将其作为一个段来传送信息, X F I
这里显然不是一个好的解决办法。让我们看下面的例子:
第8章链接和查询使用279 下载
程序清单8 - 6 1
如果一个人索要关于《IE5 XML Programmer's Reference》这本书的信息,就会产生一个仅
仅包含兄弟元素作为该书的公有信息的程序段,但不包括私有信息:
程序清单8 - 6 2
然而,程序段对信息编辑来说不是个好的选择(编辑待打印的信息子集),因为只有邻近的
章节被指定—如果我们想发送除去私有信息的整个目录,利用程序段的方法将不能达到这个目
的。对这类操作一个更好的办法是X P a t h和X S LT,在我们讨论那些技术的时候将会看到这一点。
3. 实时编辑和版本控制
仍然看上面的例子,我们假设目录文档内容更深入一点,实际包含了正被讨论的每本书的
文本:
程序清单8 - 6 3
280使用XML 高级编程
下载
下面让我们看一下如何为该书每个章节实现一个实时编辑和版本控制的简单表单。
我们需要某一类数据库来记录跟踪树中每章的当前状态(参见表8 - 7)。
表8 - 7
书章状态
IE5 XML Programmer's Reference 1 Not checked out
IE5 XML Programmer's Reference 2 Checked out to “jond”
IE5 XML Programmer's Reference 3 Checked out to “kevinw”
IE5 XML Programmer's Reference 4 Not checked out
当然,如果我们对每章实施控制,就可以把它作为< C h a p t e r >元素上的一个状态属性达到这
个目的。
然后我们编写一段应用程序允许不同的作者和编辑检验并对每一章进行检查。当对一作者
来说某一章被检查过了,仅把那一个程序段发送给作者:
这就允许一个作者对一个章节进行操作,同时另外一个作者可操作另外一章。而不会相互
改写和覆盖对方的工作。当一个作者对某一章的修改完成之后,他就可以把修改程序段发送回
Wr o x,然后集成到整个原始文档。在数据库中指定更新一个版本表单,指明何人何时编辑过文
档将会是一个较简单的事情,现在一些商业X M L服务器已经可以实现这类功能。
8.5.3 问题:Bare文档程序段并不总是充分的
前面提到我们可利用X F I检索到X M L文档的细节,但是经常接收方需要比此文档程序段所包
含的更多的信息来完成工作;它经常需要一些上下文的信息。下面我们要考查一些文档程序段
不足以提供充分信息的情形,然后再看一下W 3 C对这个问题的解决办法。
1. 描述什么
经常在一个设计好的X M L文档中,元素根据它们在文档结构中的不同位置以不同的含义被
重复使用,看下面的例子:
程序清单8 - 6 4
第8章链接和查询使用281 下载
现在,假如收到了如下的文档程序段:
这是一本编程书的价格还是一对mocha latte的价格?由于没有充分的信息,所以很难讲。发
送方可以发送完整的父元素:
程序清单8 - 6 5
但是现在我们收到一些不想或者不必知道的信息。如果我们知道一些程序段的环境信息,
而不必接收上下文所有的内容,这样就非常好了。
2. 利用I D R E F和I D R E F S
前面的例子中已经提到了Wr o x已经发布了它的版本控制管理软件。一位作者正在写作第四
章,这时她意识到应该为第一章写的内容引入一个索引,她记得为那一段加了一个I D,但记不
起来是什么了。由于仅仅有第四章程序段可以利用,而不能利用I D R E F映射到第一章的I D,如
果她能有些关于第一章的某类信息就好了—例如利用I D R E F S标识的各部分的标题—而不必
要下载整本书。
3. 验证处理器
假设我们用D T D来指定目录例子中的内容:
程序清单8 - 6 6
而且,一位作者想对一个章节进行检验。如果该作者利用验证处理器来查证章节结构,利
用原始的D T D去做会产生一个问题—原始D T D期盼的是一个< C a t a l o g >元素、< B o o k >元素等
等。一个理想的文档版本会包含占位符来满足D T D,但不包含占位符的内容,从而使带宽消耗
和处理时间达到最小化。
282使用XML 高级编程
下载
8.5.4 解决办法:环境信息
幸运的是W 3 C在制定X F I时已经预计到会产生这些问题,所以提供了向接收方传输程序段的
同时附加传输环境信息的机制。
1. 什么是环境信息
环境信息是发送到接收方用于帮助描述原始文档中程序段结构位置的信息。X F I规范在允许
为使用者提供什么样的环境信息方面有很大灵活性;发送的信息应该基于使用者的需求。是和
直达文档的程序段祖先一样少,或者和原始文档中所有不同的元素标识一样多,这些由X M L服
务器来决定什么样的环境信息对用户处理器有用。
然而规范没有为环境信息如何传输作出明确的解释,它提出了两条建议。第一个建议是向
需求方发送两个文件:
• 程序段上下文规范文件,它包含了有关这个元素的所有必要的信息,和包含该程序段的文
件索引。
• 程序段本身作为一个独立的文件。
这样就需要产生两个文件,其中一个以某种方式隐藏起来(通过存储在磁盘的文件或者其
他机制),它意味着接收处理器能够提供围绕该程序段的信息。
另外一个建议是仅传输一个文件,利用命名空间从真正的程序段内容中分离出环境信息。
为了举例说明程序段交换,我们采用前一条建议(稍后我们再来看后一条建议)。
2. 什么可以是环境信息的组成部分
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(98)