分享

XML 入门

 googo 2011-07-15

要了解 XML,因为它有助于理解标记数据这个概念。人们创建文档的历史已经很久了,而人们对文档进行标记的历史也一样悠久。例如,学校老师总是要对学生的作业进 行标记。告诉学生改变段落顺序、对语句进行润色、纠正拼写错误等等。对文档进行标记是我们定义文档中的信息的结构、含义和外观的一种方式。如果您使用过 Microsoft Office Word 中的“修订”功能,则一定使用过计算机形式的标记。

在计算机术语中,“mark up”已经逐渐演变为“markup”。标记 (markup) 是使用称为标记(tag,有时为 token)的代码来定义任何数据的结构、外观以及含义(在  XML  语言中)的过程。

本文中的 HTML 代码就是计算机标记的一个很好的应用示例。如果浏览代码(在 Microsoft Internet Explorer 中,右键单击页面,然后单击“查看源文件”),您就会发现其中混有可读文本和超文本标记语言 (HTML) 标记(如 <p><h2>)。HTML 和 XML 文档中的标记很容易识别,因为这些标记都用尖括号括起。在本文的源代码中,可用 HTML 标记执行许多操作,例如,定义每个段落的开头和结尾 (<p> ... </p>) 以及标记每幅图像的位置。

返回页首 返回页首

HTML 和 XML 文档包含的数据均位于标记中,但标记也是这两种语言之间不同的地方。在 HTML 中,标记定义数据的外观(标题位置,段落起始位置等)。在 XML 中,标记定义数据的结构和含义(什么是数据)。  

在描述数据的结构和含义时,可通过各种方式重复使用数据。例如,如果有一个销售数据块,并且数据块中每个项目都明确地区分开来,您可以只将需要的项 目加载到销售报表中,而将其他项目加载到财务数据库中。换言之,您可以使用一个系统生成数据并使用 XML 标记来标记该数据,然后可以在任意数量的其他系统中处理该数据,而不用考虑硬件平台或操作系统。可移植性使得 XML 成为一种用来交换数据的最受欢迎的技术。

操作时请牢记下列事项:

  • 无法使用 HTML 代替 XML。但是,您可以在 HTML 标记中使 XML 数据换行从而将其显示在网页上。
  • HTML 仅限于一组预定义的由所有用户共享的标记。
  • XML 允许您创建任何所需标记,以描述数据及数据结构。例如,假设需要存储并共享关于宠物的信息。您可以创建以下 XML 代码:

<?xml version="1.0"?>
<CAT>
<NAME>Izzy</NAME>
<BREED>Siamese</BREED>
<AGE>6</AGE>
<ALTERED>yes</ALTERED>
<DECLAWED>no</DECLAWED>
<LICENSE>Izz138bod</LICENSE>
<OWNER>Colin Wilcox</OWNER>
</CAT>

可以看到,使用 XML 标记可以明确地标明所查看的数据属于何种类型。例如,您可以了解到以上数据是关于一只猫的,并且可以很容易地找到这只猫的名字、年龄等信息。XML 能够创建定义几乎所有数据结构的标记,因此是“可扩展”的。

但是,请不要将该代码示例中的标记与 HTML 文件中的标记混淆。例如,如果您将该 XML 结构粘贴到一个 HTML 文件中,然后在浏览器中查看该文件,结果会如下所示:

Izzy Siamese 6 yes no Izz138bod Colin Wilcox

浏览器将忽略 XML 标记,而只显示数据。

返回页首 返回页首

介绍格式标准的数据

您可能听 IT 部门的人员说过“标准格式”的 XML。标准格式的 XML 文件遵循一组管理 XML 的、非常严格的规则。如果文件不遵循这些规则,XML 就会停止运行。例如,在上面的代码示例中,每一个开始标记都有对应的结束标记,因此该示例遵循一种标准格式的规则。如果您删除一个标记,然后尝试在一个 Office 程序中打开该文件,您将会看到一条错误消息,并且该程序会阻止您使用该文件。

您不必了解创建标准格式 XML 的规则(虽然理解这些规则很容易),但确实需要记住:只有在 XML 数据采用了标准格式的情况下,才可以在程序和系统之间共享该数据。如果某个 XML 文件无法打开,则该文件很可能不是标准格式的。

XML 还不受平台的限制,这意味着,无论硬件或操作系统是什么,为使用 XML 而构建的任何程序都可以读取和处理 XML 数据。例如,利用正确的 XML 标记,就可以使用桌面程序打开和处理大型机中的数据。另外,无论是谁创建了 XML 数据体,您都可以通过若干 Microsoft Office 2003 和 Microsoft Office Professional 2007 程序(包括 Microsoft Office Access 2007、Microsoft Office Word 2007 、Microsoft Office InfoPath 2007 和 Microsoft Office Excel 2007)处理相同的数据。由于 XML 具有可移植性,它已成为用于在数据库和用户桌面之间交换数据的最受欢迎的技术之一。

供其他程序使用的 xml

除了使用标准格式的标记数据之外,XML 系统通常还使用其他两种组件:架构和转换。以下部分将介绍这两种组件的工作方式。

返回页首 返回页首

架构简介

不必对术语“架构”望而生畏。架构只不过是一种包含某些规则的 XML 文件,这些规则用来定义 XML 数据文件中能包含哪些内容,不能包含哪些内容。架构文件通常使用 .xsd 文件扩展名,而 XML 数据文件使用 .xml 扩展名。

程序可以使用架构来验证数据。架构为数据提供了结构框架,可以帮助创建者和任何其他用户理解数据。例如,如果用户输入无效数据(例如,在日期字段中 输入文本),程序就会提示用户输入正确的数据。只要 XML 文件中的数据遵循给定架构中的规则,任何支持 XML 的程序都可以使用该架构读取、解释和处理这些数据。例如,如下图所示,Excel 和 Word 都可以根据 CAT 架构来验证 <CAT> 数据。

利用架构,应用程序可以共享 xml 数据。

架构可能非常复杂,教您怎样创建架构并不属于本文的范畴。(另外,IT 部门人员应该知道如何创建架构。)不过,了解架构的外观还是有用的。下面的架构定义了 <CAT> ... </CAT> 标记集的规则。


<xsd:element name="CAT">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NAME" type="xsd:string"/>
<xsd:element name="BREED" type="xsd:string"/>
<xsd:element name="AGE" type="xsd:positiveInteger"/>
<xsd:element name="ALTERED" type="xsd:boolean"/>
<xsd:element name="DECLAWED" type="xsd:boolean"/>
<xsd:element name="LICENSE" type="xsd:string"/>
<xsd:element name="OWNER" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

如果不理解上面示例中的内容,不必担心。只需要记住以下事项:

  • 示例架构中的行项目被称为“声明”。如果需要有关宠物的其他信息(例如其颜色或斑纹),IT 部门可能需要向架构中添加声明。您可以根据业务需求的变化来更改 XML 系统。
  • 声明对数据结构具有较强的控制能力。例如,<xsd:sequence> 声明表示 <NAME><BREED> 等标记必须按照上面列出的顺序显示。声明也可以控制用户输入的数据类型。例如,上面的架构要求猫的年龄必须为正数,而对于 ALTERED 和 DECLAWED 标记则必须为布尔值(TRUE 或 FALSE)。
  • 当 XML 文件中的数据遵循架构所提供的规则时,数据就是有效数据。根据架构检查 XML 数据文件的过程称为“验证”(逻辑意义上)。架构的突出优点是可以帮助防止数据损坏。使用架构也可以很容易地发现损坏的数据,因为 XML 遇到问题时将会停止运行。

返回页首 返回页首

转换简介

如前所述,XML 还可以提供使用或重复使用数据的强大功能。重复利用数据的机制称为可扩展样式表语言转换 (XSLT),或简称为转换。转换是 XML 的真正优点所在。例如,在根据架构验证数据文件之后,您可以应用一种转换使数据在 Microsoft Office Word 2003 中以市场宣传册的形式出现,然后应用另一种转换在 Office Excel 2007 中创建销售报表。

您(或您的 IT 部门)还可以使用转换在数据库等后端系统之间交换数据。例如,假设数据库 A 在适用于销售部门的表结构中存储销售数据。数据库 B 在适用于财务部门的表结构中存储收入和支出数据。数据库 B 可以通过转换接受 A 中的数据,并将该数据写至正确的表中。

数据文件、架构和转换组成基本的 XML 系统。下图显示了这种系统通常是如何工作的。数据文件先根据架构进行验证,然后通过转换以任意可用方式呈现。在本例中,转换向网页中的表部署数据。

使用架构和转换的基本 xml 文件结构

下面的代码示例显示编写转换的一种方法。它将 <CAT> 数据加载到网页上的表中。再次声明一下,这里的示例并不是教您如何编写转换,而是向您展示一种转换形式。


<?xml version="1.0"?>
<xsl:stylesheet version="1.0">
<TABLE>
<TR>
<TH>Name</TH>
<TH>Breed</TH>
<TH>Age</TH>
<TH>Altered</TH>
<TH>Declawed</TH>
<TH>License</TH>
<TH>Owner</TH>
</TR>
<xsl:for-each select="CAT">
<TR ALIGN="LEFT" VALIGN="TOP">
<TD>
<xsl:value-of select="NAME"/>
</TD>
<TD>
<xsl:value-of select="BREED"/>
</TD>
<TD>
<xsl:value-of select="AGE"/>
</TD>
<TD>
<xsl:value-of select="ALTERED"/>
</TD>
<TD>
<xsl:value-of select="DECLAWED"/>
</TD>
<TD>
<xsl:value-of select="LICENSE"/>
</TD>
<TD>
<xsl:value-of select="OWNER"/>
</TD>
</TR>
</xsl:for-each>
</TABLE>

此示例显示一种转换类型的编码形式,但是请记住,您只能用简单的英文描述您想要从数据中获得什么。例如,您可以对 IT 部门说您需要打印特定区域过去两年的销售数据,并指出“我希望数据的外观是这样的”。这样,IT 部门就可以编写(或更改)一个可执行该任务的转换。

使所有此类工作更为方便的是:Microsoft 和日益增多的其他供应商正创建应用于各种任务的转换。不久的将来,您可以下载符合需要的转换,也可以调整转换以满足需要。这意味着,XML 的使用成本将随时间的推移而逐渐降低。

返回页首 返回页首

Microsoft Office System 中的 XML 简介

Microsoft Office 2003 和 2007 Office 版本的专业版都提供强大的 XML 支持。

  • Office Excel 2007、Office Word 2007 和 Office PowerPoint 2007 都使用 XML 作为默认文件格式,此更改具有多种优点。
    • 较小的文件大小。与 Office 早期版本中使用的二进制格式相比,新格式使用 ZIP 和其他压缩技术使文件大小减少 75%。
    • 简化了信息恢复过程并具有更强的安全性。XML 是用户可读的,因此如果文件已损坏,您可以在 Microsoft 记事本或其他文本阅读器中打开该文件,然后至少可以恢复一些信息。另外,新文件会更安全,因为它们不能包含 Visual Basic for Applications (VBA) 代码。如果您使用新格式创建模板,则所有 ActiveX 控件和 VBA 宏都驻留在文件中的单独且更安全的部分中。另外,您还可以使用文档检查器等工具删除所有个人数据。有关使用文档检查器的详细信息,请参阅从 Office 文档中删除隐藏数据和个人信息一文。
    • 更强的可移植性和灵活性。由于 XML 以文本格式而不是专用的二进制格式存储数据,因此客户可以定义他们自己的架构并以多种方式使用您的数据而无须支付版税。有关新格式的详细信息,请参阅开放式 XML 文件格式简介
  • 每个 Office 程序都附带不同的工具集。您在 Word 中使用的用户界面和过程与您在 Excel 或 PowerPoint 中使用的用户界面和过程不同。这是为什么?因为适用于 Word 的功能不一定适用于 Excel,等等。
  • 只要 XML 是标准格式的,Office 程序就可以使用其他供应商的架构、转换和数据。
  • 某些 Office 程序在后台使用 XML,而某些程序(如 Microsoft Office OneNote?)根本不支持 XML。了解 Office 程序如何支持 XML 的最好方法是启动相应程序的联机帮助,并搜索 XML

目前为止没什么问题,但是,如果 XML 数据没有架构会怎么样呢?支持 XML 的 Office 程序有办法帮助您处理数据。例如,如果您在 Word 中打开没有附加架构的 XML 文件,Word 将同时显示标记和数据,并允许您在文件创建者或 IT 部门提供转换的情况下应用转换。至少,您可以查看文件中的标记和数据。

相反,如果您打开没有架构的 XML 文件,Excel 将自行推断架构,随后会允许您选择将此数据加载到只读文件中,或将数据映射到 XML 列表(在 Microsoft Office Excel 2003 中)或 XML 表(在 Office Excel 2007 中)中。您可以使用 XML 列表和表对数据进行排序、筛选或计算。

Office Professional 2007 和 Microsoft Office 2003 都提供相同的 XML 工具集。在 Office Professional 2007 中,必须先启用 XML 支持,然后从不同的位置启动这些工具。不过,在启动这些工具后,它们在 Microsoft Office 2003 和 Office Professional 2007 中的工作方式相同。以下步骤介绍如何启动 Office Excel 2007 和 Office Word 2007 的 XML 工具。

 注释   Microsoft Office Access 2007 在默认情况下会启用其 XML 工具,因此如果您使用的是 Access,则可以跳过前面的步骤。

启用 Office Excel 2007 和 Office Word 2007 中的 XML 工具

  1. ExcelWord 中,单击“Office 按钮”按钮图像 ,然后单击“Excel 选项”“Word 选项”,具体取决于所打开的程序。
  2. 单击“个性化”
  3. “使用应用程序名称 时采用的首选项”下,选择“在功能区显示‘开发工具’选项卡”,然后单击“确定”

 注释   功能区是 Microsoft Office Fluent 用户界面的一部分

启动 Office Excel 2007 和 Office Word 2007 中的 XML 工具

  • 无论在哪个程序中,请在“开发工具”选项卡上单击“XML”组中的任何可用命令。

启动 Office Access 2007 中的 XML 工具

  1. 单击“外部数据”选项卡。
  2. 请执行下列操作之一:
    • “导入”组中,单击“XML 文件”
    • “导出”组中,单击“更多”,然后单击“XML 文件”


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多