您现在的位置: 破洛洛 >> 建站学院 >> 网站开发 >> XML教程 >> 正文

关于XML的四个神话

作者:佚名 来源:CNZZ 更新时间:2008-1-3
分享到

 

当XML被W3C批准后迅速在1998年2月进入历史舞台,被称为"当年突然涌现的技术"。它被称为HTML的继任者,还被有些人称为结构化数据交换的未来混合语。
  
  由于XML是从它W3C开始的阴暗处涌现出来的,也许不可避免地,这一新数据格式将象它吸引狂热爱好者一样快地开始产生错误概念。在本专栏中,我将在一些关于XML的神话成为永久性错误理解前澄清它们。   
  
  神话1:XML是由微软领导的共同成果
  
  XML是一个共同成果,但不是微软的。实际上,XML是由一个Sun微系统公司组织的标记语言专家小组提出的,以开发历史悠久的ISO标准SGML用于Web的一种形式。
  
  微软确实是XML工作中的一个主要参与者,但是其它一些大公司也是如此(Sun,惠普,Netscape, Adobe和富士及施乐),还有主要的SGML厂商和系统集成商(ArborText,Inso, SoftQuad,Grif,Texcel和Isogen),学术团体的代表(NCSA和Text Encoding Initiative),早期使用者(DataChannel 和Vignette),和世界上最主要的SGML专家之一James Clark,他是W3CSGML的技术领袖。
  关于XML,令人惊异的是所有这些人和组织都将个人和公司议事日程放在一边,合作建立一个天生开放的标准,完全由用户需求驱动。这些需求包括:
  l 可扩展性,以定义需要的新标记。
  
  l 结构,以表示任意复杂程度的数据。
  
  l 校验,以检查数据的结构正确性。
  
  l 媒体无关性,以用多种格式发布内容。
  
  l 厂商和平台中立,以用标准的商业软件甚至简单的文本工具处理任何满足标准的文档。
  
  虽然我不得不钦佩微软对XML概念的熟练使用和推销,但是XML并不属于微软。XML属于世界。
  
  神话2:XML是HTML的一个扩展
  
  早期对XML的概括已导致许多人相信XML仅仅是一种通过增加新标记来扩展HTML的方法。实际上,XML和HTML在标记语言中处于完全不同的层次。HTML是一种标记语言--一套具有标准意义的标准分隔符,可放到文档中以指示文档中特定部分的角色。例如,在一个HTML文档中<H2>和 </H2>之间的任何东西都被理解为一个第二级文档标题。
  
  标记语言
  
  对标记语言的经验只局限于Web的人们经常惊讶地得知HTML只是许许多多标准标记语言中的一种,这些语言在特定行业内已被开发多年。例如,航空业有一种飞机维护手册的标记语言,称为ATA-2100,半导体行业有一种用于电路数据的标记语言,称为PCIS,而计算机行业有一种用于软件文档的标记语言,称为DocBook。
  
  这些标记语言中有些比HTML使用得更久,其中许多面向的是要解决的问题不同的方面。例如,考虑这段HTML:
  
  <H2>Second-level heading</H2>
  
  这是一段很可能属于上面标题的文本。</P>
  
  一段类似的DocBook可能看起来象这样:
  
  <SECT2>
  
  <TITLE>二级标题</TITLE>
  
  <PARA>这是一段肯定属于上面标题的文本。
  
  我们知道这一点是因为它们都包含在同一个SECT2元素内。
  
  </PARA>
  
  </SECT2>
  
  虽然这些不同的标记语言有它们的不同之处,所有这些,包括HTML,在三方面都是类似的。
  
  l 每一个都定义了一套有标准化含义和标准化使用规则的标准标记--换句话说,一个标准化的语法。
  
  l 每一个都设计为对某一特定类型的文档或数据工作得最好。
  
  l 都使用有12年历史的国际文本处理标准SGML定义它们的标准标记集和语法。
  
  所有这些语言看起来也相似,因为它们都使用熟悉的尖括号,继承自SGML的具体引用句法。
  
  SGML层
  
  根据上面的描述,应该很清楚SGML本身属于一个不同于任何用SGML定义的个别标记语言的概念层,SGML和特定标记语言的区别经常被总结为SGML是一种元语言而不是一种语言。这是一个很不精确的概括。SGML不象真正的元语言那样抽象,如巴克斯/纳尔范式(BNF),它是用于定义程序设计语言的。不过,称SGML为元语言确实使人抓住了关键:SGML不是一种特定的标记语言;它是一种定义标记语言的语言。
  
  理解XML的关键因素是它属于SGML层,而不是HTML层。XML是SGML的一种简化形式,而不是HTML的一种扩展形式。XML和SGML的区别是XML的设计者去除了许多SGML的高级特性

转载请注明:破洛洛(谢谢合作)
网友评论: