跳转到内容

XML - 数据交换管理/XML 简介

来自 Wikibooks,开放世界中的开放书籍



上一章 下一章
前言 单个实体



学习目标
  • 定义 SGML、HTML 和 XML 的目的


数据管理存在四个核心问题:数据的捕获、存储、检索和交换。本书旨在讨论 **XML**, *一种用于管理数据交换的技术*。本书中的基础 XML 章节采用“数据模型”方法进行构建。第一章向读者介绍了 XML 文档、XML 模式和 XML 样式表,并以单个实体示例进行说明。后续章节将通过多个实体示例以及一对一关系、一对多关系或多对多关系来扩展 XML 基础知识。

XML 是一种用于数据交换的工具。数据交换长期以来一直是信息技术中的一个问题,但互联网提升了其重要性。电子数据交换 (EDI) 是大型组织传统的数据交换标准,正在逐渐被 XML 取代,XML 可能会成为所有组织(无论规模大小)的数据交换标准。

EDI 支持标准商业文档的电子交换,目前是电子商务的主要数据格式。结构化格式用于在贸易伙伴之间交换常见的商业文档(例如,发票和发货单)。与电子邮件的自由格式相反,EDI 支持重复的、例行的业务交易的交换。标准意味着例行的电子交易可以简洁明了。美国和加拿大使用的一种主要标准称为 X.12,主要的国际标准是 UN/EDIFACT。遵守同一标准的公司可以以电子方式共享数据。

互联网是一个全球网络,几乎每家公司都可以访问,通信成本通常低于传统 EDI。因此,互联网已成为贸易伙伴之间首选的电子传输途径。最简单的方法是使用互联网作为传输 EDI 文档的方式。但由于 EDI 是在 20 世纪 60 年代开发的,另一种方法是重新审视数据交换技术。这种重新思考的结果是 XML,但在考虑 XML 之前,我们需要了解 XML 的母体 SGML。

据估计,对于典型的美国公司而言,文档管理会消耗其高达 15% 的收入、近 25% 的劳动力成本以及办公人员 10% 到 60% 的时间。**标准通用标记语言 (SGML)**旨在降低文档管理成本并提高效率。

**标记语言**将有关文档的信息嵌入到文档的文本中。在以下示例中,标记标签指示文本包含城市详细信息。还要注意,城市的名称、州和人口由特定的标签标识。因此,读者(人或计算机)对 *雅典*、*佐治亚州* 或 *100,000* 的含义毫无疑问。还要注意,城市的纬度和位置也用相应的标签明确标识。SGML 的实用性基于记录文本及其含义。

图 1:标记语言

<city> 
       <cityname>Athens</cityname> 
       <state>GA</state>
       <description> Home of the University of Georgia</description>
       <population>100,000</population>
       <location>Located about 60 miles Northeast of Atlanta</location>
       <latitude>33 57' 39" N</latitude>
       <longitude>83 22' 42" W</longitude>
</city>

SGML 是一种与供应商无关的 国际标准ISO 8879),它定义了文档的结构。SGML 于 1986 年作为 元语言 开发,是 HTMLXML 的母体。由于 SGML 文档是标准文本文件,因此 SGML 提供了跨系统可移植性。当技术快速发展时,SGML 为管理数据交换提供了稳定的平台。此外,SGML 文件可以转换为各种媒体以供发布。使用 SGML 可以保留文本信息,而与呈现方式和时间无关。组织可以通过将文档存储在一个独立的标准中并将其转换为任何所需的媒体进行显示,从而获得长期利益。

SGML 在数据管理方面具有三大优势

  • **重用**:信息可以创建一次并重复使用多次。
  • **灵活**:SGML 文档可以以任何格式发布。相同的内容可以打印、在 Web 上呈现或使用文本合成进行传递。由于 SGML 以内容为中心,因此可以延迟呈现决策,直到确定输出格式。
  • **修订**:SGML 支持修订和版本控制。使用内容版本控制,公司可以轻松跟踪文档的变化。

SGML 的一小段代码清楚地展示了 SGML 的特性和优势(见图 2)。围绕文本块的标签描述了其含义,从而支持呈现和检索。例如,围绕“达美”的标签对 <airline> 和 </airline> 标识了执行航班的航空公司。

图 2:SGML 示例

   <flight>
       <airline>Delta</airline>
       <flightno>22</flightno>
       <origin>Atlanta</origin>
       <destination>Paris</destination>
       <departure>5:40pm</departure>
       <arrival>8:10am</arrival>
   </flight>

通过将 样式表 应用于文件,上述 SGML 代码可以以多种方式呈现。例如,它可能显示为

达美航空 22 号航班从亚特兰大飞往巴黎,下午 5:40 出发,上午 8:10 到达

航空公司 航班 出发地 目的地 出发时间 到达时间
达美 22 亚特兰大 巴黎 下午 5:40 上午 8:10


如果数据以 HTML 格式存储并在网站上呈现(如 图 3 所示),则读者必须推断数据的含义。对于人类来说,这通常非常容易,但对于机器来说是不可能的。此外,呈现格式是固定的,只能通过重写 HTML 来更改。如果您不熟悉 HTML,则应在阅读下一章之前阅读 WikiBooks 中关于 XHTML(HTML 的扩展)的章节。

图 3:HTML 渲染示例

    Delta flight 22 flies from Atlanta to Paris leaving 5:40pm and arriving 8:10am

**含义和呈现应相互独立**,这是 SGML 比 HTML 更强大的重要原因。

SGML 是一种定义文档结构的标记语言,因为它可以转换为各种媒体,因此比 HTML 更受欢迎。

许多计算机系统以不兼容的格式存储数据。在这些系统之间交换数据是一项耗时的挑战。XML 是一种通用的数据存储格式,附带许多工具和技术,这些工具和技术应该使在不兼容的系统之间交换特定的 XML “应用程序”变得更容易。由于 XML 是开放且通用的,因此预计随着时间的推移,越来越多的组织和个人将加入 XML 的行列,包括开发人员和数据用户。这应该使 XML 成为某些类型数据交换的最终可行技术。

XML 不仅用于交换信息,还用于发布网页。XML 非常严格的语法允许使用更小、更快的 Web 浏览器,因此非常适合与 个人数字助理 (PDA) 和 手机 一起使用。另一方面,解释 HTML 文档的 Web 浏览器 充斥着编程代码,以弥补 HTML 不那么严格的编码。

通常适合编码为 XML 的数据类型是那些字段长度未知且不可预测,并且字段内容主要为文本的数据类型。

XML 模式 允许以标准化的结构交换信息。模式定义了自定义标记标签,这些标签可以包含属性来描述这些标签所包含的内容。可以使用称为“解析器”的应用程序提取 XML 文档中标记数据的的信息,并且可以使用 XML 样式表将数据格式化为网页。

XML 的强大功能在于自定义标记标签和定义的 XML 文档中的内容的组合。可扩展标记语言 (XML) 的目的是使信息具有自描述性。XML 基于 SGML,旨在支持电子商务。XML 的定义于 1998 年初由 万维网联盟 (W3C) 完成,将其描述为一种元语言——一种生成语言的语言。XML 由于具有一些关键优势,因此应该会逐渐取代许多网站上的 HTML。XML 和 HTML 之间的主要区别在以下表格中体现。

图 4:XML 与 HTML

XML HTML
信息内容 信息呈现
可扩展的标签集 固定的标签集
数据交换语言 数据呈现语言
更强的超文本链接 有限的超文本链接


XML 中的“eXtensible”(可扩展)意味着可以通过定义其结构和标签来创建新的数据交换语言。例如,开放地理空间联盟(OpenGIS Consortium) 设计了一种名为 地理标记语言(GML) 的语言,以促进地理信息的电子交换。类似地,开放旅游联盟(Open Tourism Consortium) 正在努力定义 TourML,以支持旅游信息的交换。保险行业使用与基于 XML 的标准 ACORD 相对应的数据进行电子数据交换。另一个很好的 XML 应用示例是 NewsML™

本文将涵盖 XML 的所有功能,但在此,让我们先介绍几个关键功能。


XML 的应用:

在我们开始学习 XML 文档的结构之前,让我们先指出 XML 可以用于什么。XML 的四大主要实现是

出版:可以使用 XSLT 样式表将数据库内容转换为 XML,然后转换为 HTML。利用此技术,可以生成复杂的网站以及 PDF 文件等印刷媒体。信息不再需要存储在不同的格式中(例如 RTF、DOC、PDF、HTML)。内容可以存储在中立的 XML 格式中,然后使用适当的布局样式表和转换生成手册、网站或数据列表(请参阅 第 17 章)。

XML 和 XSLT 功能的示例可以在 http://www.emimusic.de 找到:该网站包含大约 20,000 个页面,其中包含艺术家、其产品和歌曲标题的简介。这些页面是使用 XSLT 脚本生成的。根据使用的脚本,还可以创建 PDF 格式的目录。请参见下文了解更多详细信息。

交互:XML 可用于交互式访问和更改数据。这种人机通信通常通过 Web 浏览器进行(请参阅 第 12 章)。

集成:使用 XML,可以集成同构和异构应用程序。在这种情况下,XML 用于描述数据、接口和协议。这种机器之间的通信有助于集成 关系数据库(例如,通过导入和导出不同的格式)。

事务:XML 有助于处理在线市场、供应链管理和电子采购系统等应用程序中的事务。

XML 的关键特性

[编辑 | 编辑源代码]
  • 元素同时具有开始标签和结束标签
  • 元素遵循严格的层次结构,文档仅包含一个根元素
  • 元素不能与其他元素重叠
  • 元素名称必须遵守 XML 命名约定
  • XML 区分大小写

XML 将通过多种重要方式提高数据交换效率,包括

  • 一次编写,多次格式化:创建 XML 文件后,可以通过应用不同的 XML 样式表以多种方式呈现。例如,信息可以显示在网页上或打印在书本中。
  • 硬件和软件独立性:XML 文件是标准文本文件,这意味着任何应用程序都可以读取它们。
  • 一次编写,多次交换:一旦某个行业就数据交换达成 XML 标准,数据就可以在使用该标准的所有成员之间轻松交换。
  • 更快、更精确的 Web 搜索:当计算机能够确定信息的含义(通过读取标签)时,Web 搜索将得到增强。例如,如果您正在查找特定书籍的标题,那么对于计算机来说,搜索 标签对之间的文本,比搜索整个文件以查找标题要高效得多。此外,应消除虚假结果。
  • 数据验证 XML 允许使用 XSD 或 DTD 进行数据验证,这是两个交互方之间的一项契约协议。

使用 XML 的 10 个理由

[编辑 | 编辑源代码]
  1. XML 是一种广泛接受的开放标准。
  2. XML 允许将内容与表单(外观)清晰地分离。
  3. XML 是面向文本的。
  4. XML 是可扩展的。
  5. XML 是自描述的。
  6. XML 是通用的;这意味着国际化没有问题。
  7. XML 独立于平台和编程语言。
  8. XML 为信息存储提供了强大且持久的格式。
  9. XML 易于转换。
  10. XML 是一项面向未来的技术。

主要的 XML 元素

[编辑 | 编辑源代码]

主要的 XML 元素是

  • XML 文档:包含 XML 代码的 XML 文件。
  • XML 架构:描述文档结构及其标签的 XML 文件。
  • XML 样式表:包含 XML 文件格式化指令的 XML 文件。

在接下来的几章中,您将学习如何创建和使用 XML 的每个元素。

创建标记文件

[编辑 | 编辑源代码]

任何文本编辑器都可以用来创建标记文件(例如 HTML 文件)。在本手册中,我们使用 NetBeans 中的文本编辑器,NetBeans 是一个开源的 Java 集成开发环境 (IDE),因为它支持 XML 文件的编辑和验证。在继续操作之前,您应该从 http://www.NetBeans.org/ 下载并安装 NetBeans。

本书中的示例使用 NetBeans 来说明正确的 XML 代码。有关 NetBeans 的替代方案,请参阅 Exchanger XML Lite

XML 实施案例研究

[编辑 | 编辑源代码]

联合包裹服务公司 (UPS) 中的 XML

[编辑 | 编辑源代码]

“UPS 是一家服务公司,一切都是关于规模和速度,”UPS eSolutions 部门的项目负责人 Geoff Chalmers 说。2003 年,UPS 的年收入为 335 亿美元,全球员工 357,000 人。在任何一天,美国国内生产总值 (GDP) 的 6% 都在 UPS 系统中。

UPS 广泛使用技术。信息系统部门有 4,000 名员工。该公司的网站有 166 个不同的国家/地区主页,并由 44 个应用程序支持。

UPS 每天交付约 1300 万个包裹,客户可以通过 UPS 网站跟踪这些货物,该网站每天约有 2 亿次点击。ups.com 中的 19 个应用程序是 XML 在线工具(Web 服务)应用程序。

UPS 的在线工具专门开发用于与客户的应用程序集成。这使客户的任务更简单、更容易和更快。UPS 通过“CampusShip”验证了简单性和速度的重要性,该产品是 UPS 在过去 10 年中最成功的产品之一。UPS CampusShip® 是一个基于 Web 的、UPS 托管的运输系统。员工可以使用互联网连接从任何桌面发送自己的包裹和信件,而管理层则对运输活动进行全面控制。UPS CampusShip® 允许组织在运输商自主权和管理成本控制之间同时实现平衡。该产品之所以成功,是因为它不需要安装或软件维护,并且实施起来很快。XML 在线工具使 CampusShip® 的发展变得廉价且快速。

UPS 特别青睐 XML,因为它与平台和语言无关。这些特性使 XML 变得非常灵活和强大。它也是解耦的和可扩展的。XML 使 UPS 能够瞄准更广泛的市场并减少客户互动,从而降低客户服务成本。XML 的另一个优点是它向后兼容。XML 的采用大大降低了 UPS 的维护、实施和使用成本。

但是,这些优势并非没有代价。“XML 在很多方面效率低下,”Chalmers 说。不幸的是,XML 比其他技术消耗更多的 CPU 和带宽。然而,带宽和 CPU 却很便宜,而且每天都在变得更便宜,所以这是一个逐渐消失的问题。

尽管如此,Chalmers 还认为 XML 在数据库中效果不佳。他说它过于冗长,是一种交换媒介,而不是数据库媒介。早期曾尝试将 XML 和数据库紧密集成。由于数据库像 XML 一样为数据提供结构和标识,因此 XML-数据库集成的增值作用仅限于应用层次结构。另一方面,如果数据要存储为 blob,则 XML 很有意义。他指出的另一个关于 XML 的问题是,业务规则无法在 XML 架构中表达。

最后,原始 XML 编程和调试可能具有挑战性。因此,UPS 的企业客户开始探索 .NETBEA 中可找到的代码生成器和嵌入式工具。但是,经验丰富的内部工程师的手工编码对于 UPS 在线工具所需的可用性、可扩展性和性能至关重要。

EMI 音乐中的 XML

[编辑 | 编辑源代码]

它是如何使用的?

EMI Music Germany GmbH & Co. KG,一家著名的德国唱片公司,在其网站上展示了其签约艺术家的信息。访问者可以浏览所有音频或视频作品。整个网站包含近 20,000 个页面,其中包含有关艺术家及其产品(CD、DVD、LP)的信息。所有内容都正确链接并系统地分组。

毕竟,每个艺术家、专辑、样本、图片、描述或商品代码都需要提供数据。该网站每天更新,并且可以在需要时由网页编辑器进行更改。现在,这是一个相当复杂且大量的数据需要处理。

这就是 XML 发挥作用的地方。存储在数据库中的数据已转换为 XML 代码。现在,XSLT 样式表将此数据转换为 HTML 代码,任何 Web 浏览器(例如 Internet Explorer 或 Firefox)都可以轻松读取。

好处是什么?

XML 的优势在于,与其他格式相比,编程工作量大大降低。这是因为 XML 位于 XSLT 和 HTML 的交汇点。

网页编辑器更新网站也没有问题。使用 XML 使负责人员可以轻松处理大量数据。

更进一步… 在 EMI Music 到目前为止生成的 XML 脚本的基础上,该公司可以轻松地生成 PDF 格式的目录或为当前的手机一代设计 i-Mode 页面。借助 XML,这可以轻松完成。

XML 的简史

[编辑 | 编辑源代码]

在 60 年代后期,Charles Goldfarb、Raymond Lorie 和 Edward Mosher 都在 IBM 工作,开始开发 GML(通用标记语言),一种文本格式化语言。该语言已成功应用于内部文档程序。由于过去很常见,文档编辑是在批处理模式下执行的。GenCode 也是一种用于定义各种软件生产商排版系统通用格式化代码的过程,由 GCA(图形通信协会)在同一时间开发。这两种技术,GML 在语法上,GenCode 在语义上,都为 SGML(标准通用标记语言)的开发奠定了基础。标准化过程始于 80 年代初的美国标准化协会 ANSI,1986 年 SGML 最终作为 ISO 标准 ISO2879:1986 通过。

SGML 被认为是一种复杂且全面的语言(规范扩展了 500 页)。然而,HTML(超文本标记语言)的成功证明了 SGML 的概念是合适的。基于 SGML 的 HTML 由蒂姆·伯纳斯-李在 90 年代初在日内瓦开发,用于在互联网上说明和链接文档。同时,HTML 发展成为所有电子文档最成功的格式。互联网最初被设计为人类与人类以及人类与机器之间的通信空间,但最近机器与机器之间的通信变得越来越重要,这对所使用的计算机语言提出了全新的挑战。

HTML 是一种用于文档呈现的描述性语言。主要焦点是呈现,这意味着 HTML 文档将呈现的数据及其格式指令混合在一起。人类可以通过呈现和上下文含义来识别显示的语义;机器或(更确切地说)软件无法识别。

1996 年,在 Jos Bosak 的指导下,一个参加 W3C 联盟的团队成立,旨在使 SGML 适用于 Web。结果是一个 30 页的规范,该规范于 1998 年 2 月获得了“W3C 建议”的地位,并被命名为“可扩展标记语言 (XML)”。

开发 XML 的最重要目标是

  • XML 应与 SGML 兼容
  • XML 应易于在互联网上使用
  • 可选特征的数量应降至最低
  • XML 文档应易于生成且易于人类阅读
  • XML 应得到各种应用程序的支持
  • 编写 XML 程序应很容易
  • XML 应及时付诸实践

在标记语言的术语中,用 XML 编写的描述称为 XML 文档,尽管内容与文本处理无关。

为什么这本书不是 XML 文档?

[编辑 | 编辑源代码]

如果您接受了本章提出的想法,那么这个问题非常恰当。简单的答案是我们无法找到支持在 XML 中创建开放文本书籍的技术。我们需要几部分技术

  • 用于描述书籍的 XML 语言。DocBook 就是这样一种语言,但书籍的结构非常复杂,DocBook(反映了这种复杂性)无法快速掌握
  • 一个使用 DocBook 等语言的 Wiki
  • 一个将 XML 转换为 HTML 以显示书籍内容的 XML 样式表

有一个创建WikiMl(Wiki 标记语言)的项目,这可能会在某个时候使用。

参考文献

[编辑 | 编辑源代码]

发起作者 Richard T. Watson,佐治亚大学

华夏公益教科书