2007-02-27

关于XML的四个神话

来源: IT专家网社区 作者:佚名 评论 0 条
 

  所有这些语言看起来也相似,因为它们都使用熟悉的尖括号,继续自SGML的具体引用句法。

  SGML层

  根据上面的描述,应该很清楚SGML本身属于一个不同于任何用SGML定义的个别标记语言的概念层,SGML和特定标记语言的区别经常被总结为SGML是一种元语言而不是一种语言。这是一个很不精确的概括。SGML不象真正的元语言那样抽象,如巴克斯/纳尔范式(BNF),它是用于定义程序设计语言的。不过,称SGML为元语言确实使人抓住了要害:SGML不是一种特定的标记语言;它是一种定义标记语言的语言。

  理解XML的要害因素是它属于SGML层,而不是HTML层。XML是SGML的一种简化形式,而不是HTML的一种扩展形式。XML和SGML的区别是XML的设计者去除了许多SGML的高级特性,这些特性使得难以在一个Web浏览器中实现一个SGML的完全解析器。

  但是基本思想是一样的:XML是一种答应创建无限种不同用途的不同标记语言的技术。XML的要害--和它变得如此普及的原因--是所有可用它定义的不同的非凡用途语言都能被一个标准化的处理程序解析,这一程序小得可以内嵌入每一个Web浏览器中。

  不理解这一区别的人们往往得出一个结论,认为一个对XML敏感的应用将答应他们简单地在他们的HTML文档中到处撒上新的标记。试图用这种方式"扩展"HTML将使我们已得到的一团糟更加混乱。

  神话3:XML可以自己驱动Web浏览器

  记住HTML概念是一种包含相对小标准标记集的标记语言,与一些多少标准化的行为相关。XML概念是一个无限大的可能标记的集合,相关的行为根本没有标准。行为的规范必须来自其它某个地方。在发布时,这通常是一个样式表,但是在其它领域可以象JavaBeans一样柔性,或者象一种行业标准协议一样专门,程序员在其上编写标准化应用。

  句法不是语义

  XML支持者将这一点总结为XML定义句法而不是语义。一些理论家则反对说这一简单化的表述忽视了XML句法对象和构成它们所表示的XML数据(如元素和属性)的语义联系。然而,"句法而非语义"这一口号试图强调的更多,更简单:不像HTML标记,XML标记没有预定义的含义。意义或行为必须由以程序的运行条件或者脚本或者用样式表的声明条件甚至古老而好用的普通文本提供。

  当预期的XML用户可怜地询问XML如何在他们的Web浏览器上显示时,关于这一点的混淆就很明显了。回答是它并不显示--至少不是靠它自己。

  要在一个浏览器内仿效现在对HTML所做的,你必须单独提供HTML作为一个整体但是难以治理的整体所提供的:你必须提供一个文档的内容(在XML中表示)和对它的处理,而这必须用程序定义(用脚本)或者声明它(用样式表)。

样式表

  当前缺乏一种既使对于XML也足够强大同时又易于使用的样式表语言,这阻止了XML作为Web文档的普遍使用。为HTML开发的样式表语言层叠样式表(CSS)可用于为XML文档应用样式,但它不具备基于XML发布通常所需的转换和生成结构(例如目录)的能力。

  文档样式语义和规范语言(The Document Style Semantics and Specification Language)--为SGML设计的ISO样式表语言--具有高级发布项目所需的功能。但是DSSSL(与"whistle"同韵)有一个基于模式(Scheme)程序设计语言的句法,许多人会发现很难学习。它也缺乏一个丰富的声明层,这使得几乎不可能保证独立开发的样式表编辑器能互操作。

  这正是扩展样式语言(XSL)的切入点。作为一开始的XML大计划的一部分,XSL是一种新的语言,将结合DSSSL的功能和XML的简单性以及层叠样式表已建立的"样式属性"术语。1998年1月建立的一个W3C XSL工作组正忙于定义这一使基于XML的Web发布成为可能的语言。

  虽然一个最终的XSL规范还需要几乎一年时间,第一个XSL工作草案现在已经在W3C Web网站上发布了,网址是http://www.w3.org/TR/WD-xsl。随着它的进入新世纪,这一初期规范值得任何想进行电子发布的人审慎眼球。
共3页: 上一页 [1] 2 [3] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:php分别做为cgi和module来运行的配置  
下一篇:在PHP中利用XML技术构造远程服务
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号