XML 变得越来越强大,得到了迅速的发展。它已经证明自己是一种非常有价值的技术,但可能也是一种令人害怕的技术,如果考虑到挂在“XML”一词下面不断变化的各个部分。在这一组文章中,我将简述我认为最重要的 XML 技术,讨论它们如何在 XML 世界中更大的范围内彼此融合。为了进一步研究和学习以使用各种技术,我还推荐了一些教程和其他有用的参考资料。
这里介绍的所有技术都是 标准,尽管这个词本身就有点捉摸不定。标准有各种各样的形式,而且在同一个领域中常常有多种标准互相竞争。我按照实践的方法把标准定义为:被不同的供应商大量采用的或者有影响的、独立于供应商的组织推荐的规范。
在 本系列的第一篇文章中主要讨论了核心 XML 技术。(关于各种标准开发团体的概述以及标准的分类,请参阅 那篇文章中的侧栏。) 第二篇文章中探讨了和开发人员处理 XML 有关的标准。在 第三篇文章中介绍了一组挑选的最重要的 XML 应用(也称为词汇表,虽然不那么精确)。这是本系列的最后一篇,将提供关于涉及到的所有标准的交叉引用。我认为这个总结涵盖了所有最重要的 XML 标准。
交叉引用采用表格的形式,其中的每一行都代表一个标准,按照字母顺序排列。每一行都用不同的颜色,标明该标准主要在那一篇文章中涉及:
|
| 黄色行与核心 XML 标准,即 第 1 部分有关 | |
|
| 绿色行与 XML 处理标准,即 第 2 部分有关 | |
|
| 蓝色行与 XML 应用,即 第 3 部分有关 |
第一列中的链接指向相关的主页或者规范,第二列给出简要的说明。第三列指出开发或者维护该标准的组织或社团,有一些是“社区”,表示来自小型组织或者特殊兴趣小组。第四列是交叉引用,给出讨论该标准的主要文章和文中的其他标准。最后一列是推荐的相关介绍、教程、文章、参考资料、综合信息站点等等的外部链接。
| 标准 | 摘要 | 管理机构 | 交叉引用 | 参考资料 |
| Canonical XML ("c14n") | 生成 XML 文档物理表示――称为规范形示――的标准方法,解决在不改变含义的情况下 XML 语法所允许的变化。 | W3C | ||
| Cascading Style Sheets (CSS) | 向标记应用表示样式的系统。最知名的是在样式化 HTML 网页中的应用,但特别是从 CSS Level 2 发布以来,也非常适于在 Web 和其他媒介上表示 XML 文档。 | W3C |
| |
| Document Object Model (DOM) | XML 文档的对象模型,可用于直接访问 XML 文档的各个部分。在 DOM 中,文档被模型化为一棵树,XML 语法中的每个成分(如元素或文本内容)都用一个节点表示。 | W3C |
| |
| Docbook | 编纂书籍和文档,尤其是较多技术特性的数据和文档的 XML(和 SGML)应用。 | OASIS |
|
|
| EXSLT | 一组 XSLT 扩展,元素和函数使用隐藏实现的方式定义,涉及到最常用的扩展,如日期处理、正则表达式和算术运算。 | 社区 |
|
|
| Mathematical Markup Language (MathML) 2.0 | 表达数学和科学内容的 XML 应用。 | W3C |
| |
| Namespaces in XML | 统一命名 XML 文档中元素和属性的机制。 | W3C |
| |
| Resource Description Framework (RDF) | 关于 Web 资源的形式化陈述的描述集合模型。用于 Web 的一种元数据系统。 | W3C |
| |
| Resource Directory Description Language (RDDL) | 打包关于名称空间信息的基于 XHTML 的格式。 | 社区 |
| |
| RELAX NG | 基于文法的 XML 模式语言,用于定义和限制 XML 词汇表。 | OASIS |
| |
| Schematron | 基于规则的 XML 模式语言――用于定义和限制 XML 词汇表。 | 社区 |
| |
| Simple API for XML (SAX) | 事件驱动的 XML API,定义了一个事件流,解析器把指定的 XML 结构传递给专门的处理程序代码。 | 社区 |
| |
| SOAP | 利用底层 Internet 协议在互联的系统之间使用 XML 通信的协议。 | W3C |
| |
| SQL/XML | SQL 数据库查询语言与 XML 有关的扩展。 | ISO |
| |
| Scalable Vector Graphics (SVG) 1.1 | 描述二维向量图形的应用。 | W3C |
|
|
| Synchronized Multimedia Integration Language (SMIL 2.0) | 简单编辑丰富媒体或者多媒体(音频/视频)表示的应用。 | W3C |
| |
| Stylesheet Associations | 把 XML 文档链接到样式表的标准方式,特别是 XSLT 和 CSS。 | W3C |
| ? |
| Text Encoding Initiative (TEI) | 编辑文本的 XML(和 SGML)应用,尤其适用于人文学科。 | 社区 |
| |
| Uniform Resource Identifiers (URIs) | 在 Web 浏览器或者类似工具中使用的类似 URL 的扩展。所有的 URL 都是 URI,但是 URI 增加了 Uniform Resource Names (URNs),这是一种按名称而非位置标识 Web 资源的方式。 | IETF |
| |
| Unicode | 在 XML 文档中表示链接的一般框架,完成它在超文本系统如 Web 中的放置。 | ISO |
| |
| Voice Extensible Markup Language (VoiceXML) | 创建音频、语音和电话应用程序的 XML 应用。 | W3C |
| |
| W3C XML Schema (WXS) | 基于文法的 XML 模式语言――用于定义和限制 XML 词汇表。 | W3C |
| |
| XML Database API (XAPI) | 用于 XML 数据库的 API,包括 XML 数据库中数据的存储、检索、修改和查询。 | 社区 |
| ? |
| XForms 1.0 | 用于 XML 数据处理的 Web 表单规范,用途和表示的分离,通过不同的媒介用于各种不同的平台。 | W3C |
|
|
| XHTML 1.0 | 在 HTML 的基础上但采用格式良好的 XML 的 Web 表示语言,鼓励在开发过程中分离内容与表示。 | W3C |
| |
| XML Inclusions (XInclude) 1.0 | 合并 XML 文档的系统,与内置的 XML 外部实体类似,但增加了一些特性。 | W3C |
| |
| XML Linking Language (XLink) 1.0 | 在 XML 文档中表示链接的一般框架,完成它在超文本系统如 Web 中的放置。 | W3C |
| |
| XML | 基于 SGML 的标记语言,包括严格的语法规则和一种用于定义结构约束的语言――文档类型定义(DTD)。 | W3C |
| |
| XML Catalogs | XML 处理程序如何把实体标识符解析成实际数据的指示。 | OASIS |
| |
| XML Base | 联系 XML 元素与 URI 的方式,以便更准确地指定在相关的 XML 处理动作中如何解析相对 URI。 | W3C |
| |
| XML Information Set (Infoset) | 把 XML 文档描述成一系列对象(称为信息项)的抽象方式,通过专门的属性结合 XML 文档定义在 XML 1.0、XML Namespaces 和 XML Base 的各个方面。 | W3C | ||
| XML Remote Procedure Calls (XML-RPC) | 使用 XML 在 HTTP 上通信的非常简单的协议。 | 社区 |
| |
| XML Path Language (XPath) 1.0 | 定位 XML 文档部分的语法和数据模型,包括通用表达式语言的一些特性。 | W3C |
| |
| XML Topic Maps (XTM) | 使用一种基于 XLink 的 XML 语法组织信息的类似图的模型。 | ISO |
| |
| XPointer Framework | 引用 XML 文档片段的语言。 | W3C |
| |
| XQuery 1.0: An XML Query Language | 查询 XML 数据源――文档和数据库――的规范。 | W3C |
| |
| Extensible Stylesheet Language Formatting Objects (XSL-FO) | 用于表示的 XML 应用,可以被任何用户代理用于按照开发人员指定的精确规范呈现内容。 | W3C |
| |
| Extensible Stylesheet Language Transformations (XSLT) 1.0 | 描述从输入 XML 文档到输出树(XML、HTML 或者文本)的转换的语言,用于复杂的 XML 文档表示或者从一种 XML 格式转化成另一种格式。 | W3C |
| |
| XUpdate | 修改 XML 文档的说明语言。 | 社区 |
|
在撰写本系列文章的过程中,在有限的空间中讨论哪些内容经历了困难的选择。有些信息实在不能包括进来。在各种不同的目标中,我把重点放在最流行采用也最广泛的标准上。再强调一次,如果熟悉了 XML 技术的基础知识,如何找到适合于自己特殊需要的标准,就完全取决您自己了。IBM developerWorks XML 专区总能为您提供关于 XML 规范广阔领域的资源。
- 您可以参阅本文在 developerWorks 全球站点上的
英文原文.
-
如果希望就 XML 获得坚实的基础,请阅读 Elliotte Rusty Harold 的
The
XML Bible, 2nd Edition
(John Wiley & Sons, 2001),前提是您愿意买下这本书。关于
XSLT、XSL-FO、XLink、XPointer 和 WXS 这五章可以免费从网上获得。
- 访问开发 XML 标准的最重要组织的网站:
- W3C (万维网联盟)
- OASIS (结构化信息标准推进组织)
- ISO (国际标准化组织),尤其是它的项目 ISO/IEC 19757 - Document Schema Definition Languages (文档模式定义语言,DSDL)
- Simon St. Laurent 的“
Outsider's Guide to the W3C”是一个 FAQ,它对 HTML 和 XML 的组织进行了多方面的介绍。
- Robin Cover 的
The Cover Pages基本上涉及到了 XML 的每个方面,这是一个令人瞠目的、包罗万象的 XML 资源指南。
- 访问
xmlhack,XML 开发人员的新闻站点,它由 Uche Ogbuji 帮助编辑。
- 阅读本系列文章的
第一篇,主要包括 Uche Ogbuji 认为是核心的 XML 技术(
developerWorks,2004 年 1 月)。本系列的
第二篇中,作者重点讨论了 XML 处理技术。(
developerWorks,2004 年 2 月)。本系列的
第 3 部分考察了最重要的 XMl 词汇表(
developerWorks,2004 年 2 月)。
- 在
developerWorks
XML 专区
可以找到更多的 XML 资源,包括 Uche Ogbuji 的
Thinking XML专栏
。
- 在
developerWorks
Developer Bookstore上可以找到大量与 XML 有关的书籍。
- 了解如何才能成为一名
IBM 认证的 XML 及相关技术的开发人员。

Uche Ogbuji 是 Fourthought Inc.的顾问兼创始人,该公司是专为企业知识管理提供 XML 解决方案的软件供应商和咨询公司。 Fourthought 开发了 4Suite,这是一个用于 XML、RDF 和知识管理应用程序的开放源代码平台。Ogbuji 先生是 VersaRDF 查询语言的首席开发人员。他是一位出生于尼日利亚的计算机工程师和作家,在美国科罗拉多的博耳德生活和工作。可以通过 uche.ogbuji@fourthought.com和 Ogbuji 先生联系。