• 热门标签

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

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

1. DOM Level 1
W3C DOM Level 1文档处于建议的状态。这意味着W 3 C已经审阅过它,接受了成员对它的
注释,并且经过修订,正在将它提升为W W W的标准。h t t p : / / w w w. w 3 . o rg / T R / R E C - D O M - L e v e l -
1 /提供了建议的完整文本。
Level 1文档包含两个主要部分。第一部分,文档对象模型(核心) Level 1定义了用于访问
任何结构化文档的接口,以及用于访问X M L文档的特殊扩展。文档的第二部分描述了D O M针对
H T M L的扩展,它超出了本书的讨论范围。
D O M规范通过定义数据类型D O M S t r i n g描述了D O M如何操作字符串。该数据类型定义为双
字节字符集,采用U T F - 1 6编码机制进行编码。对于特定的实现,接口通常被绑定到也采用U T F -
1 6编码的系统数据类型,例如: J a v a的S t r i n g类型。
下面让我们来看看构成DOM Level 1规范的对象、方法和属性。需要注意的是,其中描述的
行为仅仅适用于X M L文档;当用于访问H T M L文档时,D O M将有不同的行为。
图5 - 4显示了构成D O M的对象类层次:
图5-4
第5章文档对象模型使用115 下载
附录B提供了D O M对象的完整文档。
2. DOM Level 2
在编写本书时, W3C DOM Level 2规范正处于候选建议的状态。这意味着直接负责该规范
的技术团体已经对它进行了重要的审阅,现在它需要的是真正的实现,以及来自W 3 C之外各方
面的技术反馈。Level 2规范不仅包含上述所有对象,而且新增了以下特征:
• 支持命名空间—正如我们将在第7章中看到的,命名空间用于区分X M L中具有相同名称
的离散数据元素。它们通常提供返回原始的X M L结构文件的链接,该文件包含某种格式的
元素信息。DOM Level 2将提供查询和修改文档命名空间的机制。
• 样式表—DOM Level 2包含样式表的对象模型,以及用于查询和操作特定文档的样式表
的方法。
• 过滤—DOM Level 2新增了用于过滤X M L文档内容的方法。
• 事件模型—DOM Level 2计划提供X M L的事件模型。
• 范围(R a n g e)—DOM Level 2包含用于操作大块文本的函数,它有助于在X M L中处理
传统的文档。
h t t p : / / w w w. w 3 . o rg / T R / D O M - L e v e l - 2 /提供了DOM Level 2规范的W 3 C候选建议的完整文本。
3. 理解I D L和绑定
阅读D O M规范时,许多开发人员有可能对接口定义的方式感到陌生。记住, W 3 C将D O M定
位为独立于平台的,即: W 3 C指定了特定系统的实现需要提供哪些方法和属性,但没有详细说
明如何获得这些实现。为此, W 3 C选择通过以下几种方式表达与D O M的接口:通过OMG IDL
(它是CORBA 2.2规范的一部分),或者通过J a v a和E C M A S c r i p t相结合。当开发人员使用非W 3 C
规范的D O M实现应用程序时,应该参考随类库一起提供的特定实现的文档。例如, M i c r o s o f t在
h t t p : / / m s d n . m i c r o s o f t . c o m / x m l / r e f e r e n c e / x m l d o m / s t a r t . a s p提供了他们实现的XML DOM的文档。
5.1.4 现实世界中的DOM
到目前为止,我们已经从纯理论角度介绍了D O M—我们从W 3 C通用建议的角度讨论了
D O M。下面,看看D O M在现实世界是如何实现的。
当前浏览器中的D O M
在编写本书时,只有Internet Explorer 5内置了D O M类库,并且支持X S L。客户端代码可以
引用页面中的数据岛—内嵌在H T M L文档中的X M L 文档— 通过文档中数据岛对象的
X M L D o c u m e n t属性能够获得该引用,同时通过该引用能够调用M i c r o s o f t类库支持的所有功能。
这些类库支持DOM Level 1规范定义的全部功能,另外,它提供的扩展函数能够简化X M L数据
访问,并操作X S L样式表。
N e t s c a p e尚未提供对D O M的内置访问(至少到4 . 7版为止是这种情况),但是如果你有一组
A c t i v e X或Java DOM类库,就能够在客户端利用J a v a或J a v a S c r i p t对X M L文档进行访问和操作。
需要注意的是,在访问X M L文档之前,你的客户端需要下载并安装这些类库。现在正在开发的
N e t s c a p e的下一版本将内置对X M L和X S L的支持。
M i c r o s o f t实现的A c t i v e X和J a v a类库形式的D O M可以从地址h t t p : / / m s d n . m i c r o s o f t . c o m /
116使用XML 高级编程
下载
d o w n l o a d s / t o o l s / x m l p a r s e r / x m l p a r s e r. a s p免费下载。
判断浏览器类型
除非你能够控制应用程序的目标浏览器(例如:你正在为公司开发I n t r a n e t应用程序,并且
公司要求使用Internet Explorer),否则保证代码在各种浏览器上的通用性是至关重要的。为了实
现这一目标,同时不以牺牲程序的功能为代价,你的代码应该在要执行特定浏览器才具备的功
能之前查询浏览器的类型。
让我们看下面的例子,它是用J a v a S c r i p t编写的。你可以将这个代码片段包含在你的We b站
点的缺省页面中:
程序清单5 - 4
以上代码通过检查导航( n a v i g a t o r)对象的u s e r A g e n t属性,判断用于访问页面的浏览器的
类型。只有M i c r o s o f t的Internet Explorer 5.X在u s e r A g e n t属性中内置了字符串“ MSIE 5”。通过
检查属性中是否包含该字符串,脚本能够确定所用的浏览器是否是Internet Explorer 5,并根据
判断的结果进行适当的重定向。例如,页面d e f a u l t i e . h t m(专用于IE 5浏览器)中可能包含要使
用IE 5客户端XML DOM 特征的J S c r i p t代码,而页面d e f a u l t n s . h t m(专用于非IE 5浏览器)可能
依赖于服务器端的表单处理实现相同的目的。注意,随着新版本的出现,以上代码可能要根据
各种浏览器客户端传递的u s e r A g e n t字符串进行适当调整。
5.1.5 特殊的XML DOM实例—HTML DOM
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(49)