W3CProposed Recommendations(W3C提出的建议)...
XML学习进阶1-- 什么是XML
关键词:SGML, HTML,XML,SAX,DOM,XSL,DTD,Schema,DCD, RDF,CSS,W3C,Xpath,Xlink,SVG,VRML
摘 要: 可扩展标记语言或者简称XML,是Web应用的一种新技术,是万维网联盟(W3C) 制定的的标准。XML简化了网络中数据交换和表示,使得代码、数据和表示可以分离,可以作为数据交换的标准格式。就这点而言,XML被称为智能数据文档。本文概述了 XML 是什么、它产生的原因以及为什么它对表示和交换数据来说是极有价值和益处的技术。
缩略语清单:
SGML Standard GeneralizedMarkup Language
HTML Hyper Text MarkupLanguage
XML Extensible MarkupLanguage
SAX Simple API
DOM Document Object Model
XSL Extensible StylesheetLanguage,可扩展样式语言
DTD Document Type Definition,文档类型声明
DCD Document ContentDeclaration
RDF Resource DescriptionFormat
CSS Cascading StyleSheets
XSLT Extensible StylesheetLanguage Transformations
Xpath XML Path Language
Xlink eXtensible LinkLanguage,可扩展链接语言
W3C world Web Consortium,web技术标准化集团
SVG Scalable Vector Graphics
VRML Virtual Reality MarkupLanguage
参考资料清单:
参考资料清单 |
|||||
名称 |
作者 |
编号 |
发布日期 |
查阅地点或渠道 |
出版单位 |
XML—网络时代的娇子 |
XML技术网 |
http://www.chinaasp.com/xml/ |
|||
为什么使用XML |
Microsoft MSDN |
http://www.microsoft.com/china/msdn/technic/xml/general/whyxml.asp |
|||
XML的基本理论_ |
河南众通信息技术有限公司_ |
http://www.wangcn.com |
|||
Microsoft Online XML development Centre |
http://msdn.microsoft.com/xml/default.asp |
1 为什么使用 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 扩展名。
2 什么是 XML?
World Wide Web Consortium (W3C)对XML进行了如下描述:"Extensible Markup Language,缩写为 XML,描述了一类被称为XML文档的数据对象,并部分描述了处理它们的计算机程序的行为。XML是SGML (Standard Generalized Markup Language [ISO 8879])的一个应用实例或一种受限形式。从结构上说,XML文档顺从SGML文档标准。"
Microsoft 对 XML 的定义是:
Standard Generalized Markup Language (SGML) 的简化子集,专门为 Web 应用程序而设计。XML 提供描述不同类型数据的标准格式 —— 例如,约会记录、购买定单、数据库记录 —— 从而可一致而正确地解码、管理和显示信息。XML 提供表示数据的文件格式、描述数据结构的计划、以及用语义信息扩展和注释 HTML 的机制。
总而言之,XML 是一种元标注语言,该语言提供一种描述结构数据的格式。这有助于更精确地声明内容,方便跨越多种平台的更有意义的搜索结果。此外,XML 将起用新一代的基于 Web 的数据查询和处理应用程序。
3 数据的结构表示
XML 提供可以广泛执行并易于配置的数据的结构表示。XML 是 万维网协会(W3C) 定义的用于优化 Web 上的传输的 SGML 的子集,XML 确保结构数据是一致的并独立于应用程序或供应商。
XML 提供可以编码各种情况(从简单至复杂)的内容、语义和架构的数据标准,可被用于标注以下对象:
普通文档。
诸如约会记录或采购定单之类的结构记录。
具有数据和方法的对象,如Java 对象或 ActiveX 控件的持续型表单。
数据记录,如查询的结果集。
有关 Web 站点的元内容,如“频道定义格式 (CDF)”。
图形表示,如应用程序的用户界面。
标准架构实体和类型。
Web 上的信息与用户之间的所有链接。
一旦该数据在客户机桌面上,就可以在多个视图中处理、编辑和表示它,而无需返回到服务器。由于较低的计算量和带宽负载,所以目前的服务器更易于升级。此外,由于以 XML 格式交换数据,所以可以轻而易举地合并来自不同来源的数据。
XML 对 Internet 和大型企业的 Intranet 环境是颇有价值的,这是由于 XML 提供使用灵活、开放、基于标准格式的互用性,并具备访问遗留数据库和将数据传输到 Web 客户机的新方式。可以更快地生成应用程序,应用程序更易于维护,并且可以在结构数据上轻易提供多种视图。
4 XML文档
XML 是一种基于文本的格式,在许多方面类似于 HTML,后者是专为存储和传输数据而设计的。XML 源是由 XML 元素组成的,每个 XML 元素包括一个开始标记(<title>),一个结束标记(</title>)以及两个标记之间的信息(称为内容)。就象 HTML 一样,XML 文档保存利用标记注释的文本。然而,与 HTML 不同的是,XML 允许无限的标记集,各标记集并不表示如何显示,而是表示其含义。例如,可以将 XML 元素标记为价格、订单编号或名称。由文档的作者确定使用何种数据以及哪种标记名称最合适。
标记是对了文档存储格式和逻辑结构的描述。在形式上,标记有以下各种可能项:注释、引用、字符数据段、起始标记、结束标记、空元素、文档类型声明(DTD)和序言。
很容易创建 XML 文档。如果您熟悉 HTML,那么您可以很快地学会采用 XML 格式进行编写。在该示例中,利用 XML 描述天气预报,可以用 XML 的扩展名保存该文件,如 Weather.xml。
<weather-report>
<date>2001 年 1 月 1 日</date>
<time>08:00</time>
<area>
<city>南京</city>
<state>江苏</state>
<region>东部</region>
<country>中国</country>
</area>
<measurements>
<skies>局部多云</skies>
<temperature>-3</temperature>
<wind>
<direction>西北</direction>
<windspeed>3</windspeed>
</wind>
<h-index>51</h-index>
<humidity>87</humidity>
<visibility>10</visibility>
<uv-index>1</uv-index>
</measurements>
</weather-report>
各标记表示各数据项的含义(是否为 <日期> 元素、<区域> 元素等等),而并不描述显示数据的次序和形式。此数据的所有接收者均可将该文档解码,以便用于自己的特定目的。例如,某人可以利用该信息制定当天的计划,而气象研究员可以将其作为南京的历史记录。
每个XML文档都有一个逻辑结构和物理结构。从物理角度来看,文档由实体单元组成,一个实体也可以在其他文档的实体中被引用。一个文档以一个根元素或文档实体来开始。从逻辑上讲,文档由声明(declaration)、元素(element)、注释(comment)、字符引用(character reference)和处理说明(processinginstruction)组成。这些组成部分在文档的标记中必须明确规定。物理结构从另一角度来规范XML文档。文档的起始标记和结束标记对数据进行结构化组织,并确定了元素的范围和相互之间的关系。
在XML文档中,除标记之外就是字符数据。一般的字符用其本身来表示,但这不适用于XML中的保留字符。例如,字复符"&"和"< "只能作为标记定界符,或在注释、处理指令和CDATA字段中直接使用,其他情况下则需要用字符引用或特定的字符串来表示。这类字符是XML的预定义实体。常见的预定义实体见下表:
表1 XML预定义实体
字符 |
名称 |
实体引用 |
& |
Ampersand |
& |
> |
Greater than |
> |
< |
Less than |
< |
' |
Apostrophe |
' |
" |
Quotation mark |
" |
例如,如果要表示"a< b",就必须写成:" a"、" '"和""",它们的名称分别为amp、lt、gt、apos和quot。因此,如果要在元素中引用这些实体,就必须写成":&"、"<"、">"、"'"和"""。
字符引用代表了ISO/IEC 10646字符集中的一个特定字符,它是一个十六进制代码。如果XML文档需要引用现有设备不能直接输入的字符(比如回车),则必须用字符引用来代表。
XML文件也可以对一个处理XML数据的应用提供处理信息,即处理说明,其格式为:"< ?目标应用名 instructions? >"。例如,< ?xml version="1.0" ? >就是一种处理指令。解析器通过它得知该文档应当遵循XML 1.0标准。XML文件可以对不同应用提供不同处理说明。
引用预定义实体或字符非常方便,而且计算机处理也十分容易,但去读一懂大堆像"&&"、"#xNNNN;"这样枯燥的数据确实是一件烦琐的事;在写文档时也得面临同样的问题,你必须化精力去寻找这些字符实体,然后将特殊字符替换为字符引用。以"< ![CDATA"开始并以"]] >"结束的字符数据段(CDATASection)凌驾于解析器之上,其中的内容将不被解析。字符数据段中除了不能有结束标志"]] >"外,可以包括任意字符序列。例如,标记化的文本可以直接放在字符数据段中而不会被解释为结构化的标记。我们可以在字符数据段中包含一段HTML代码,也可以在字符数据段中添加编程语言代码。
字符数据段为XML的后续处理提供了编程接口。例如,我们可以在XML的样式语言XSL中采用ECMAScript脚本语言编写灵活丰富的应用。
XML文件总有一个"序言(prolog)"声明该文件为XML文档,例如(< ?xml version="1.0"? >)。该序言也可以包含附加信息,如:
< ?xml version="1.0" encoding="ISO-8859-1"standalone="yes"? >
Prolog的属性包括:版本、编码以及是否独立,后者指明该文档是否引用一个外部实体或外部数据类型。另外还可以直接包含本来在DTD中声明的实体定义和规范。
从上面的介绍,我们可以看出,XML有以下几个特点:
l XML文档是纯文本,因此可用从文本编辑器直到可视化开发环境的任何工具创建和编辑,程序可以更简单,而在需要存储大量数据的场合,一个数据库的XML前端就可以满足需要,因此XML提供了从小配置文件到公司级数据仓库的可扩展性。
l 基于内容的数据标识,因而可被不同程序用于不同用途。
l 可格式化。在显示很重要的时候,XSL可指定如何显示数据。由于数据和显示是分离的,甚至可以为同一数据指定不同的样式表用于不同输出,并很容易在将来使用新的格式。
l 具有很强的链接能力,可以定义双向链接、多目标链接、扩展联结和两个文档间的链接。
l 易于处理。XML对格式的定义更为严格,并具有层次结构,处理起来更加容易。它是与厂商无关的标准,可以任选一个解析器来处理。
您可以在 XML 中定义无限的标记集。虽然可以使用 HTML 标记以粗体或斜体的方式显示文字,但 XML 可提供一个用于标记结构数据的框架。XML 元素可以将其关联数据声明为零售价格、营业税、书名、降雨量或其他任何需要的数据元素。随着整个组织以及 Internet 上的其他用户采用 XML标记,将出现搜索和处理数据的相应能力,而不管发现该数据的应用程序如何。一旦定位了数据,就可以在网络上传送并以多种方式在浏览器中显示,或者传送到其他应用程序以供进一步处理和查看。
标记表示一块数据。通常,它对应于某个表中的某个字段。然而,这并不是必要的。标记可以是一个计算列(价格乘以数量)。没有理由认为一个 XML 文件表示某个表中的所有数据。正像通常看到的那样,XML 将表示包括许多表的查询结果。只要接收应用程序能够搞清 XML 中的数据的意思,数据是从哪里来的以及该数据如何到达 XML 文件并不重要。
5 数据是从表示和处理中分离出来的
XML 的优势在于,它保持了用户界面和结构数据之间的分离。HTML 指定如何在浏览器中显示数据,而 XML 则定义内容。在 HTML 中,使用标记告诉浏览器以粗体或斜体的方式显示数据;而在 XML 中,只使用标记来描述数据,如城市名、温度和气压。在 XML 中,使用诸如“扩展样式语言 (XSL)”和“层叠样式表 (CSS)”之类的样式表,来表示浏览器中的数据。XML 把数据从表示和处理中分离出来,使您可通过应用不同的样式表和应用程序,来按您的愿望显示和处理数据。
把数据从表示中分离出来,能够无缝集成众多来源的数据。可以将用户信息、采购定单、研究结果、帐单支付、医疗记录、目录数据以及其他来源转换为中间层上的 XML,以便像 HTML 页显示数据一样很容易地联机交换数据。然后可以在 Web 上将按照 XML 编码的数据传送到桌面。对于大型数据库或文档中存储的遗留信息无需进行更新,并且由于使用了 HTTP 在网络上传送 XML,所以此功能不需要更改。
XML 在采用简单、柔性的标准化格式表达和在应用间交换数据方面迈出了一大步。HTML 提供了显示数据的通用方法;XML则提供了直接在数据上工作的通用方法。XML的威力在于将用户界面和结构化数据相分离,允许不同来源数据的无缝集成和对同一数据的多种处理。从数据描述语言的角度看,XML是灵活的、可扩展的、有良好的结构和约束;从数据处理的角度看,它足够简单且易于阅读,几乎和HTML一样易于学习,同时又易于被应用程序处理,因此,XML必将带来下一代网络应用技术的革命。
6 使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 强制应用程序,如分布式打印、数据库搜索及其他程序。
DTD本身规定了有限的XML文档规则,这与XML的初衷有所违背:XML采用可扩展的标记希望能够表示各种数据,但DTD又规定了有限的XML文档规则,限制了XML文档。架构(Schema)是 XML 文档规则的正式规格,即元素名称,架构表示文档中允许哪些元素以及允许哪些组合。如 XML 数据工作组(英文)中定义的新架构语言,符合 W3C 的“XML 数据和文档内容说明 (DCD)”建议提供了和 DTD 一样的功能。但是,这些架构是可扩展的,所以开发人员可用附加的信息(诸如那些数据类型、继承和演示文稿规则)来扩展它们。这使得这些新的架构语言在功能上比
DTD 强大得多。
除了 XML 数据和 DCD 外,Microsoft 和其他公司还建议用 XML 自身来表达 XML 文档架构的词汇。这使 XML 数据能够描述它自己的结构。表达 XML 内部的架构给 XML 格式添加了巨大的能量,因为它使检查某些数据的软件了解它的结构成为可能,而不用任何事先内建数据结构的描述。
使用架构,作者正好可以定义在文档中允许什么样的元素名,以及在每个元素中允许什么样的子元素、属性和关系。作者可从其他架构中引入片断,以及通过继承来扩展类型。于是,在保留了词汇树结构简单性的同时,还允许元素间的复杂关系。
作者可以发明他们自己的架构,或者共享别的作者创建的架构。读者可以检查架构参考以检验已经收到的文档的类型是否正确。他们还可以使用架构中的信息来自动检验文档的结构。
想使用 XML 的公司,需要一个寻找关于其他公司和应用程序支持的架构、文档和公司进程的信息的简单办法。想象一下消费者要付出的巨大代价,相当于每一家公司都要定义它自己的发布信息的方法。即使是 Web, 建立和维护 Web 站点的费用也超出了某些公司的能力。有无数的公司可以发布他们的信息,但是缺少如何用安全的、可控的方式来发布这些信息的标准,这势必导致成千上万种不同的执行方法、导航方式和内容深度。允许这种“混乱”状态泛滥的成本负担将波及消费者。
Microsoft 已经选择了通过创建和管理 http://www.biztalk.org ( 英文),来最大限度克服此问题。该站点将成长为定位、管理、学习和发布使用在成千上万应用程序中的 XML、XSL 和信息模型的大门。
7 XML数据处理
XML不仅规定了如何表示和显示数据,还提供了标准的API供处理XML数据,这也就是我们称之为智能数据或数据标准的原因。
SAX(The SimpleAPI for XML)是基于事件的XML分析API,功能比较简单。 这一API是事件驱动的,又称"顺序访问"协议。每当它看到一个新的XML标记(或遇到一个错误,或想告诉你什么事时)就用一个SAX解析器注册你的句柄,激活你的回调方法。
DOM 定义了分析程序应当显露的标准命令集,使您能够在程序中访问 HTML 和 XML 文档内容。支持 DOM 的 XML 分析程序取出 XML 文档中的数据,并通过一组可以对它编程的对象来显露它。DOM将一个XML文档转换成你程序中的一个对象集合。然后你可以任意处理对象模型。这一机制也称为"随机访问"协议,因为你可以在任何时间访问数据的任何一部分,然后修改、删除或插入新数据。 DOM的特点是功能强大,但分析时间长,占用资源多。
SAX 提供了处理 XML 文档的快速、低内存的另一种方法。在使用 DOM 分析 XML 文件时,它在内存中建立了完整的文档树。相比而言,SAX 将遍历文档,并将新元素的开始或结束等通知分析事件的调用应用程序。使用 SAX 的一个最佳功能是分析长文档。例如,用 SAX 分析器,应用程序可以监视发生的事件,只将文档中必要的部分读入内存。
8 开放式标准
XML 是基于经过验证的、针对Web 进行优化的技术标准。Microsoft 正在与其他大公司和 W3C 研究小组共同努力,确保对工作在多系统和多浏览器上的开发人员、作者和用户的互用性和支持,并不断加强 XML 标准。
XML 是由下列相关标准组成:
可扩展的标记语言(XML)是一个“建议”,即 W3C 审批进程的最后阶段。这就是说,该标准是稳定的,并且受到Web 和工具开发人员的热烈欢迎。
XML 命名空间是一个“建议”,它描述了命名空间的语法并支持命名空间认可的 XML 分析程序。
文档对象模型 (DOM) 1 级是一个“建议”,它提供了有计划地访问脚本中结构化数据的标准,使开发人员能够与基于 XML 数据的计算机进行相容的交互。
可扩展的样式表语言 (XSL)是当前的工作草稿。XSL 由两个模块组成:“XSL 转换语言”和“XSL 格式化对象”。转换语言可用于为显示而转换 XML。因为 XSL 的两个部分是模块,所以转换语言可独立应用于通用目的的转换,包括将 XML 转换为格式更好的 HTML。CSS 可用于简单结构的 XML 数据,但是只能以接收的次序显示信息。
XML 链接语言 (XLL) 和它的伴侣 XML 指针语言 (XPointer) 是当前的工作草稿。XLL是 XML 链接语言,它提供了 XML 中的链接,类似 HTML 中的链接,然而功能更强。用 XLL,链接可以是多向的,而且链接可存在于对象级,不是仅在页面级。Internet Explorer 5 不支持 XLL。
XML 结构化架构,诸如 XML 数据注释和 XML 的文档内容描述 (DCD)中描述的那些是 W3C XML 数据工作组的课题。
除上述XML的标准建议以外,利用XML提出了许多扩展的标准:
XHTML(Extensible HyperText MarkupLanguage,扩展超文本标记语言)规范是使XML文档看起来和操作来类似于HTML文档的一种方式。既然XML可以包含任何你愿意定义的标记,为什么不定义一套看起来象HTML的标记呢?这一规范的结果就是一个文档,可以在浏览器中显示,也可以作为XML数据处理。数据可能不是"纯粹的"XML,但也比标准的HTML容易处理的多。XHTML规范是将HTML4.0再形成为XML。
MathML(Mathematical Markup Language,数学标记语言)是一个处理数学公式表示的 W3C recommendation。
SVG(Scalable Vector Graphics,可缩放矢量图)是一个关于矢量图形表示的W3C工作草案。(矢量图形是用"画一条从点x,y到点m,n的线"这样的命令建立的,而不是用一系列比特位去编码图形。这样的图形更容易缩放,但也更花处理时间。)
DrawML(Drawing Meta Language,绘图元语言)是一个关于二维技术图的W3C note。它也处理更新和细化这些图形的问题。
电子商务标准 cXML(Commerce XML,商务XML)是一个为不同购买者建立交互在线目录的RosettaNet(www.rosettanet.org)标准,也包含了处理购买订单、改变订单、状态更新和运输通知的机制。
9 从XML中受益
XML 给基于 Web 的应用程序带来了强大的功能和灵活性,它为开发人员和用户提供了许多引人注目的优点:
更有意义的搜索
开发灵活的 Web 应用程序
不同来源的数据集成
本地的数据计算和操作
多个数据视图
粒状更新
更有意义的搜索
数据可使用 XML 来作唯一标记,潜在地允许客户指定 Winston Churchill 所著的书,而不是描写Winston Churchill 的书。所不同的是,使用现在的方法来搜索,可能找出混在一起的两种书。不使用 XML,则需要搜索应用程序以了解每个数据库的架构,此架构描述了该数据库是如何构造的。事实上这是不可能的,因为每个数据库描述它的数据的方式不同。而使用 XML,书很容易使用一种标准的方法,按作者、书名、国际标准书号或其他准则分类。然后,代理程序再使用一致的方法,在被标识的书店站点上搜索关于
Winston Churchill 的书。
找到数据之后,可将 XML 交给其他应用程序、对象和中间层服务器作下一步处理,或者送至桌面,在浏览器中查看。XML,连同用于显示的 HTML、用于逻辑的脚本以及用于与数据的交互和显示的一般对象模型一起,为灵活的三层 Web 应用程序开发提供了所需的技术。
搜索多个、不兼容的数据库的能力,至今尚属不可能。XML 启用了容易结合的不同来源的结构化数据。软件代理可用于在中间层服务器上,集成来自后端数据库和其他应用程序的数据。这数据再递交给客户机或其他服务器,作下一步的聚合、处理和分布。
XML 的可扩展性和灵活性,使它能够描述各种类型的应用程序中包含的数据,这些应用从描述 Web 页面的集合到数据记录,应有尽有。此外,由于基于 XML 的数据是自描述的,不需要内建的传入数据的描述,便能交换和处理数据。
在 XML 格式的数据被递交给客户机之后,该数据可以使用客户机应用程序执行的计算进行剖析,并在本地进行编辑和操作。用户不仅仅可以显示数据,还可使用各种方法操作数据。“XML 文档对象模型 (DOM)”还允许使用脚本或其他编程语言操作数据。省略了和服务器之间的数据传输,便可进行数据计算。将查看数据的用户界面和数据本身分离,使得从前只能在高端数据库上找到的功能强大的应用程序,可以自然地使用简单、灵活、开放的格式,为 Web 而创建。
数据被传递到桌面之后,可使用不同的方法查看。通过使用简单、开放和可扩展的方式描述结构化数据,XML 补充了广泛用于描述用户界面的 HTML。另外,HTML 描述了数据的外观,而 XML 则描述了数据本身。由于现在显示与数据分离了,使用 XML 定义的数据可以指定多个不同的视图,使数据得以更好地显示。可以根据客户机配置、用户喜好和其他准则决定本地数据的显示方式。CSS 和 XSL 提供了描述特定数据视图的说明性机制。
数据可以使用 XML 粒状更新,每当部分数据被更改后,不需要再发送一个完整的结构化数据集。只有更改了的元素才从服务器发送到客户机上,而且用不着刷新整个用户界面就可以显示更改了的数据。现在,即使视图保持不变而只更改了一个数据项,整个页面也必须重建。这严重限制了服务器的可缩放性。
同样,XML 允许添加其他数据,如预报的最高和最低温度、预期的降雨量和概率(按百分比)。此附加的信息将流入用户的现有视图,而不使用浏览器发送新的视图。如果还需要其他信息(如大气压),不用重建便可以发送。
10 前景
作为表达结构化数据的行业标准,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 的、用户构造这些规则的工具,以及运行这些工具的服务器和客户机软件,是个极好的巨大市场。“标准的对象模型”能启用这些功能,它们通常被写在脚本中,用于过滤传入的消息、检查存储的消息、创建待发邮件、访问数据库等等。可编写这些代理程序,以便在任何地方自动运行。
XML学习进阶2--XML标准
关键词: SGML, HTML,XML,SAX,DOM,XSL,DTD,Schema,DCD, RDF,CSS,W3C,Xpath,Xlink,SVG,
摘 要: 可扩展标记语言或者简称XML,是Web应用的一种新技术,是万维网联盟(W3C) 制定的的标准。本文讲述XML的标准的分类和参考网址。
缩略语清单:
SGML Standard GeneralizedMarkup Language
HTML Hyper Text MarkupLanguage
XML Extensible MarkupLanguage
SAX Simple API
DOM Document Object Model
XSL Extensible StylesheetLanguage,可扩展样式语言
DTD Document Type Definition,文档类型声明
DCD Document Content Declaration
RDF Resource DescriptionFormat
CSS Cascading StyleSheets
XSLT Extensible StylesheetLanguage Transformations
Xpath XML Path Language
Xlink eXtensible LinkLanguage,可扩展链接语言
W3C world Web Consortium,web技术标准化集团
SVG Scalable Vector Graphics
参考资料清单:
参考资料清单 |
|||||
名称 |
作者 |
编号 |
发布日期 |
查阅地点或渠道 |
出版单位 |
XML标准 |
http://www.w3.org |
IETF |
XML标准
XML的相关标准和术语很多,因此这里作一个简要介绍。由于XML尚在发展之中,这里介绍的是到2000年1月1号为止的情况,最新的情况应随时从网上查询:Http://www.w3.org 。
W3C的XML相关标准可分为以下几类:
1 W3C建议(Recommendations)
W3C产生的规范的最终形式。之所以称为"建议"是因为它并不强加于任何人,但已不再进一步讨论和复查了。
---- SAX(Simple APIfor XML,XML简单应用程序接口)
这实际上是在XML-DEV邮件列表上协作产生的,并不是W3C的标准,但事实上已和W3C建议有着同等地位。这一API是事件驱动的,又称"顺序访问"协议。每当它看到一个新的XML标记(或遇到一个错误,或想告诉你什么事时)就用一个SAX解析器注册你的句柄,激活你的回调方法。 也就是说SAX 将遍历文档,并将新元素的开始或结束等通知分析事件的调用应用程序。
---- DOM(DocumentObject Model,文档对象模型)
DOM将一个XML文档转换成你程序中的一个对象集合。然后你可以任意处理对象模型。这一机制也称为"随机访问"协议,因为你可以在任何时间访问数据的任何一部分,然后修改、删除或插入新数据。
---- DTD(DocumentType Definition,文档类型定义)
DTD规范实际是XML规范的一部分,同时又是可选的:可以写一个没有DTD的XML文档。另外还有一个更加灵活的Schema提案可以替代它。DTD规定在你的XML文档中可以包含的标记种类和有效布置,因此可保证你不会创建一个无效的XML结构或者你看到的XML结构是有效的。结构满足DTD要求的XML文档称为有效的(valid)。然而,对于一个复杂的文档来说创建一个排除所有无效组合并允许所有有效组合的DTD是很困难的。DTD可以作为Prolog的一部分放在文档前面,也可以作为一个独立实体存在,或者分散在文档prolog和一个或几个实体中。
---- RDF (ResourceDescription Framework,资源描述框架)
RDF是定义关于数据的数据的标准。例如,和XHTML规范或HTML标记一起使用,RDF可用于描述页面的内容。举例来说,如果你的浏览器将你的个人信息存为名字、Email地址,一个RDF描述就可以将数据传输给需要名字和Email地质的应用。
要进一步了解RDF,可查看http://www.w3.org/TR/PR-rdf-syntax/.Namespaces(名域)
---- Namespaces
Namespaces使你可用模块化方式以两套或更多XML标记写一个XML文档。例如,你可以创建一个基于XML的配件列表,使用其它制造商提供的配件描述(在线!)。由子配件提供的"价格"数据是你想加起来的,整个结构的"价格"数据是你想显示的。Namespace规范定义了限定名字的机制以消除模糊性。
要进一步了解Namespaces,可查看http://www.w3.org/TR/REC-xml-names.
---- XSLT(XSLTransformations,XSL转换)
XSLT是作为XSL的一部分使用的,用于将XML文档转换为其它XML文档。在XSLT之外,XSL还包括一个用于定义格式化的XML vocabulary(词汇表),它用XSLT描述文档如何用格式化词汇表转换为另一个文档。目前XSLT版本为1.0,可查看http:/ /www.w3.org/TR/1999/REC-xslt-19991116。
---- Xpath(XML PathLanguage,XML路径语言)
Xpath是寻址一个XML文档内的组成部分的一种语言,被设计成可为XSLT和Xpointer共同使用。Xpath使用一个简练的、非XML的句法以方便在URL和XML属性之中的使用。Xpath在一个XML文档的抽象逻辑结构上操作,其名字来源于它用路径记法表达XML文档中的层次结构。Xpath的设计使它具有一个子集可用于匹配(测试一个节点是否满足一个模式),这一使用在XSLT中有介绍。目前XPath版本为1.0,可查看http://www.w3.org/TR/1999/REC-xpath-19991116。
2 W3C Proposed Recommendations(W3C提出的建议)
W3C "proposed recommendation"是一个非常接近于结束的W3C recommendation提案。 它仍可复查,但已有许多人作了大量工作,因此这类标准一般不会再有多大改动。
---- RDF Schema(大纲)
RDF Schema 规定了描述如何翻译一个RDF中的声明所需的一致性规范和附加信息。
要进一步了解RDF Schema,可查看http://www.w3.org/TR/PR-rdf-schema.
---- XHTML(ExtensibleHyperText Markup Language,扩展超文本标记语言)
XHTML 规范是使XML文档看起来和操作来类似于HTML文档的一种方式。既然XML可以包含任何你愿意定义的标记,为什么不定义一套看起来象HTML的标记呢?这一规范的结果就是一个文档,可以在浏览器中显示,也可以作为XML数据处理。数据可能不是"纯粹的"XML,但也比标准的HTML容易处理的多。例如,一个格式良好的XML文档中每一个标记都必须有一个对应的结束标记,否则必须用(/ >)结束。所以你可以看到(< p >...</p >)或(< p/ >),但决不会只看到< p >。而HTML中的一个(< dt
>)标记可以由(< /dt >)、另一个(< dt >)、(< dl>)(< /dl >)结束。XHTML规范是将HTML4.0再形成为XML。
XHTML目前版本为1.0,可查看http://www.w3.org/TR/1999/PR-xhtml1-19991210.
3 W3C Working Drafts(工作草案)
W3C working draft 是概念性的,可供人们开始实现。在将标准化为实践的过程中产生的反馈很可能影响内部细节,但不会影响规范的整体轮廓。
---- XSL(ExtensibleStylesheet Language,扩展样式表语言)
XML 标准规定了如何标识数据,而不是如何显示。XSL标准本质上是一个让你指定如何显示一个XML标记的翻译机制(如在HTML中)。可使用不同的XSL格式,为不同用途用不同方式显示同一数据。XSL的翻译部分已非常完善,并有许多实现。然而,XSL的第二部分即格式化对象,也称为对象流,可在一个页面上定义不同区域并将它们联结起来。当一个文本流被定向到集合时,它填充第一个区域,然后当第一个区域填满时"流"到第二个区域。
要进一步了解XSL,可查看http://www.w3.org/TR/WD-xsl.
---- XLL(XML LinkLanguage,XML链接语言)
XLL协议包括两个规范,XLink和XPointer,用于处理XML文档间的链接。这些规范仍处于初级阶段,但肯定将对XML文档的使用产生巨大影响。
Xlink
XLink 处理XML文档间的链接。它允许一些非常复杂的链接,包括双向链接、链接到多个文档、"扩展"链接(将链接的信息插入到你的页面中,而不是用一个新页面来取代它)、在一个独立文档中创建的两个文档间的链接,以及间接链接(可指向一个"地址簿"而不是直接指向目标文档,这样当更新地址簿时,任何使用它的文档都将自动更新。)
要进一步了解XLink,可查看http://www.w3.org/TR/WD-xml-link.
Xpointer
XPointer使用一个文档或文档段的ID(标识符)指向它。
XPointer定义了"在XML文档内部寻址"的机制,而不需要文档作者预先为那一段定义一个标识符。它提供了"元素、符号串和XML文档其它部分的引用,无论它们是否有一个明确的标识符属性。"
要进一步了解XPointer,可查看http://www.w3.org/TR/WD-xptr.
---- XML Schema (大纲)
XML Schema定义一个文档可以包含的元素类型,它们的关系和它们可包含的数据,远远超出了现有DTD规范的方式。尽管DTD使你能够校验XML文档,但它有许多缺点。一个原因在于DTD规范不是分层的。例如对一个包含几个"已析符号数据"( PCDATA)元素的通信地址,它的DTD可能是这样:
<!ELEMENT 通信地址 (名字,地址,邮政编码)>
< !ELEMENT 名字(#PCDATA) >
< !ELEMENT 地址 (#PCDATA) >
< !ELEMENT 邮政编码(#PCDATA) >
可以看到,它是线性的,没有包含,可能会影响名域,使你不得不在不同设置中为相似的元素使用新的名字。另一个问题是不清楚注释解释的范围。另外,它不能使你严格指定域的有效条件,如邮政编码必须是6位数字。因此目前已经提出了许多提案,构造一个更象数据库、指定校验标准的层次化"schema"(大纲)。
可查看:http://www.w3.org/TR/xmlschema-1和http://www.w3.org/TR/xmlschema-2。
4 W3C"Notes"(注释)
"Notes"根本不是W3C 的标准。实际上,它是由不同个人和组织提出的提案。W3C发布它们以供为标准工作的人参考。
---- DDML / Xschema(Document Definition Markup Language / XSchema,文档定义标记语言/XSchema)
象DTD一样的文档定义是很好的,但DTD的语法有些奇怪。DDML 是旧XSchema 提案的新名称,指定了一个XML文档的有效性约束。它是DTD的可能后继者,但最终合法标准是那个还不清楚。
要进一步了解DDML,可查看http://www.w3.org/TR/NOTE-ddml.
---- DCD(DocumentContent Description,文档内容描述)
DCD 提案是一个定义标准XML数据库前段的机制。
要进一步了解DCD,可查看http://www.w3.org/TR/NOTE-dcd.
---- SOX(Schema forObject-oriented XML,面向对象XML大纲)
SOX是一个schema提案,包括可扩展数据类型、名域和嵌入文档。
要进一步了解SOX,可查看http://www.w3.org/TR/NOTE-SOX.
5 其它W3C Notes
其它基于XML的标准提案包括:
---- ICE(Informationand Content Exchange,信息和内容交换)
ICE是一个由内容ICP和它们的订户使用的协议。它致力于"自动化传统出版和企业间关系中的信息(content)交换和重用"。
要进一步了解ICE,可查看http://www.w3.org/TR/NOTE-ice.
6 在XML基础上建立的标准
下面的标准和提案是建立于XML之上的。既然XML基本上是一个语言定义工具,这些规范用它定义特定用途的标准化语言。
---- 扩展文档标准
---- SMIL(SynchronizedMultimedia Integration Language,同步多媒体集成语言,发音为smile)
SMIL是一个关于音频、食品和动画的W3Crecommendation。它也处理同步化这些元素回放的困难问题。
要进一步了解SMIL,可查看http://www.w3.org/TR/REC-smil.
---- MathML(MathematicalMarkup Language,数学标记语言)
---- MathML是一个处理数学公式表示的W3C recommendation。1998年4月7号提出,1999年7月7号修订,目前版本为1.01。要进一步了解MathML,可查看http://www.w3.org/TR/REC-MathML.
---- SVG(ScalableVector Graphics,可缩放矢量图)
SVG 是一个关于矢量图形表示的W3C工作草案。(矢量图形是用"画一条从点x,y到点m,n的线"这样的命令建立的,而不是用一系列比特位去编码图形。这样的图形更容易缩放,但也更花处理时间。)要进一步了解SVG,可查看http://www.w3.org/TR/WD-SVG.
---- DrawML(DrawingMeta Language,绘图元语言)
DrawML是一个关于二维技术图的W3C note。它也处理更新和细化这些图形的问题。
要进一步了解DrawML,可查看http://www.w3.org/TR/1998/NOTE-drawml-19981203.
---- 电子商务标准
cXML(Commerce XML,商务XML)
cXML是一个为不同购买者建立交互在线目录的RosettaNet(www.rosettanet.org)标准,也包含了处理购买订单、改变订单、状态更新和运输通知的机制。
要进一步了解cXML,可查看http://corp.ariba.com/News/AribaArchive/cxml.htm。
---- CBL(CommonBusiness Library,通用商务库)
CBL是一个由CommerceNet(www.commerce.net)维护的元素和属性定义库。
要进一步了解CBL和许多其它有关电子商务应用的信息,可查看http://www.commerce.net/projects/currentprojects/eco/wg/eCo_Framework_Specifications.html.
---- 软件管理和维护标准
---- DMTF (DesktopManagement Task Force,桌面管理特别工作组)
DMTF是一个提出远程管理桌面设备标准的组织。他们计划使用XML维护设备目录和它们的描述,以及其它远程管理任务。
这一组织不是W3C的一部分,但它们的工作看来已到了草案阶段,因此列在这里。
要进一步了解这已组织的相关信息,可查看http://www.dmtf.org/.
---- WebDAV (WebDistributed Authoring and Versioning,Web分布创作和版本)
WebDAV是IETF(Internet工程特别工作组)的一个工作,使用XML维护Web服务器。
它允许一个服务器的内容通过一个HTTP连接创建、修改和更新。(IETF不附属于 W3C,但它们的"草案标准"差不多相当于W3C的"建议",所以列在这里。
要了解进一步信息,可在http://www.ietf.org.查看"webdav"工作组。
XML学习进阶3--XML使用方案
关键词: HTML,XML,SAX,DOM,XSL,DTD,Schema,DCD, RDF,CSS,W3C
摘 要: 可扩展标记语言或者简称XML,是Web应用的一种新技术,是万维网联盟(W3C) 制定的的标准。XML简化了网络中数据交换和表示,使得代码、数据和表示可以分离,可以作为数据交换的标准格式。就这点而言,XML被称为智能数据文档。本文讲述XML使用方案所涉及的内容以及工具。
缩略语清单:
HTML Hyper Text MarkupLanguage
XML Extensible MarkupLanguage
SAX Simple API
DOM Document Object Model
XSL Extensible StylesheetLanguage,可扩展样式语言
DTD Document Type Definition,文档类型声明
DCD Document ContentDeclaration
RDF Resource DescriptionFormat
CSS Cascading StyleSheets
XSLT Extensible StylesheetLanguage Transformations
W3C world Web Consortium,web技术标准化集团
参考资料清单:
参考资料清单 |
|||||
名称 |
作者 |
编号 |
发布日期 |
查阅地点或渠道 |
出版单位 |
Apache XML Project |
http://xml.apache.org/ |
||||
Microsoft Online XML development Centre |
http://msdn.microsoft.com/xml/default.asp |
1 XML使用内容
简单描述XML使用过程中涉及的内容。
数据自我描述:(Defination)
XML
DTD(DCD、Schema)
数据分析:(Parser)
SAX
DOM
数据显示:(Presentation)
XSL(XSLT->HTML、VRML...)
也可以通过数据分析SAX或DOM,然后提交显示界面
2 XML的使用方案
a) 数据自我描述:(Defination)
XML
DTD(DCD、Schema)
一般推荐使用有效的XML,即XML文档严格使用DTD指定的数据结构类型,因为这样能够真正意义上支持数据的自我描述,从而达到通用数据交换的目的。也可以采用Well-Formed良构的方式,但不建议使用无效的XML。
由于XML以及DTD、Schema等均是文本文件,故可以使用普通的文本编辑器,但使用普通文本编辑器时,非常烦琐,比编写HTML文档复杂,所以建议制作XML和构造DTD或Schema时使用XML编辑器,一则编辑方便,二则能够提供一致的数据描述和数据规则。
常见的XML编辑器如:
XML Spy: XML编辑器,提供三种XML文档视图:结构显示和编辑,原码视图和支持CSS,XSL的预览。
Morphon XML Editorv:这是专门用来修改编辑XML文件的工具,提供有预览功能,并确保你的文件有依照DTD(Document Type Definition)的规范。
XMLwriter1.2:支持编写XML,XSL, DTD, CSS, HTML和TXT,转换 XML到 HTML,用 XSL 观察结果,预览 XML文档等等。
CoffeeCup HTML Editor:最好的网页设计软件之一。支持编辑asp、php、xml、xsl等多种最流行的网页文件格式,支持包括JavaScripts、 VBScripts、ActiveX控制、图片功能、色彩向导、多文件支持、全功能FTP程序等等。
HTMLGate2000:该软件包含 51 个 JavaScript、23 个 DHTML Script、28 个 VBScript、Java/VB Script 编辑器、22 个 DHTML 向导。还包含 XML、ASP、HDML、VTHML、Style Sheet、IE 频道编辑器、图形工具、HTML 压缩器、EMAIL 客户端、FTP 客户端、表格编辑器等。
还有许多其他的XML编辑器,大家可以多使用哦。
(以上大多数是shareware,可以到 Http://download.china.com 下栽。)
在数据定义方面,我们可以发明自己的架构,或者共享别的作者创建的架构。我们需要一个寻找关于其他公司和应用程序支持的架构、文档和公司进程的信息的简单办法。有无数的公司可以发布他们的信息,但是缺少如何用安全的、可控的方式来发布这些信息的标准,这势必导致成千上万种不同的执行方法、导航方式和内容深度。允许这种“混乱”状态泛滥的成本负担将波及我们公司,我们将为之付出巨大代价。
Microsoft 选择通过创建和管理 http://www.biztalk.org ( 英文),来最大限度克服此问题。该站点将成长为定位、管理、学习和发布使用在成千上万应用程序中的 XML、XSL 和信息模型的大门。我们可以与之合作,或建立自己的数据构架管理机构。
b) 数据分析:(Parser)
SAX
DOM
一般使用所在系统带的数据分析器,比如在Windows下,只需安装Internet Explorer 5.0以上或下栽Microsoft XML 3包,就可以使用Microsoft的XML分析器了。
对于需要真正的具有原代码的、商用的分析器,推荐使用ApacheXML Project,其中分析器使用了Xerces,它是使用Java, C++的XML 分析程序,随带Perl和COM 捆绑,可以满足我们对XML分析器的要求和程序的移植的要求。 Apache XML Project提供了全套XML数据显示、处理以及应用等的方案,同时是开放代码工程,所有源代码全部公开,请参见http://xml.apache.org/。
Xerces符合XML 1.0建议和对应的标准 ( DOM 1.0, SAX 1.0, SAX 2.0, Namespaces,DOM Level 2)。
Xerces运行平台如下:
Win32 using MSVC 6.0 SP3
Linux (RedHat 6.1) using egcs-2.91.66 and glibc-2.1.2-11
Solaris 2.6 using Sun Workshop 4.2
AIX 4.2.1 using xlC 3.6.4
HP-UX 11 using aCC A.03.13 with pthreads
OS/390
AS/400
SGI IRIX
Macintosh
OS/2
PTX
and more!
如果是Windows用户,推荐使用Microsoft XML分析器;
如果是商用系统,尤其是UNIX下的系统,推荐使用Apache XML Project。
c) 数据显示:(Presentation)
XSL(XSLT->HTML、VRML...)
使用XML编辑器,将对应的标记转换成为HTML、VRML就可以方便地在当前的浏览器上按照要求显示数据,从而在Web客户端形成一个兼容HTML和XML的程序框架。