单元 10. XML 解析器外文翻译资料

 2023-02-17 07:02

单元 10. XML 解析器

这个单元关于什么

本单元将介绍XML解析器的一般概述。 解析器公开XML文档的数据和结构以进行进一步处理。
在本单元中,将为学生提供在XML处理中使用XML解析器的信息。.

你应该做什么

完成本单元后,您应该能够:

bull;定义解析器及其用途
bull;列出两个主要的解析API
bull;描述Apache Xerces解析器
bull;描述解析XML时的一般流程
bull;识别解析XML文件时的常见问题
bull;描述JAXP API及其用途

您将如何检查进度

问责制:

    • 检查站
    • 机器练习

单位目标

完成本单元后,您应该能够:

定义解析器及其用途

列出两个主要的解析API

描述Apache Xerces解析器
描述解析XML时的一般处理流程

确定解析XML文件时的常见问题

描述JAXP API及其目的

Figure 10-1. Unit Objectives XM3413.0

笔记:

讲师须知:

目的

详细信息 — 该演示文稿将为学生提供XML解析器及其用途的实践知识。 该学生还将学习在使用解析器时如何利用JAXP API来抽象XML解析器实现。

附加信息

过渡声明

10.1 XML 解析器

动机

解析器构成任何XML处理程序的基础。

需要一种访问XML文档中数据的方法。

希望了解不同的解析器。

-使用正确的工具完成工作。

希望利用现有工具。
-不要重新发明轮子。

Figure 10-2. Motivation XM3413.0

笔记:

为什么要打扰XML解析器? 解析文本非常容易,尤其是在元素开始和结束标签中明确定义了分隔符的文本。
您为什么还要学习另一组XML API? 简单,不要重新发明轮子。 它已经完成了,并且比您可能做的更好和彻底。

讲师须知:

目的— 激发学习XML解析器的动机,并确定它们为XML编程增加的价值。

详细信息— 注意: 本节中没有实际的代码示例。本节旨在介绍XML解析器及其执行的功能。用于XML解析的所有代码示例都包含在SAX和DOM部分中。

没有解析器,XML文档是静态文本。解析器为文档提供了生命,使程序可以对结构所保存的数据采取行动。
解析器有许多不同的风格,并且具有许多API。在本课程中,我们将专注于两个最受欢迎的解析器API。每个人都有其自身的优点和缺点。在处理XML时,何时使用每种解析器样式很重要。是的,您可以用螺丝刀打钉子,但是如果有一把好的锤子,为什么还要打钉子呢?
考虑一下XML定义标签的命名规则,属性规则,引用规则,特殊字符引用等中嵌入了多少个规则。现在放入DTD和Schema及其在文档上强制执行的结构。您想尝试自己解决这个问题吗?解析器在一个干净的程序包中提供了所有这些预建功能。

附加信息

过渡声明— 让我们仔细看看解析器是什么以及它为程序员提供的功能。

什么是XML解析器?

解析器公开XML文档中的结构和内容,从而使其易于处理。.

为程序提供API,以访问XML文档。
-与编程语言无关的规范。

-程序员必须编写特定的代码来扩展解析器。

提供两种标准API:DOM(文档对象模型)SAX(XML的简单API)
两者都以不同的方式执行XML文档的处理。
还有其他API,但是它们不那么流行且非标准

Figure 10-3. What is an XML Parser? XM3413.0

笔记:

解析器是XML背后的动作,并且构成了几乎所有与XML相关的程序的基础。

讲师须知:

目的—描述解析器为XML处理带来的功能。

详细信息— 解析器为程序员提供了与XML文档进行交互的API。 通过在源XML和应用程序之间放置一个解析器,程序员可以不必处理定义XML结构的所有复杂规则。 您可以安全地阅读XML文档,并且知道它不符合解析器支持的标准。
API定义了要遵循的实现。 只要将应用程序写入特定的API,任何实现该API的解析器都将提供所需的结果。
本节将向您介绍两个主要的解析器API-DOM和SAX。 以下各节将详细介绍如何对这两个解析器API进行编程。
附加信息 -
过渡声明 —好,现在您知道解析器是什么,我们将研究解析器实际上为程序员提供的好处。

解析器是做什么的?

解析器协助:

格式正确的检查

验证

构建文档树(仅DOM)

通知错误应用

解析器执行以下基本功能

阅读文档

扩展实体

强制执行XML语法(格式正确)

强制执行文档架构(验证)

提供默认属性值编码转换

编码转换

提供用于管理XML文档的方法

大多数解析器都可以处理文件和流。

Figure 10-4. What Do Parsers Do? XM3413.0

笔记:

讲师须知:

目的— 详细说明解析器提供给程序员的功能。

详细信息—解析器在后台进行了大量工作。它们确保文档满足格式良好的XML的所有基本要求,例如命名约定,元素的层次结构,字符串引用和实体扩展。
解析器还可以针对DTD或架构执行验证。这通常是解析器中的可配置设置,我们将在下面简要介绍。并非所有解析器都能够执行验证。这样,解析器通常被分类为有效或无效。当今的大多数解析器都可以进行验证,但是可以禁用此功能。
解析器能够验证XML结构并验证其内容的能力还意味着,它将把违反这些问题的任何情况报告给应用程序。错误报告功能对于确保应用程序确定应如何以明确定义的方式处理此类情况非常重要。
解析器提供的其他功能是实体替换和语言翻译。您编写将简体中文XML源文档转换为普通UTF-8文档的程序有多容易?好的,现在重复进行数以千计的其他可能的语言转换。你明白了。
任何XML解析器API的最终结果都是读取XML并将其交付给应用程序。 DOM解析器以表示分层树结构的单个单元交付XML,而SAX解析器则以小片段形式返回XML。我们很快将深入研究这两种样式。

附加信息

过渡声明 — 我们需要理解,XML应用程序与用于读取XML数据的解析器之间存在明显的分隔。

解析器与应用程序

解析器

您不编写的代码(大多数情况下)。

了解XML语法的规则。
不了解您的特定应用程序的语义。
为手头任务选择的特定解析器。

应用

您编写的代码。
扩展解析器提供的功能。

理解语法的语义。

Figure 10-5. Parser versus Application XM3413.0

笔记:

解析器执行XML数据中的固定操作读取操作,并将其内容传递给应用程序。

讲师须知:

目的— 描述解析器和使用它的应用程序之间的区别。

详细信息— 如我们所示,解析器在处理XML文档时提供了很多功能。我们需要确保理解,解析器与其周围的应用程序之间存在明确的关注点分离。
解析XML包括在应用程序中使用解析器实现。解析器将执行其操作,并将应用程序交付给已解析的XML文档。取决于应用程序以完成整个程序目标的方式处理数据。
如果您只是编写搜索引擎,则应用程序所需的工作量很少。浏览文档,然后使用搜索键对项目进行简单比较。
在一个更复杂的应用程序中,例如以XML执行交叉引用的患者数据库的应用程序,应用程序开发人员需要为他完成大量工作。它可以像获取多个记录并将它们引用到其他记录并根据结果创建索引那样工作。
无论哪种情况,实际解析器的工作都是相同的。读入XML,并将其内容传递给应用程序。现在,您用于完成这些任务的实际解析器可能有所不同。
附加信息 -
过渡声明 —解析器API定义了一个接口。解析器本身就是该API接口的实现。让我们稍微靠近一下。

接口与实施

解析器API通常同时提供接口和实现类。.

接口

由规范组成:哪些方法可用,它们做什么/如何操作。

指定什么

实现

由代码组成。

指定方式。

大多数解析器API提供了基本的实现方式来帮助您构建应用程序。

不同的提供者/供应商可以为同一API提供不同的实现。

Figure 10-6. Interface versus Implementation XM3413.0

笔记:

为任何实现提供接口层是一种合理的开发实践。 这定义了一个通用且可重用的框架。

讲师须知:

目的—解释接口与解析器提供的实际实现类之间的区别。
详细信息-与任何良好的API一样,解析器在两个单独的层中定义; 一个接口层,充当功能性的规范,一个实现层,提供由接口指定的功能。
接口提供类和方法的预期输入和输出。 实现类建立在标准接口上,并且可以确保每个组件的功能。
解析器通常提供帮助程序实现类,应用程序可以扩展这些实现类以轻松挂钩到解析器并使之成为更大解决方案的一部分。
附加信息 -
过渡声明—如前所述,有两个解析器API。 这些是DOM和SAX。 让我们现在更好地了解他们。

两个解析器的故事

文档对象模型(DOM)

树结构。
丰富的API。
如果您打算编辑文档,那就很好。
如果您计划多次处理XML数据,则很好。
避免每次都重新准备。
避免构建自己的内部树(模型)。

XML(SAX)基于事件的简单API。

快速和容易使用。

很好,如果您不需要在内存中进行编辑。

如果内存有限,那就很好。

如果只需要文档的一部分,则很好。

您的应用程序指示要使用的API模型。

Figure 10-7. A Tale of Two Parsers XM3413.0

笔记:

讲师须知:

目的— 提供

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[234930],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。