现在的位置: 首页 > 综合 > 正文

XML 新手入门

2014年01月18日 ⁄ 综合 ⁄ 共 5230字 ⁄ 字号 评论关闭
什么是 XML?
XML 的用途
平台无关的配置和部署指令
XML 可用于应用程序开发吗?
转换 XML 数据(XSLT)
可以在我熟悉的编程语言中使用 XML 吗?
有现成的 XML 词汇和应用程序吗?
XML 与 Web 服务和 SOA 有何关联?
XML 在未来所扮演的角色
改进 XML 技能的最佳方式
结束语




需要 XML 入门帮助吗?developerWorks 网站 XML 专区包含各种文章、教程和技巧,能帮助开发人员进行基于 XML 的开发。对于试图在新领域找寻方向的用户而言,所有这些信息都是极具价值和吸引力的。本文为有心学习 XML 却不知从何处下手的用户提供了一个大纲。不论您是想要理解 XML 的本质,探究 Ajax、Mashup 或 RSS,还是准备 XML 认证,本文都可以帮助您找到方向并开始征程。

什么是 XML?

XML 即可扩展标记语言(Extensible Markup Language),是一种平台无关的表示数据的方法。简单地说,使用 XML 创建的数据可以被任何应用程序在任何平台上读取。甚至可以通过手动编码来编辑和创建 XML 文档。其原因是,XML 与 HTML 一样,都是建立在相同的基于标记技术基础之上。

一个示例

比如说,假设我们想要使用 XML 存储关于某个事务的信息。这个事务是由销售人员的 iBook 发起的,因此您想把信息存储在 iBook 中。但是,信息稍后会发送给 Windows 服务器上的数据应用程序,并且最终保存在您的主机中,因此这需要极佳的灵活性才能完成。使用 XML 创建的数据内容如清单 1 所示。

清单 1. XML 示例

                
<?xml version="1.0"?>
<transaction ID="THX1138">
   <salesperson>bluemax</salesperson>
   <order>
      <product productNumber="3263827">
         <quantity>1</quantity>
         <unitprice currency="standard">3000000</unitprice>
         <description>Medium Trash Compactor</description>
      </product>
   </order>
   <return></return>
</transaction>

XML 将信息串行化并作为文本存储,这样数据便可以在任何可能需要的环境中使用。甚至不需使用特殊的应用程序,我们便可以看到内容(粗体显示)和标记(用于描述内容)。

继续学习

XML 的使用相当简单方便,当然前提是要理解 XML 的结构。XML 还提供了一些不同的方法,使用这些方法可以对数据的结构(甚至内容)进行控制。开始使用 XML 之后,您还会困扰于设计 XML 结构的最佳方式,不过这算不上复杂的过程。

新手上路,请阅读下列文章:

XML 的灵活性意指可用于许多应用程序,比如说配置文件、Web 服务、数据存储等等。



回页首


XML 的用途

从接触 XML 开始,开发人员就已经发现 XML 的用途多种多样。下面列出的文章能让您对 XML 的使用方法有所了解。

存储数据

显而易见,XML 可用于存储数据。在以数据为中心的信息(比如在某个数据库查找到的数据)和以文档的中心的信息(比如将数据存储在 XML 中,以便在不同的环境中显示出来)这两个方面,XML 都有自己的优势。

阅读下列文章了解更多有关 XML 作为以数据为中心的存储介质的知识。

如果对存储 XML 数据感兴趣,您应该知道 IBM 发布了一款 DB2 9 免费版本,IBM DB2 Express-C 9。您也应该查阅最新的 DB2 Developer Workbench,通过阅读以下系列教程可以使在 DB2 9 中使用 XQuery 和 SQL/XML 变得更加容易。

这份系列文章共分三部分,其中第一篇教程展示了如何使用 XML 一般地存储以文档为中心的数据,以及如何操纵其表示层:

Web 服务

Web 服务最初用于在 HTTP 上传递非 HTML 信息。它们如今已成为通过 Ajax 获取字段的基础,用于向 Web 站点、如今的面向服务体系结构(Service Oriented Architecture,SOA)和复杂的基于消息的应用程序添加交互性。XML 是 Web 服务领域不可或缺的一部分。Web 服务中的所有主流方法,如 SOAP、REST 甚至 XML-RPC,都是基于 XML 的。

要了解 XML 在 Web 服务领域中的应用,请阅读下列文章:

请参阅下面的 XML 与 Web 服务 部分获得更多信息。

播客和其他数据联合

如今,XML 最普遍的应用是数据联合领域。数百万的 blogger 都在使用 RSS 提要订阅他们所喜爱的博客上的最新信息。而且商业利益已经发现通过英特网向各种设备(如 iPod,它也使用 XML)发布音频和视频的商机了。

要了解数据联合,请阅读如下文章:



回页首


平台无关的配置和部署指令

在您所喜爱的应用程序和开发环境的幕后经常都有 XML 存在,它是创建配置或指令文件的通用方法。在人类可读的 XML 文件中提供配置指令能让用户比以前更加方便地控制应用程序的行为。

以下文章介绍了使用 XML 创建配置文件的示例:



回页首


XML 可用于应用程序开发吗?

清单 1 中的标记是最常见的 XML 串行表示,不过在应用程序的上下文中处理 XML 数据也是非常普遍的。在这种情况下,我们通常需要使用到一些模型,其中包括下面所列出的这些。

文档对象模型(Document Object Model,DOM)

文档对象模型(DOM)是一个基于对象的,以树形查看 XML 数据的方法。例如,在 清单 1 中,salesperson、order 和 return 元素都是 transaction 元素的子元素,也就是说它们在层次结构中位于 transaction 的下方。大多数基于 XML 的应用程序在处理 XML 时使用的都是 DOM 方法。

要了解 DOM 请阅读下列文章和教程:

Simple API for XML(SAX)

由于任何内容都要存放在内存中,所以 DOM 对于操纵数据而言是非常有用的。不过另一方面,其资源占用自然也相应地比较大了。

Simple API for XML(SAX)解决了在内存中同时存放所有内容的问题。SAX 自始至终一直在分析数据,并将所有的事件通知给应用程序,比如 “起始元素” 或 “字符”。SAX 在资源友好方面要胜过 DOM 一筹,但是其操纵数据的方法却不尽相同。

要了解 SAX,请阅读下列文章:

DOM 和 SAX 是通过编程手段与 XML 交互的最常见方法,但是有时也可以不通过构建应用程序来操纵 XML 数据。



回页首


转换 XML 数据(XSLT)

有时,甚至无需编程也可以操纵 XML 数据。可以使用可扩展样式表转换语言(EXtensible Stylesheet Language Transformation,XSLT)来操纵 XML 数据。XSLT 让我们能将 XML 文档转换为不同 XML 结构的文档,甚至还可以转换为非 XML 文档。XSLT 功能极为强大,并且应用广泛。



回页首


可以在我熟悉的编程语言中使用 XML 吗?

XML 是与平台和编程语言无关的,因此我们可以在基本上任何编程语言中使用它,只要底层软件(比如说解析程序,它读取标记的文本文件并为数据操纵创建 XML 文档)可用就没有问题。要了解如何在各种不同的编程语言中使用 XML,请阅读下列文章:

Java

Java 中直接内置了 XML 解析和一些其他功能。

PHP

PHP 对 XML 的支持一开始并不顺利;其早期实现并未完全与 DOM 规范同步。不过,目前的情形已经好了很多,PHP 提供支持更类似标准的支持。

Perl

Perl 旨在操作文本,因此有时更倾向直接操作文本而不是使用 XML 方法,但是使用 XML 的优势是显而易见的。

Python

结合 Python 的易用性和 XML 对跨平台可用性的注重,这两者真是天生的一对。

C++

C++ 程序员同样可以利用 XML 的各种功能。

Ruby

REXML 库使 Ruby 编程语言能支持 XML。

JavaScript

JavaScript 对 XML 的支持类似于 Java,至少在比较基本的操作方面非常相似。



回页首


有现成的 XML 词汇和应用程序吗?

随着开发人开始在各种应用程序中使用 XML,一些标准词汇或 XML 应用程序也开始涌现出来。例如,XHTML 就是一种 XML 版本的 HTML,播客中也正在使用一种叫做 RSS 的 XML 词汇。可缩放矢量图型(Scalable Vector Graphics,SVG)语言提供了一种使用 XML 定义图形图象的方法,使一些浏览器(如 Firefox)可以呈现它们。

下面讨论了一些正在应用中的 XML 示例。

RSS 和联合

博客经常会提供一些外部提要,用于显示最近发表的文章并能提供返回原始资料的链接。这些提要已经转变成为巨大的商机,广告商纷至沓来,音频和/或视频或播客 的发布正在成为一些大型传媒公司(比如广播电视网 [broadcast television network])关注的焦点。这些提要都是 XML 形式的,或者是 RSS 或 Atom 的某种变体。

可缩矢量图形(Scalable Vector Graphics,SVG)

图形之如 SVG,就如桌面发布之如 HTML。SVG 提供了一种使用小的、简单的文本指令指定图形的方法。使用 SVG 创建的复杂图形,不仅带宽占用小而且可以通过编程进行控制。

XForms

可以把视为 XFoms 下一代的 HTML 表单,它可以指定以表示无关的方式采集信息。这种方式使我们能更加方便地添加更多功能,也使得在其他介质(比如手机)中重用表单更加轻松,这些介质中的信息相同不过表示可能完全不同。

更多 XML 应用

应用 XML 的地方可以说是不胜枚举,比如说发布、编码语义数据,甚至那些电话中的语音识别单元也使用了 XML。下面列出了一些例子:



抱歉!评论已关闭.