(这条文章已经被阅读了 0 次) 时间:2001-11-05 21:50:02 来源:postbb (postbb) 收藏
什么是XML
Author :Norman Walsh
October 03, 1998
Translator: Anping Qiao
November 05, 2001
XML是一种标记语言。
结构化的信息中包含了一些内容(例如文字,图片等)和一些指示出内容的重现手段的标记(例如,在一个章节头部的信息和其脚注处的信息是有不同含义的。)所有的文档都有不同的结构。一种标记语言,是定义文档结构的机制。XML规范定义了一个对文档进行标记的标准。
什么是文档(Document)
当前在XML基础上进行的开发或应用的总数,是非常令人吃惊的(XML开始应用也不过是一年左右的时间,注:该文写于1998年)。在我们的所描述的意图中,单词”Document” 并不单指传统的文档,同样也有”数据格式”的语意。他包括向量图,电子商务处理数据,数学方程式,对象附加数据,服务器APIs,以及数千种结构化信息。
为什么XML与HTML如此相象?
非也。在HTML中,标记符号的语意和标记设置是固定的。例如,
标记总是处于最顶级的头部,标记
对于需要广泛发布信息的人来说,在页面中加入新的标记的就需要浏览者使用最新版本的Netscape或者Internet Explorer浏览器,这也是得不偿失的。
XML既不固定标记符号的语意,也不固定标记的设置。实际上,在描述性的标记语言中,XML才是一种真正的向后兼容的语言(Meta-language)。另一方面,XML提供了定义标记和结构关联的灵活手段。当我们不需要预先定义标记设置时,也就不需要考虑其语意。一个XML文档的全部标记的语意来自于处理他的应用程序或者是样式表的定义。
为什么XML与SGML如此相象?
实际上,XML被定义为SGML的一个应用子集。SGML是ISO8879规定的通用标记语言标准。SGML从被确立为标准起,十几年来不断完善,但是由于过于复杂,在Web上却没有适合其标准的文档。既然XML被定义为SGML的一个子集,那么任何具有完整构造的SGML系统都能够阅读XML文档。反之,阅读一个XML文档倒不需要系统具有SGML的完整构造。XML也可以被看作一个有限的SGML集合。对于纯技术主义者来说,这是一个非常值得注意的重点,一个十分微妙的区别。
为什么选择XML?
为了正确的理解XML。理解他为什么被创造是十分重要的。XML被设计成一种结构丰富的文档,所以能够在Web上四处应用。在此之前,我们仅有两种选择,一种是HTML,一种是SGML。
对于HTML,我们已经讨论过了,他的固定语意的标记不能够提供良好的文档结构。而SGML虽然能够提供良好的结构,但是相对于一个浏览器来说,未免显得过于过于复杂,实施起来也很麻烦。一个完整的SGML系统相当庞大,需要解决的各种复杂问题带来了很高的成本。处理在Web中传送的结构化文档需要一种小巧灵活的机制。
当然这也并不意味着,XML一定能按照预期中那样全面的替代SGML。XML被设计为在Web上传递结构化的内容,对于一些其他方面的应用,SGML依然是最合适的解决方案,例如创建并长时间储存一些结构混杂的的文档。在许多组织机构中,筛选SGML来生成XML已经成为标准的Web传输方式。
XML的开发目标
XML规范展示了如下的目标:
1. 在Internet上直接使用XML。用户能够象使用HTML文档那样快速而简单的打开和浏览XML文档。在实际应用中,只有当XML浏览器象HTML浏览器那样被大量广泛的使用时,才能达到这个目标。
2. XML应该支持非常广泛的应用,XML能够在:著作,浏览,内容分析等等领域发挥巨大的作用。当初仅因为需要在Web上传送结构化文档而定义XML的想法到显得十分的狭隘了。
3. 由于XML可以兼容SGML,所以很多人用他来处理那些来自于组织机构中十分庞大、烦琐,原本需要SGML来处理的信息。XML被设计的很实用,能够兼容已经存在的标准,并且能够解决在Web中传输结构化文档的新问题。
4. 计算机程序能够很处理的处理XML文档。说得比较通俗一点,任何一个能力相当于计算机系毕业的学生的程序员,都只需要大概两个星期就能编制一个处理XML文档的程序。
5. 在XML中,随意数值保持足够的小,理想上是0。随意特征不可避免的带来兼容性的问题,以至于用户在共享文档时会出现失败的情况。
6. XML文档应该保持可读性和一定的清晰程度。如果你没有XML浏览器,或是你从什么地方接受到一个篇幅巨大的XML文档,你也能够通过常用的文字编辑器来阅读他,并且了解大致的意思。
7. XML的设计应该很快就准备好。通常一个标准的产生需要很长的时间。XML需要能够尽快的被开发出来。
8. XML的设计应该是结构合理而简洁的。可以用很多种办法实现上面的第4条所提到的目标,归根结底来说,XML应符合EBNF(Extended Backus-Naur Form)的表述规范,并遵从现代编译工具和方法来实现。 从很多点上可以说明SGML的语法是不符合EBNF的表述规范的,写一个合适的SGML解析器需要处理繁杂而少见的工作,而且难以解析语言的特性,XML不应该如此。
9. XML文档应该是易于创建的。尽管最终需要使用专用的编辑器来创建和修改XML内容,但是那并不是很紧迫的。在中间过渡期,我们可以选择一些其他的方法来创建XML文档:例如直接用手写板生成,或者是使用简单的Shell和Perl脚本来生成,等等。
10.XML标记的简练是其最大的价值所在。XML并不支持SGML中一些功能强大的特性,但这些特性也使得SGML解析器增加额外的负担。
XML是如何定义的?
XML定义了一系列的相关标准:
扩展标记语言(XML)1.0
XML指针语言(XPointer)和XML链接语言(XLink)
扩展样式语言(XSL)