文档介绍:
Java XML 教程 Java XML 教程第一章入门介绍关于本教程在本教程中,我们将讨论如何使用一个 XM L解析器来: 处理一个 XML 文档创建一个 XM L文档操作一个 X ML 文档我们也将讨论一些有用而不为众人所知的 X ML 解析器特性。最重要的,我们所讨论的每个工具都可从 IBM 的 alpha Works 站点(ww w.alp hawor ks.ib )和其它网站免费获得。未讨论的: 有些重要的编程概念并未在此介绍: 1使用可视工具来构建 XML 应用 2将一个 XML 文档从一种形式转换到另一种 3为最终用户或其他进程创建接口, 及对后端存储数据的接口当您构建一个 X ML 应用时,所有这些概念都是重要的。我们正在编制新的教程来讨论它们,因此请常光顾我们的网址! X ML 应用架构一个 XML 应用通常是基于一个 XM L解析器而构建的。它为其用户提供了一个接口,以及对后端存储数据的一个接口。本教程关注于编写使用 XML 解析器来操作 X ML 文档的 Java 代码。如下边图片所示, 本教程关注于中间那块。第二章解析器基础基础一个 XM L解析器是一段可以读(来源:淘豆网[])入一个文档并分析其结构的代码。在本章节, 我们将讨论如何使用一个 XML 解析器来读入一个 XML 文档。我们也将讨论不同类型的解析器以及您在何时使用它们。本教程后面的章节将讨论您从解析器可以获得什么以及如何使用这些结果。如何使用一个解析器我们将在稍后的章节详细讨论它,但通常而言, 您如下使用它: 1创建一个解析器对象 2将您的 XML 文档传递给解析器 3处理结果构建一个 XML 应用显然远远超出这些,但通常一个 X ML 的应用将包含这些流程。解析器种类有不同的方法来划分解析器种类: 验证或非验证解析器支持 Docum entOb jectM odel( DOM) 的解析器支持 Sim pleAP IforX ML(SA X)的解析器用特定语言编写的解析器( Java, C++,P erl等) 验证或非验证解析器如我们在第一个教程中所提及的, XML 文档如果使用一个 DTD 并符合 DTD 中的规则将被称为有效文档(va liddo cumen t)。符合基本标记规则的 XML 文档被(来源:淘豆网[])称为格式正确文档(wel l-for meddo cumen t)。 XML 规范要求所有的解析器当其发现一个文档不是格式正确时要报错。验证(Vali datio n)则是另一个问题了。验证解析器(Val idati ngpar ser) 在解析 XML 文档同时进行验证。非验证解析器(Non- valid ating parse r)忽略所有的验证错误。换而言之,如果一个 XML 文档是格式正确的时,一个非验证解析器并不关注文档是否符合其对应 DTD 所指定的规则(如果有的话)。为何使用非验证解析器? 速度和效率。要一个 XM L解析器处理 DTD 并确保每个 X ML 的元素符合在 DT D 中的规则需要相当大的开销。如果您确定一个 XML 文档是有效的(可能来自一个数据源),那就没有必要在次验证它了。同样,有时您所需要的只是从一个文档中找出 XM L的标记。一旦您有了这些标记, 您可以将数据从中提取出然后加以处理。如果这就是您所需要的,一个非验证解析器就是正确的选择。 Do cumen(来源:淘豆网[]) tObje ctMod el(DO M) 文档对象模型(Doc ument Objec tMode l)是 Wo rldWi deWeb Conso rtium (W3C) 的正式推荐。它定义了一个接口使得程序可以存取和更新 XML 文档的风格、结构和内容。支持 DOM 的 XML 解析器实现该接口。该规范的第一版, D OMLev el1 ,可从 http ://ww w.w3. org/T R/REC -DOM- Level -1获得, 如果您愿意阅读规范的话。 DOM 解析器可提供什么当您用一个 D OM 解析器来解析一个 XML 文档时,您将获得一个包含文档中所有元素的树结构。 DOM 提供了不同的功能来检查文档的内容和结构。关于标准现在我们即将讨论开发 XML 应用了,我们也要关注 XM L的标准。正式而言, XML 是M IT( 麻省理工)的商标和 Wor ldWid eWebC onsor tium( W3C) 组织的产品。 XM L规范, W3C 的正式推荐,可从 /TR/(来源:淘豆网[])R EC-xm l下载。 W3C 站点包含了 XML 、 DOM 以及一大堆 X ML 相关标准的规范。 Si mpleA PIfor XML(S AX) SAXA PI是另一种处理 XM L文档内容的方法。一个既成事实的标准,它由 Davi dMegg inson 和 XML- Dev 邮件列表其它成员所开发。要查看完整的 S AX 标准, 参见 www .megg inson .com/ SAX/ 。要参加 XM L-Dev 邮件列表, 发送邮件到 major domo@ ic.ac .uk 其中包含: su bscri bexml -dev 。 SA X解析器可提供什么当您使用 SAX 解析器来解析 XML 文档时,解析器在文档的不同处将产生事件。由您来决定对每个事件如何处理。 SAX 解析器会在以下情况下产生事件:在文档开始和结束时,在一个元素开始和结束时,或者它在一个元素中找到字符时,以及其它若干点。您可编写 Java代码来处理每个事件,以及如何处理从解析器获得的信息。何时使用 S(来源:淘豆网[])AX ?何时使用 DO M? 我们将在稍后的章节详细讨论这个问题,但通常而言,您在下列时候应该使用一个 DOM 解析器: 您需要十分了解文档的结构您需要操作文档中的某些部分(例如,您可能想对某些元素排序) 您需要不止一次使用文档中的信息当您只需要从一个 XML 文档中提取若干元素时, 可使用 SA X解析器。 SAX 解析器在您没有大多数内存时、或者如果您只需要使用文档中的信息一次(而不是解析文档一次,而后要反复使用它)。不同语言的 X ML 解析器在W eb上使用的大多数语言都有其对应的 XML 解析器和库,包括 Java、 C+ +、 Per l和 Pyt hon 。下一页介绍了 IBM 或其它公司提供的解析器的链接。本教程中绝大多数的示例是使用 IBM 的 X ML4J 解析器。我们所讨论的所有代码使用标准的接口。在本教程的最后章节,我们将向您展现编写可
1
内容来自淘豆网转载请标明出处.