编者:
Mike Champion, ArborText (from November 20, 1997)
Steve Byrne, JavaSoft (until November 19, 1997)
Gavin Nicol, Inso EPS
Lauren Wood, SoftQuad, Inc.
目录
1.1. DOM核心接口的概述
本节定义了用于访问和操作文档对象的最小对象和接口集。本节中指定的功能(核心功能)应该足以让软件开发人员和web脚本作者能够访问并操作解析符合标准的HTML和XML内容。DOM Core API还允许使用DOM API调用创建文档(Document)对象;创建框架文档并将其持续保存在实现DOM API的产品中。
1.1.1. DOM结构模型
DOM将文档作为节点对象的层次结构,并实现其他更专门的接口。某些类型的节点可能有各种类型的子节点,而其他节点则是在文档结构中不能有任何低于它们的节点。节点类型,以及可能有/作为子节点的类型,如下:
Document--Element(最大的),ProcessingInstruction,Comment,DocumentType
DocumentFragment--Element,ProcessingInstruction,Comment,Text,CDATASection,EntityReference
DocumentType-- 没有孩子
EntityReference-Element,ProcessingInstruction,Comment,Text,CDATASection,EntityReference
Element--Element,Text,Comment,ProcessingInstruction,CDATASection,EntityReference
ProcessingInstruction-- 没有孩子
Comment-- 没有孩子
Text-- 没有孩子
CDATASection-- 没有孩子
Entity--Element,ProcessingInstruction,Comment,Text,CDATASection,EntityReference
Notation-- 没有孩子
DOM 还指定了一个 NodeList 接口来处理节点的有序列表, 比如 Node 的子节点, 或者是通过 Element.getElementsByTagName方法返回的元素, 以及一个 NamedNodeMap 接口来处理通过name属性引用的无序节点集合, 例如 DOM中 Element.NodeList 和 NamedNodeMap 的属性,也就是说,底层文档结构的变化反映在所有相关的NodeLists和NamedNodeMaps中。例如,如果一个DOM用户获得一个包含Element子元素的NodeList对象,那么随后会将更多的子元素添加到该元素中(或删除子元素,或者修改它们),这些更改会自动反映在NodeList中,而不会对用户的部分进行进一步的操作。同样,对树中的节点的更改也反映在NodeLists和NamedNodeMaps中对该节点的所有引用中。
1.1.2. 内存管理
1.1.5 DOMString 类型
为了确保互操作性,DOM指定DOMString类型如下:
应用程序必须使用UTF-16编码DOMString(在附件C.3中定义) [和第1号修正案 [(ISO-10646])