湖北织布局的产量:什么是XML文档

来源:百度文库 编辑:高考问答 时间:2024/05/11 17:51:49

所谓的xml,就是eXtensible Markup Language, 翻译成中文就是“可扩展标识语言“,在国内很多人理解xml为html的简单扩展,这实际上是一种误解。尽管xml同html关系非常密切。
XML与SGML、HTML的关系。
SGML、HTML是XML的先驱。SGML是指“通用标识语言标准”(Standard Generalized Markup Language), 它是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结构,主要用于大量高度结构化数据的防卫区和其他各种工业领域,利于分类和索引。同XML相比,定义的功能很强大,缺点是它不适用于Web数据描述,而且SGML软件价格非常价格昂贵。 HTML相信大家都比较熟悉,即“HyperText Markup Language” (超文本标识语言),它的优点是比较适合web 页面的开发。但它有一个缺点是标记相对少,只有固定的标记集如<p>.<strong>等。缺少sgml 的柔性和适应性。不能支持特定领域的标记语言,如对数学、化学、音乐等领域的表示支持较少。举个例子来说,开发者很难在web pape 上表示数学公式、化学分子式和乐谱。
Xml 结合了sgml 和html的优点并消除其缺点。Xml 仍然被认为是一种sgml语言。比sgml要简单,但能实现sgml的大部分的功能。1996年的夏天,Sun Microssystem的John Bosak开始开发W3C SGML工作组(现在称为xml工作组)。他们的目标是创建一种sgml,使其在Web中,既能利用Sgml的长处,又保留html的简单性。现在目标基本达到。
二、Xml 的发展。
在专业领域中,出现了Web标记语言的许多项目,著名的有CML—化学标记语言,由Peter Murray_Rust 开发,同时开发了第一个通用xml 浏览器Jumbo . 在数学方面,包括IBM公司再内都在致力开发MathML 1997年四月,出版了xll的第一个版本。当xll完整实现时,将比html 和当前浏览器所达到的链接水平更复杂,更强大。1997年8月,Microsoft公司和Inso公司引入xsl.由于xml是纯结构和语义的,需要描述单个元素格式方法。可以使用html的CSS;另一种方案是xsl. 1998年1月,microsoft 公司出版发行了msxsl程序。可以利用xsl表和xml文档创建能被IE4 识别的html页面。1998年2月,W3C发布了xml1.0的正式版本。最近一年多来,由于网络应用的飞速发展,xml的发展非常迅猛。出现了DOM(Document Object Model),XSLT(XSL Transformation)等新名词,xml的应用软件也有了飞速的发展,Microsoft、IBM、Breeze、Stilo等公司纷纷推出了自己的或解析器,或开发平台。在MicrosoftIBM、HP等大公司的推动下,目前有两个著名的xml的研究组织,分别是biztalk.com和oasis.org,由他们向W3C提出标准的建议。其中biztalk是有Microsoft牵头组织的,有趣的是Microsoft公司同时参加了oaisis,不过不同于IBM、HP等著名大公司,他的年费只交10万美元,用Microsoft发言人的话就是“一切视oasis的发展而定!“,言下之意就是如果oasis制定的标准抵触Microsoft的应用,一场标准大战不可避免。
什么是XML
首先XML是一种元标记语言,所谓“元标记”就是开发者可以根据自己的需要定义自己的标记,比如开发者可以定义如下标记<book> <name>,任何满足xml命名规则的名称都可以标记,这就为不同的应用程序打开了的大门。HTML是一种预定义标记语言,它只认识诸如<html>,<p>等已经定义的标记,对于用户自己定义的标记是不认识的。 第二xml是一种语义/结构化语言。它描述了文档的结构和语义。举个例子,在和html中,要描述一本书,可以如下表示:
<dt> book name
<dd> author_name <ul> <li>publisher_name ;;;; <li>isbn_number <ul> 在xml中,同样的数据表示为 <book> <title>book name</title> <author>author name</author) <publisher> publisher name</publisher> <isbn>isbn_number</isbn> </book> 从上面的对比,可以看出,xml的文档是有明确语义并且是结构化的。 XML是一种通用的数据格式从低级的角度看,xml是一种简单的数据格式,是纯100%的ASCII文本,而ASCII的抗破坏能力是很强的。不象压缩数据和java对象,只要破坏一个数据文件数据就不可阅读。 从高级的角度看,是一种自描述语言。
XML可利用于数据交换 主要是因为XML表示的信息独立于平台的,这里的平台即可以理解为不同的应用程序也可以理解为不同的操作系统;它描述了一种规范,利用它Microsoft的word文档可以和Adobe 的Acrobat交换信息,可以和数据库交换信息。
XML表示的结构化数据。
对于大型复杂的文档,xml 是一种理想语言,不仅允许指定文档中的词汇,还允许指定元素之间的关系。比如可以规定一个author元素必须有一个name子元素。可以规定企业的业务必须有包括什么子业务。
XML文档。 XML文档有DTD和XML文本组成,所谓DTD(Document Type Definition ),简单的说就是一组标记符的语法规则.,表明XML文本是怎么样组织的,比如DTD可以表示一个<book>必须有一个子标记<author>, 可以有或者没有子标记<pages> 等等。当然一个简单的XML文本可以没有DTD。下面是一个简单的xml文本。 <? Xml version=”1.0” standalone=”yes”> <book> haha </book> 其中以?开始并结尾的是进程说明。Standalone表示外围设备。这里外围设备可以理解为该XML文本没有应用其他的文件。因为XML文件可以外部应用DTD等外部数据。
XML 涉及的一些技术。
XSL和CSS。
通过前面的介绍可以知道,XML可以定义信息的内容,却没有定义信息该如何表达,这实际上就是XML的长处,它把内容和形式分离了,这样同一个内容可以有不同的表达,相信随着XML应用的提高,那种“建议你使用800x600分辨率“的会消失。而XML内容的表达就是通过XSL(XML Style Language)和CSS(Cascading Style Sheets 层叠样式表)来实现。拿前一个例子来说,可以为该xml文档定义的样式表(XSL)如下: <xsl> <rule> <root/> <H1> <children/> </H1> </rule> <xsl> 这就是一个简单的 XSL文件,利用msxsl可以生成html文件。如下 <h1> haha </hi> 至于CSS,在HTML文件中就已经有它的影子了,例如 H1 { font-size: 12pt; font-weight: bold; } 这就是一段简单的CSS的文本。
XML Schema 尽管DTD给标记的使用加了限制,但是对于XML的自动处理却还需要更加严格更全面的工具。比如DTD不能保证一个标记的某个属性的值必须不为负值,于是出现了XML Schema,由于XML Schema(不同于DTD)本身也是一个正规的XML文档,因此开发者可以使用相同的工具处理其同其他的XML的信息交换。最初XML Schema由Microsoft提出,W3C 的专家们经过充分讨论和论证,在1999年的2月,发布了一个需求定义,说明Schema必须符合的要求,5月,W3C完成并发布了Schema的定义。目前,IE5中的XML解析器能够根据文档类型定义(DTD)或XML Schema解析XML
关于DOM DOM即Document Object Model, 它把XML文档的内容实现为一个对象模型,简单的说就是应用程序如何访问XML文档,W3C的DOM Level 1 定义了如何实现属性、方法、事件等。
关于XSLT XSLT即XML Stylesheet Language Transformation. 在写本文时正式标准还没有正式形成,在1999年的11月通过了《XSLT》。XSLT是一种用来进行XML文档间相互转化的语言。简单的说,我们知道不同的开发者对于各自的应用会用不同的XML文档,利用XSLT我们可以从一个已经定义的XML文档抽取我们需要的数据,组成不同的形式,可以是XML, HTML和各种不同的SCRIPT。
关于Xpointer和Xlinks
类似于HTML中的Hyper Link. Xpointer 和Xlink用于联结其他的XML文档和其他XML文档中的部分,其中Xpointer相当于HTML中用于定位HTML文档子内容的锚!不过其联结水平更强大。比如,在bookstore中,可以定位到有一个作者叫金庸,书中有四大恶人的那本书,在HTML中,这是不可能实现的。
当然,XML的发展促使了许多的新技术的出现,其他的还有RDF、Xfrom等等,其中的大部分W3C只是给出了建议,还没有形成正式的标准,有些内容甚至还处于讨论阶段。我们将密切注视着方面内容的变化。
XML 框架
所谓框架即Framework。XML是一个通用的标准。它不属于个人,认证它的也不是一家公司,而是W3C。那么为什么那么多的大公司纷纷趋指如鹜呢?各家公司互相竞争的是它的framework, 是它的Schema. XML framework是驾驭XML文件的结构,是一种高层次的结构控制。利用XML framework,可以把商业逻辑(business logic)分离出来,实现数据与计算的分离。目前著名的framework有Microsoft的Biztalk 以及联合国(UN/CEFACT)和OASIS联合于99年底推出了EBXML动议。相信在不久的将来会有许多的Framwork. 其中的一个问题就是在W3C中关于XML的很多东西还处于建议的时候,就推出framework,是不是一种冒险。不过,互联网的发展似乎就是这样,关于framwwork的发展,我们将拭目以待

XML:Extentsible Markup Language(可扩展标记语言)的缩 写,是用来定义其它语言的一种元语言,其前身是SGML(标准通用标记语言)。它没有标签集(tag set),也没有语法规则(grammatical rule),但 是它有句法规则(syntax rule)。任何XML文档对任何类型的应用以及正确 的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠倒的标签,并且在语句构成上应符合技术规范的要求。 XML文档可以是有效的(valid),但并非一定要求有效。所谓有效文档是指其符合其文档类型定义(DTD)的文档。如果一个文档符合一个模式(schema)的规定 ,那么这个文档是"模式有效的(schema valid)"。

XML是计算机系统之间交换数据的增长很快的标准,微软采用这种版权语言(或称标准)来描述微软许多应用程序的XML数据。

正象HTML一样,可扩展置标语言XML(eXtensible Markup Language)也是一种置标语言。它同样依赖于描述一定规则的标签和能够读懂这些标签的应用处理工具来发挥它的强大功能。这一点,从XML的命名上也可窥见一斑。

“关于此规范的正确题目,亦即XML的正确全名,应该是Extensible Markup Language, eXtensible Markup Language只不过是一个拼写错误罢了。但是,现在简写XML不仅正确,而且正如它在本规范的标题中一样,是Extensible Markup Language的官方名称。
这个名称和简写是由James Clark最先提出的,其它可供选择的名称还包括小型标准置标语言MGML (Minimal Generalized Markup Language), 标准置标语言的小型结构MAGMA (Minimal Architecture For Generalized Markup Applications), 以及互联网置标结构语言SLIM (Structured Language for Internet Markup)。

——Extensible Markup Language (XML) 1.0 Specs, The Annotated Version. ”

从对XML的最初命名可以看出,XML的核心归根结底还是置标。不过,XML这个置标语言可比HTML的功能要强大的多了。

“人”如其名,XML的强大功能来自于“X”。也就是说,XML不但是置标语言,而且是可扩展的(eXtensible)置标语言。XML并非象HTML那样,提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这个标准,你可以根据实际需要定义自己的新的置标语言,并为你的这个置标语言规定它特有的一套标签。准确的说,XML是一种源置标语言,它允许你根据它所提供的规则,制定各种各样的置标语言。这也正是XML语言制定之初的目标所在。

“XML的制定目标为:
XML应该可以在互联网上直接使用(*就象HTML那样好用)。
XML应该支持各种不同的应用方式(*不但包括浏览,还包括对内容的分析)。
XML应该与SGML兼容(*子承父业嘛,后面我们会讲到,SGML是XML的直接先驱)。
处理XML文件的应用程序应该容易编写(*计算机系的研究生花上两周的工夫就该差不多了)。
XML中的可选特性的数量应该减到最小,最好减至没有(*可选特性经常造成混淆)。
XML文件应该具有良好的可读性,并且比较清晰(*别象HTML那样,如果不借助浏览器,要想读它简直就是对你意志力和耐心的考验)。
用XML设计新的置标语言应该方便快捷(你不必再去经历标准制定的繁琐程序了)。
XML设计的置标语言应该正式、简洁(不然怎么易写易读?)。
XML文件应该容易编制(想想要用“记事本”写个HTML是一件多么可怕的工作)。
XML标记的简洁性并不重要(你不必再去费尽心机减少标记)。
——Extensible Markup Language (XML) 1.0 Specs, The Annotated Version.”

让我们来考虑一个非常简单的例子。如果我们需要定义一个新的置标语言,叫做FCLML(F_company s Client List Markup Language)——F公司的客户列表置标语言。这个语言应该定义一些标签来代表可联系的客户和有关他们的信息。这组标签很简单,它们的优点是代表了一定的语意。让我们回想一下上一节中这些信息在HTML中是如何用标签〈UL〉和〈LI〉表示的。与之相比,下面这一段代码,显然更加清晰易读:

<联系人列表>
<联系人>
<姓名>张三</姓名>
<ID>001</ID>
<公司>A公司</公司>
<EMAIL>zhang@aaa.com</EMAIL>
<电话>(010)62345678</电话>
<地址>
<街道>五街1234号</街道>
<城市>北京市</城市>
<省份>北京</省份>
<ZIP>100001</ZIP>
</地址>
</联系人>

<联系人>
<姓名>李四</姓名>
<ID>002</ID>
<公司>B公司</公司>
<EMAIL>li@bbb.org</EMAIL>
<电话>(021)87654321</电话>
<地址>
<街道>南京路9876号</街道>
<城市>上海</城市>
<省份>上海</省份>
<ZIP>200002</ZIP>
</地址>
</联系人>
</联系人列表>

这一段代码是一个非常简单的XML文件。看上去它和HTML非常相象,但细心的人会发现这里的标签代表的不再是显示格式,而是对于客户信息数据的语意解释。

事实上,用XML定义的置标语言可以根据标记描述的侧重点不同分为两大类。一类偏重于语意描述,正如上面这个例子。还有一类偏重于显示方式的描述,象现在已经出炉的XHTML、SVG、SMIL,后面我们还会详细讲解。值得一提的是,这里对于显示方式的描述不仅限于对文本的描述,还可以包括矢量图形、图象、声音。比如,一个形如〈EMPHASIZE〉的标签在描述文本时可能是要求将文本加粗,而在描述声音时则要求将音量加大。

不过,正如我们上节所述,仅仅将数据置标还不够。为了让别人读懂这些数据,置标语言中的置标标准还需包括:

置标的语法
每个置标的含义
换句话说,如果想让计算机应用程序读懂并能处理这段数据,它还必须知道什么是一个有效的置标(如标签),如何处理一个有效的置标。具体地说,Netscape浏览器如何知道怎样显示上面的这段XML文件?标签〈电话〉是什么含义?它究竟是不是一个合法的标签?它又应该以什么方式表现?因此,我们的置标语言必须能够告诉应用程序它所采用的置标的语法,以便于应用程序对其处理。

在XML中,置标的语法是通过文件类型定义DTD(Document Type Definition)来描述的。也就是说,我们通过DTD来描述什么是有效的标签,从而进一步定义置标语言的结构。在用XML定义的置标语言中,DTD与数据文件是分离的部分。第三章我们将详细讨论DTD的定义方法。这里我们先给出关于上例的DTD描述,让大家先睹为快:

fclml.dtd:
<?xml version="1.0" encoding="GB2312"?>

<!ELEMENT 联系人列表 (联系人)*>
<!ELEMENT 联系人 (姓名,ID,公司,EMAIL,电话,地址)>
<!ELEMENT 地址 (街道,城市,省份)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT 公司 (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT 电话 (#PCDATA)>
<!ELEMENT 街道 (#PCDATA)>
<!ELEMENT 城市 (#PCDATA)>
<!ELEMENT 省份 (#PCDATA)>

同样,除了定义置标的语法外,我们还需定义置标的具体含义。为了明确各个标签的意义,XML使用与之相连的样式单(style sheet),由它来向应用程序,比如浏览器,提供如何处理显示的指示说明。一个样式单的具体格式我们在第四章再具体描述,现在我们只需知道,样式单所作的规定可能是这样的:

每当看到一个〈联系人〉标签,用一个〈UL〉标签显示它。同样,〈/联系人〉转换为一个〈/UL〉标签。
所有的〈姓名〉标签被转换为〈LI〉标签加以显示。同样,〈/姓名〉转换??LI〉标签。
所有的〈EMAIL〉标签被转换为〈LI〉标签加以显示。同样,〈/EMAIL〉转换为〈/LI〉标签。
等等...

在这个样式单的例子中,我们使用HTML的标签功能来定义我们的FCLML的显示格式。但如果XML文件不是由浏览器,而是由其它应用程序来进行处理,我们可能采用其它相应的标签。

于是乎,我们的应用处理程序要综合DTD,样式单以及FCLML文件数据三方面要素,根据这些数据和规定来显示它。

看到这里,你可能会长叹一声:这不是越来越复杂了吗?原先只要一个HTML就能把数据和显示方式都包括进去,现在我们需要FCLML文件,DTD,样式单——总共三个文件!这还不算,我们需要一个处理工具把DTD、样式单、FCLML三者合一。别忘了,浏览器只是用来处理一种特定的置标语言(比如HTML)的,而不是用来处理所有置标语言的。这说明我们不但要把三个文件合一,还要制作或购买一个新的应用处理程序。太恐怖了!

“一个被称作XML处理器的软件模型应该能够读入一个XML文件,并解释其内容和结构。XML处理器是基于另一个称作应用的模型来进行这种处理的。
——Extensible Markup Language (XML) 1.0 Specs, The Annotated Version”
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
RSS (Really Simple jkndication) 是一种用于发布和获取网络内容(例如头条新闻)的XML格式。使用RSS阅读器来阅读,你可以不用一个个去开页面,也能够很快地知道关注网络内容更新了没有。
目前RSS有多个版本,如:0.90、0.91、0.92、0.93、0.94、1.0 和 2.0,而应用最广泛的有RSS 1.0 和 RSS 2.0 两个版本

XML是EXtensible Markup Language的缩写

XML是一种类似于HTML的标记语言

XML是用来描述数据的

XML的标记不是在XML中预定义的,你必须定义自己的标记

XML使用文档类型定义(DTD)或者模式(Schema)来描述数据

XML使用DTD或者Schema后就是自描述的语言

XML和HTML的主要区别是什么

XML是用来存放数据的

XML不是HTML的替代品,XML和HTML是两种不同用途的语言。

XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。

HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。

HTML是与显示信息相关的, XML则是与描述信息相关的。
更多……请浏览参考资料