高级Web技术 XML&ava
高级Web技术 XML&Java
本次课程内容 XML-Java DOM SAX JDOM Java&XSLT stAX
本次课程内容 ◼ XML-Java ◼ DOM ◼ SAX ◼ JDOM ◼ Java&XSLT ◼ StAX
DOM&SAX简介 应用程序需要和XML文档进行交互。通常使用现成的解析器,而 不自行编写 解析器是设计用来分析XML文档一并对信息做一些特定的事情 的软件应用程序,SAX和DoM是解析器所采用的两种重要的解 析API SAX这种基于事件的API中,解析器发送一些事件给某类侦听 器。在如DoM这种基于树的API中,解析器在内存中构建数 据树 DoM( Document object Model),由w3c制定 www.xml.orgXml-Devi邮件列表成员共同开发了SAX
DOM&SAX简介 ◼ 应用程序需要和XML文档进行交互。通常使用现成的解析器,而 不自行编写 ◼ 解析器是设计用来分析XML 文档 — 并对信息做一些特定的事情 的软件应用程序,SAX和DOM是解析器所采用的两种重要的解 析API ◼ SAX 这种基于事件的 API 中,解析器发送一些事件给某类侦听 器。在如 DOM 这种基于树的 API 中,解析器在内存中构建数 据树 ◼ DOM(Document Object Model),由w3c制定 ◼ www.xml.org XML-DEV邮件列表成员共同开发了SAX
DOM&SAX简介 支持软件: 解析器: JavaTM APIs for XML Processing:又称为JAXP11 http:/liavasuncom/xml/xmliaxp.html JavaTM 2 SDK httpl/java.suncom/i2se 工BM:XML4J Microsoft: msxml Apache项目: Xerces
DOM&SAX简介 ◼ 支持软件: ◼ 解析器: ◼ JavaTM APIs for XML Processing:又称为 JAXP 1.1 ◼ http://java.sun.com/xml/xml_jaxp.html ◼ JavaTM 2 SDK ◼ http://java.sun.com/j2se ◼ IBM:XML4J ◼ Microsoft: MSXML ◼ Apache 项目:Xerces
DOM DoM简介 XML文档具有称为点的信息单元的层次结构;“文 档对象模型(DoM)”是描述节点和节点间关系的方 式 由于DoM是基于信息的层次结构,因此它被称为是葚 于树的 整棵对象树建立在内存中,性能较低 文档有较好随机访问性能 DoM是与语言和平台无关的、设计用来使用XML数 据的API。提供了创建、修改、删除以及重新排序节点 的功能 DoM实现可以有Java,C十十、Per和其它语言的 版本
DOM ◼ DOM简介 ◼ XML 文档具有称为节点的信息单元的层次结构; “文 档对象模型(DOM)” 是描述节点和节点间关系的方 式。 ◼ 由于 DOM 是基于信息的层次结构,因此它被称为是基 于树的 ◼ 整棵对象树建立在内存中,性能较低 ◼ 文档有较好随机访问性能 ◼ DOM 是与语言和平台无关的、设计用来使用 XML 数 据的 API。提供了创建、修改、删除以及重新排序节点 的功能 ◼ DOM 实现可以有Java, C++、Perl 和其它语言的 版本
DOM 基于树的XML应用程序典型流程 ? xml version=°1,0"7 document attr="foo° element>bar DOM parse lient Pr ogram In-memory Tree
DOM ◼ 基于树的XML应用程序典型流程
DOM DOM不同层次 DOM Level0:作为允许Web浏览器来标识和操纵页面上元素 的方式 DOM Leve1:包含对XML1.0和HTML的支持。它还包含 用于添加、编辑、移动和读取包含在节点中信息的方法等等。不包括 “XML名称空间”的支持 DOM Leve2:添加了名称空间支持,允许开发者检测和使用可能 可用于节点的名称空间信息。Leve2还添加了几个新模块,这些 模块支持级联样式表、事件以及增强的树操作 DOM Leve3:还在编写之中,包括: 两个新的建议, XML Infoset和 XMIL Base n扩展了对用户界面事件的支持和对DTD的支持 XML Schema装入和存储能力 还添加了对 XPath的支持,这意味着在“XSL转换”中使用 XPath可以定位特定节点
DOM ◼ DOM不同层次 ◼ DOM Level 0:作为允许 Web 浏览器来标识和操纵页面上元素 的方式 ◼ DOM Level 1: 包含对 XML 1.0 和 HTML 的支持。它还包含 用于添加、编辑、移动和读取包含在节点中信息的方法等等。不包括 “XML 名称空间”的支持 ◼ DOM Level 2:添加了名称空间支持,允许开发者检测和使用可能 可用于节点的名称空间信息。Level 2 还添加了几个新模块,这些 模块支持级联样式表、事件以及增强的树操作 ◼ DOM Level 3: 还在编写之中,包括: ◼ 两个新的建议,XML Infoset 和 XML Base ◼ 扩展了对用户界面事件的支持和对 DTD 的支持 ◼ XML Schema 装入和存储能力 ◼ 还添加了对 XPath 的支持,这意味着在“XSL 转换”中使用 XPath 可以定位特定节点
DOM 树模型示例 bibliography book XML isbn○ hull title autor author publisher/year vianu Wesley 1995
DOM XML Hull Vianu Wesley 1995 … bibliography book isbn 111 title author author publisher year XML Hull Vianu Wesley 1995 ◼ 树模型示例
DOM XML中最常见的节点类型 n元素:元素是XML的基本构件。典型地,元素可以有其它元 素、文本节点或两者兼有来作为其子节点。元素节点还是可以 有属性的唯一类型的节点。 属性:属性节点包含关于元素节点的信息,但实际上,不认为 它是元素的子节点。 文本:包含文本信息 文档:文档节点是整个文档中所有其它节点的父节点 cData:“字符数据”的缩写,这是包含不应该由解析器分 析的信息的节点 注释:注释包含有关数据的信息,通常应用程序会忽略它们 处理指令:PI是专门针对应用程序的信息
DOM ◼ XML 中最常见的节点类型 ◼ 元素:元素是 XML 的基本构件。典型地,元素可以有其它元 素、文本节点或两者兼有来作为其子节点。元素节点还是可以 有属性的唯一类型的节点。 ◼ 属性:属性节点包含关于元素节点的信息,但实际上,不认为 它是元素的子节点。 ◼ 文本:包含文本信息 ◼ 文档:文档节点是整个文档中所有其它节点的父节点 ◼ CData: “字符数据”的缩写,这是包含不应该由解析器分 析的信息的节点 ◼ 注释:注释包含有关数据的信息,通常应用程序会忽略它们 ◼ 处理指令:PI 是专门针对应用程序的信息
DOM ■元素与节点 元素只是一种类型的节点。元素艺点是信息的容器。信息可以 是其它元素节点、文本节点、属性节点或其它类型的信息 n当一个节点包含另一个节点时,那个节点被认为是这个节点的 子芳点 n一般情况下,元素之间的空白组成一个文本节点 规范化 DTD明确声明 和 senver server monitor 有 m值它们有子文本 samples monitor color
DOM ◼ 元素与节点 ◼ 元素只是一种类型的节点。元素节点是信息的容器。信息可以 是其它元素节点、文本节点、属性节点或其它类型的信息 ◼ 当一个节点包含另一个节点时,那个节点被认为是这个节点的 子节点 ◼ 一般情况下,元素之间的空白组成一个文本节点 ◼ 规范化 ◼ DTD明确声明 ◼ server 和 monitor 有 null 值,它们有子文本 节点 UNIX 和 color