本文讨论使用“可扩展的标记语言 (XML)”作为数据的标准格式。它概述了 XML 是什么、它产生的原因以及为什么它对表示和交换数据来说是极有价值和益处的技术。
为什么使用 XML?
Web 使我们能够与任何地方的任何人通讯。广泛接受的标准(这对完全使用 Web 的潜力是至关重要的)允许 Web 在多种交互操作的技术层上通讯。一个重要层是可视化显示和用户界面,例如 HTML、GIF 和 JScript(TM) 之类的现有标准。这些标准允许创建一次页面,并且在不同时间向众多接收者显示。
尽管可视化和用户界面标准是必要层,但它们并不足以表示和管理数据。当前,Internet 只是文本和图片的访问媒体。并没有智能搜索、数据交换、自适应表示和个人化的标准。Internet 必须超出设置信息访问和显示标准的限制。Internet 必须设置信息理解标准(表示数据的通用方式),以便软件能够更好地搜索、移动、显示和处理上下文中隐藏的信息。由于 HTML 是一种描述如何表示 Web 页的格式,所以 HTML 并不能完成以上处理;HTML 并不表示数据。例如,HTML 不能:
- 向医生提供将处方发送到药剂师的标准方式。
- 允许医药实验室以所有接收者均能分析的格式发表统计信息。
- 以所有接受者均能解码和处理的表格描述电子支付。
- 提供搜索法律图书馆中有关某一主题的所有诉讼文档的标准方式。
- 指定以何种方式传送公司目录中的信息,以便销售人员可以脱机工作、向客户显示目录、接受定单并以标准格式上载这些定单。
简而言之,尽管 HTML 提供了用于显示的丰富工具,但 HTML 并没有提供任何基于标准的管理数据的方式。
正如数年前用于显示的 HTML 标准扩展了 Internet 一样,数据显示标准亦将扩展 Internet。 数据标准将是商业交易、公布个人喜爱的配置文件、自动协作和数据共享的工具。将以此格式编写医疗记录、制药研究数据、半导体部件图以及采购定单。这将开创众多新用途,这些新用途均基于在 Web 上到处移动结构数据的标准表示,正如当前我们移动 HTML 页一样容易。数据标准是 XML 和 XML 扩展名。
什么是 XML?
XML 是一种元标注语言,该语言提供一种描述结构数据的格式。这有助于更精确地声明内容,方便跨越多种平台的更有意义的搜索结果。此外,XML 将起用新一代的基于 Web 的数据查看和处理应用程序。
数据的结构表示
XML 提供可以广泛执行并易于配置的数据的结构表示。XML 是 万维网协会(W3C) 500)this.style.width=500;" border=0>定义的用于优化 Web 上的传输的 SGML 的子集,XML 确保结构数据是一致的并独立于应用程序或供应商。由此产生的互用性正在启动新一代的商业和电子商务 Web 应用程序。
XML 提供可以编码各种情况(从简单至复杂)的内容、语义和架构的数据标准,可被用于标注以下对象:
- 普通文档。
- 诸如约会记录或采购定单之类的结构记录。
- 具有数据和方法的对象,如 Java 对象或 ActiveX 控件的持续型表单。
- 数据记录,如查询的结果集。
- 有关 Web 站点的元内容,如“频道定义格式 (CDF)”。
- 图形表示,如应用程序的用户界面。
- 标准架构实体和类型。
- Web 上的信息与用户之间的所有链接。
一旦该数据在客户机桌面上,就可以在多个视图中处理、编辑和表示它,而无需返回到服务器。由于较低的计算量和带宽负载,所以目前的服务器更易于升级。此外,由于以 XML 格式交换数据,所以可以轻而易举地合并来自不同来源的数据。
XML 对 Internet 和大型企业的 Intranet 环境是颇有价值的,这是由于 XML 提供使用灵活、开放、基于标准格式的互用性,并具备访问遗留数据库和将数据传输到 Web 客户机的新方式。可以更快地生成应用程序,应用程序更易于维护,并且可以在结构数据上轻易提供多种视图。
XML 文档
XML 是一种基于文本的格式,在许多方面类似于 HTML,后者是专为存储和传输数据而设计的。XML 源是由 XML 元素组成的,每个 XML 元素包括一个开始标记(<title>),一个结束标记(</title>)以及两个标记之间的信息(称为内容)。就象 HTML 一样,XML 文档保存利用标记注释的文本。然而,与 HTML 不同的是,XML 允许无限的标记集,各标记集并不表示如何显示,而是表示其含义。例如,可以将 XML 元素标记为价格、订单编号或名称。由文档的作者确定使用何种数据以及哪种标记名称最合适。
很容易创建 XML 文档。如果您熟悉 HTML,那么您可以很快地学会采用 XML 格式进行编写。在该示例中,利用 XML 描述天气预报,可以用 XML 的扩展名保存该文件,如 Weather.xml。
<weather-report> <date>1998 年 3 月 25 日</date> <time>08:00</time> <area> <city>西雅图</city> <state>华盛顿</state> <region>西海岸</region> <country>美国</country> </area> <measurements> <skies>局部多云</skies> <temperature>46</temperature> <wind> <direction>西南</direction> <windspeed>6</windspeed> </wind> <h-index>51</h-index> <humidity>87</humidity> <visibility>10</visibility> <uv-index>1</uv-index> </measurements> </weather-report>
各标记表示各数据项的含义(是否为 <日期> 元素、<区域> 元素等等),而并不描述显示数据的次序和形式。此数据的所有接收者均可将该文档解码,以便用于自己的特定目的。例如,某人可以利用该信息制定当天的计划,而气象研究员可以将其作为西雅图的历史记录。
可扩展的功能
您可以在 XML 中定义无限的标记集。虽然可以使用 HTML 标记以粗体或斜体的方式显示文字,但 XML 可提供一个用于标记结构数据的框架。XML 元素可以将其关联数据声明为零售价格、营业税、书名、降雨量或其他任何需要的数据元素。随着整个组织以及 Internet 上的其他用户采用 XML 标记,将出现搜索和处理数据的相应能力,而不管发现该数据的应用程序如何。一旦定位了数据,就可以在网络上传送并以多种方式在浏览器中显示,或者传送到其他应用程序以供进一步处理和查看。
标记表示一块数据。通常,它对应于某个表中的某个字段。然而,这并不是必要的。标记可以是一个计算列(价格乘以数量)。没有理由认为一个 XML 文件表示某个表中的所有数据。正像通常看到的那样,XML 将表示包括许多表的查询结果。只要接收应用程序能够搞清 XML 中的数据的意思,数据是从哪里来的以及该数据如何到达 XML 文件并不重要。
数据是从表示和处理中分离出来的
XML 的优势在于,它保持了用户界面和结构数据之间的分离。HTML 指定如何在浏览器中显示数据,而 XML 则定义内容。在 HTML 中,使用标记告诉浏览器以粗体或斜体的方式显示数据;而在 XML 中,只使用标记来描述数据,如城市名、温度和气压。在 XML 中,使用诸如“扩展样式语言 (XSL)”和“层叠样式表 (CSS)”之类的样式表,来表示浏览器中的数据。XML 把数据从表示和处理中分离出来,使您可通过应用不同的样式表和应用程序,来按您的愿望显示和处理数据。
把数据从表示中分离出来,能够无缝集成众多来源的数据。可以将用户信息、采购定单、研究结果、帐单支付、医疗记录、目录数据以及其他来源转换为中间层上的 XML,以便像 HTML 页显示数据一样很容易地联机交换数据。然后可以在 Web 上将按照 XML 编码的数据传送到桌面。对于大型数据库或文档中存储的遗留信息无需进行更新,并且由于使用了 HTTP 在网络上传送 XML,所以此功能不需要更改。
使 XML 数据自描述
在 XML 中,“文档类型定义(DTD)”可以伴随文档,且文档类型定义实质上定义文档的规则,例如哪些元素可被显示以及元素之间的结构关系。当接收应用程序没有传入数据的内部描述时,DTD 将帮助验证该数据。然而,在 XML 中,DTD 是可选的。
与 DTD 一起发送的数据称为有效 XML。此时,XML 语法分析程序应对照 DTD 中定义的规则校正传入的数据,以确保该数据被正确构造。没有与 DTD 一起发送的数据称为结构良好的 XML。这里,可以使用基于 XML 的文档实例,如以上显示的层次结构气象数据,可用来隐含地描述它自己。
对于有效 XML 和结构良好的 XML,XML 编码的数据是自描述的,这是由于描述标记和数据是混合的。XML 使用开放的、灵活的格式,在任何需要交换和传送信息的地方均可使用 XML,这使得 XML 功能更加强大。
例如,可以使用 XML 描述有关 HTML 页的信息,或使用 XML 描述商业规则中包含的数据或电子商务交易中的对象,如发票、采购定单和定货单。由于 XML 是与 HTML 分离的,所以可以将 XML 添加到 HTML 文档中。W3C 定义了一种格式,根据该格式,可以将基于 XML 的数据或 XML 数据岛封装到 HTML 页中。通过将 XML 数据岛嵌入到 HTML 页中,并使用 XML 中包含的语义信息,就可以根据传送的数据生成多个视图。此外,还可以使用 XML 强制应用程序,如分布式打印、数据库搜索及其他程序。
架构
架构是 XML 文档规则的正式规格,即元素名称,架构表示文档中允许哪些元素以及允许哪些组合。如 XML 数据工作组(英文)中定义的新架构语言,500)this.style.width=500;" border=0>符合 W3C 的“XML 数据和文档内容说明 (DCD)”建议提供了和 DTD 一样的功能。但是,这些架构是可扩展的,所以开发人员可用附加的信息(诸如那些数据类型、继承和演示文稿规则)来扩展它们。这使得这些新的架构语言在功能上比 DTD 强大得多。
除了 XML 数据和 DCD 外,Microsoft 和其他公司还建议用 XML 自身来表达 XML 文档架构的词汇。这使 XML 数据能够描述它自己的结构。表达 XML 内部的架构给 XML 格式添加了巨大的能量,因为它使检查某些数据的软件了解它的结构成为可能,而不用任何事先内建数据结构的描述。
使用架构,作者正好可以定义在文档中允许什么样的元素名,以及在每个元素中允许什么样的子元素、属性和关系。作者可从其他架构中引入片断,以及通过继承来扩展类型。于是,在保留了词汇树结构简单性的同时,还允许元素间的复杂关系。
作者可以发明他们自己的架构,或者共享别的作者创建的架构。读者可以检查架构参考以检验已经收到的文档的类型是否正确。他们还可以使用架构中的信息来自动检验文档的结构。
想使用 XML 的公司,需要一个寻找关于其他公司和应用程序支持的架构、文档和公司进程的信息的简单办法。想象一下消费者要付出的巨大代价,相当于每一家公司都要定义它自己的发布信息的方法。即使是 Web, 建立和维护 Web 站点的费用也超出了某些公司的能力。有无数的公司可以发布他们的信息,但是缺少如何用安全的、可控的方式来发布这些信息的标准,这势必导致成千上万种不同的执行方法、导航方式和内容深度。允许这种“混乱”状态泛滥的成本负担将波及消费者。
Microsoft 已经选择了通过创建和管理 www.biztalk.org(英文),来最大限度克服此问题。500)this.style.width=500;" border=0>该站点将成长为定位、管理、学习和发布使用在成千上万应用程序中的 XML、XSL 和信息模型的大门。架构的全功能联机仓库计划在 1999 年初秋交付使用。
开放式标准
XML 是基于经过验证的、针对 Web 进行优化的技术标准。Microsoft 正在与其他大公司和 W3C 研究小组共同努力,确保对工作在多系统和多浏览器上的开发人员、作者和用户的互用性和支持,并不断加强 XML 标准。
XML 是由下列相关标准组成:
- 可扩展的标记语言(XML)(英文) 500)this.style.width=500;" border=0>是一个“建议”,即 W3C 审批进程的最后阶段。这就是说,该标准是稳定的,并且受到 Web 和工具开发人员的热烈欢迎。
- XML 命名空间(英文) 500)this.style.width=500;" border=0>是一个“建议”,它描述了命名空间的语法并支持命名空间认可的 XML 分析程序。
- 文档对象模型 (DOM) 1 级(英文) 500)this.style.width=500;" border=0>是一个“建议”,它提供了有计划地访问脚本中结构化数据的标准,使开发人员能够与基于 XML 数据的计算机进行相容的交互。
- 可扩展的样式表语言 (XSL)(英文) 500)this.style.width=500;" border=0>是当前的工作草稿。XSL 由两个模块组成:“XSL 转换语言”和“XSL 格式化对象”。转换语言可用于为显示而转换 XML。因为 XSL 的两个部分是模块,所以转换语言可独立应用于通用目的的转换,包括将 XML 转换为格式更好的 HTML。CSS 可用于简单结构的 XML 数据,但是只能以接收的次序显示信息。
- XML 链接语言 (XLL)(英文) 500)this.style.width=500;" border=0>和它的伴侣 XML 指针语言 (XPointer)(英文) 500)this.style.width=500;" border=0>是当前的工作草稿。XLL 是 XML 链接语言,它提供了 XML 中的链接,类似 HTML 中的链接,然而功能更强。用 XLL,链接可以是多向的,而且链接可存在于对象级,不是仅在页面级。Internet Explorer 5 不支持 XLL。
XML 结构化架构,诸如 XML 数据注释(英文) 500)this.style.width=500;" border=0>和 XML 的文档内容描述 (DCD)(英文) 中描述的那些500)this.style.width=500;" border=0>是 W3C XML 数据工作组(英文) 500)this.style.width=500;" border=0>的课题。
从 XML 中受益
XML 给基于 Web 的应用程序带来了强大的功能和灵活性,它为开发人员和用户提供了许多引人注目的优点:
- 更有意义的搜索
- 开发灵活的 Web 应用程序
- 不同来源的数据集成
- 本地的数据计算和操作
- 多个数据视图
- 粒状更新
更有意义的搜索
数据可使用 XML 来作唯一标记,潜在地允许客户指定 Winston Churchill 所著的书,而不是描写 Winston Churchill 的书。所不同的是,使用现在的方法来搜索,可能找出混在一起的两种书。不使用 XML,则需要搜索应用程序以了解每个数据库的架构,此架构描述了该数据库是如何构造的。事实上这是不可能的,因为每个数据库描述它的数据的方式不同。而使用 XML,书很容易使用一种标准的方法,按作者、书名、国际标准书号或其他准则分类。然后,代理程序再使用一致的方法,在被标识的书店站点上搜索关于 Winston Churchill 的书。
灵活的 Web 应用程序的开发
找到数据之后,可将 XML 交给其他应用程序、对象和中间层服务器作下一步处理,或者送至桌面,在浏览器中查看。XML,连同用于显示的 HTML、用于逻辑的脚本以及用于与数据的交互和显示的一般对象模型一起,为灵活的三层 Web 应用程序开发提供了所需的技术。
不同来源的数据集成
搜索多个、不兼容的数据库的能力,至今尚属不可能。XML 启用了容易结合的不同来源的结构化数据。软件代理可用于在中间层服务器上,集成来自后端数据库和其他应用程序的数据。这数据再递交给客户机或其他服务器,作下一步的聚合、处理和分布。
XML 的可扩展性和灵活性,使它能够描述各种类型的应用程序中包含的数据,这些应用从描述 Web 页面的集合到数据记录,应有尽有。此外,由于基于 XML 的数据是自描述的,不需要内建的传入数据的描述,便能交换和处理数据。
本地计算和操作
在 XML 格式的数据被递交给客户机之后,该数据可以使用客户机应用程序执行的计算进行剖析,并在本地进行编辑和操作。用户不仅仅可以显示数据,还可使用各种方法操作数据。“XML 文档对象模型 (DOM)”还允许使用脚本或其他编程语言操作数据。省略了和服务器之间的数据传输,便可进行数据计算。将查看数据的用户界面和数据本身分离,使得从前只能在高端数据库上找到的功能强大的应用程序,可以自然地使用简单、灵活、开放的格式,为 Web 而创建。
多个数据视图
数据被传递到桌面之后,可使用不同的方法查看。通过使用简单、开放和可扩展的方式描述结构化数据,XML 补充了广泛用于描述用户界面的 HTML。另外,HTML 描述了数据的外观,而 XML 则描述了数据本身。由于现在显示与数据分离了,使用 XML 定义的数据可以指定多个不同的视图,使数据得以更好地显示。可以根据客户机配置、用户喜好和其他准则决定本地数据的显示方式。CSS 和 XSL 提供了描述特定数据视图的说明性机制。
粒状更新
数据可以使用 XML 粒状更新,每当部分数据被更改后,不需要再发送一个完整的结构化数据集。只有更改了的元素才从服务器发送到客户机上,而且用不着刷新整个用户界面就可以显示更改了的数据。现在,即使视图保持不变而只更改了一个数据项,整个页面也必须重建。这严重限制了服务器的可缩放性。
同样,XML 允许添加其他数据,如预报的最高和最低温度、预期的降雨量和概率(按百分比)。此附加的信息将流入用户的现有视图,而不使用浏览器发送新的视图。如果还需要其他信息(如大气压),不用重建便可以发送。
前景
作为表达结构化数据的行业标准,XML 向组织、软件开发人员、Web 站点和最终用户提供了许多优点。随着重要市场(如高级数据库搜索、网上银行、医药、法律、电子商务和其他领域)的更为高级的市场数据格式被创建,这种机会将进一步增加。当站点不但要查看数据,而且要分配数据时,正是良机。
当前,客户服务正从呼叫中心和物理位置移向 Web 站点,因此将受益于 XML 的强大功能。其次,因为大多数业务应用程序涉及数据和数据库记录的传输,如订货单、发票、客户信息、约会、地图等等,XML 将在 Internet 上执行大量业务应用程序,从而大大改变最终用户的可能发生的事情。此外,Web 站点上的信息,不管是存在文档中,还是在数据库中,都可以使用基于 XML 的、面向 intranet 的词汇来标记。这些词汇,对需要在客户和供应商之间交换信息的中小型公司来说,也很有帮助。
一个重要的、尚待开发的市场,就是便于最终用户建造自己的协作 Web 站点的开发工具,包括从遗留数据库信息和现存的用户界面生成 XML 数据的工具。此外,还应开发描述公文夹或其他数据的标准架构,例如,它应该能使用排版、图表和 Excel 等电子表格的其他功能。描述从遗留数据库生成的 XML 的说明性工具和可视工具是非常好的机会。查看 XML 数据的自定义工具可使用 Visual Basic® 开发系统、Java 和 C++ 编写。
XML 要求强大的新工具来表示文档中丰富的、复杂的 XML 数据。通过将对用户友好的显示层映射到可动态更改的复杂的层次数据集的顶层,可以实现这一点。XML 数据可能使用的布局,包括折叠分级、PivotTable 动态视图和每个公文夹的简单表格。
Web 站点可以提供股票行情、新闻或实时交通数据。通过过滤 Web 广播或智能轮询复制这些站点的服务器树,可以获得这些数据。使用 XML 可以避免信息超载,办法是编写自定义的规则来处理电子邮件中的陈旧的信息。基于 XML 的、用户构造这些规则的工具,以及运行这些工具的服务器和客户机软件,是个极好的巨大市场。“标准的对象模型”能启用这些功能,它们通常被写在脚本中,用于过滤传入的消息、检查存储的消息、创建待发邮件、访问数据库等等。可编写这些代理程序,以便在任何地方自动运行。
原文地址:
https://www.microsoft.com/china/MSDN/library/archives/technic/XML/general/whyXML.asp
- 上一篇:互联网10年我们是不明方向的领先者
- 下一篇:电子商务实务(学习视角)