凡是浏览过网页的人,想必都知道HTML。正是HTML的出现,才会有Internet丰富多彩的今天。
HTML江郎才尽,电子商务呼唤春天
HTML(Hyper Text Markup Language,超文本语言)是W3C公司开发的Web语言。由于HTML简单易用,而且使用成本低,所以很快就受到人们的关注,并成为Internet上的标准Web语言,一直延用至今。
HTML的受重用程度在当时的Internet来说是可以理解的。因为当时的电脑技术较低,浏览器根本不可能解释更为复杂的Web语言,在这种情况下,Html在功能上基本地很好满足当时的需求。国外的许多大型企业, 迅速地建立起自己的网站,展示自己的产品(或服务)、企业管理、企业文化等,然而仅仅是为了展示而已。企业的经理们并没有想到,Internet的发展会如此之快,更没有想到的是出现“电子商务”浪潮,Internet走进了经济时代。
近年来,随着 Web的应用越来越广泛和深入,人们渐渐觉得HTML不够用了,HTML过于简单的语法严重阻碍了用它来表现复杂的形式。尽管HTML推出了一个又一个新版本(最新版本是1999年发布的HTML4.0),但始终满足不了不断增长的需求。
电子商务的出现,企业与企业在Internet上频频碰面,企业间的交流越来越重要,彼此数据交换的需求越来越大,然而,HTML过于简单的语法,有限的标签严重地制约着企业通过Web进行数据交换。虽然人们想通过对HTML进行升级来满足企业的需求,但是由于HTML开发之初“有限标签”的本质没能改变,即使新版本的HTML也没能解决需求问题。人们急需一个行而有效的方案来解决html的缺陷,满足电子商务的发展。
近年来,随着计算机技术的火箭式发展,已经可以实现比html开发之初复杂得多的浏览器,计算机硬件也能处理更为复杂的程序,因此,开发一种新的Web语言既是必要,也是可能的……
W3C公司开发的XML便是在这种需求声中闯进Web世界。XML作为新一代Web语言,将革命性地改变以Web为基础的电子商务应用形态,因为XML为网页编辑上的可携性及平台独立性、系统的兼容性、数据交互性、资源的整合和物流管理等等的电子商务应用,提供了完整的解决方案。
SGML、HTML、XML的亲缘关系
其实,早就有这么一个全世界标准的标记语言,可以用来定义某一类文件格式标志,解决HTML的困惑,那就是SGML(标准通用标记语言)。它是一个国际标准(ISO 8879),用来形容和定义结构化的电子文件,在1980年就制订了。不过,由于SGML过于详细和复杂,所以一直没有被广泛地采用。
国内知道SGML的人恐怕不多,这也并不为奇,因为SGML在我国并未得到广泛的应用,尽管出版界人士对SGML并不陌生。事实上,在国外GAML的应用已经渗透到各个领域,如瑞士的欧洲原子核共同研究所,牛津大学出版社,美国证券委员会,美国国防部等均应用了SGML进行信息数据交换或印刷出版。
SGML是一种处理电子化文档的计算机语言,作为ISO8879号标准,它独立于任何计算机和系统,它所采用的文档的表现形式是为了使其能被多角度地利用和保证文档在异种机之间的交换。
这些年来,SGML在中国渐渐地受到重视,国家图书馆的一批有识之士正致力于促进我国SGML的应用,除出版行业外,SGML成功地应用于数字图书馆的研究中,正受到举世瞩目。
虽然SGML具有将文件以对象(Object)方式进行处理等优点,理论上来说可以弥补html的缺陷。但是由于它的开发早于Web的诞生,在Web环境下的应用产生了诸如○1SGML标准过严、过复杂○2SGML不支持链接标准○3SGML不支持排版方式等根本性问题,使得SGML直接应用于Web的难度非常大。
HTML是一种标记语言,也可以说是一种格式化文件(通过标签来格式化文本),因为,HTML是在SGML标准的基础上开发出来应用于Web的语言。
当我们浏览(浏览器为微软IE)一个网页时,通过子菜单栏的查看\源文件可以查看该Web页的源代码。源代码中我们可以发现HTML是由<HTML>、<TITLE>、<BODY>、<TABLE>等许许多多的标签组成的,浏览器在解释网页时在源代码前部分发现<HTML>标签便会以HTML标准解释文件,将HTML的内容显示于屏幕上。
<HTML>
<HEAD>
<TITLE>这是一个HTML文档</HTML>
</HEAD>
<BODY BGCOLOR=”#FFFFFF”>
<H1>通过标签显示内容</H1>
</BODY>
</HTML>
由以上的代码段可知,Web的内容便是通过HTML标签的属性或标签对间的文字表示出来的,如:<BODY BGCOLOR=”#FFFFFF”>、<TITLE>这是一个HTML文档</TITLE>,浏览器正是通过解释HTML这些有限标签的代码,使Web变得丰富多彩。
HTML简单易用,由于它的语法简单,很容易开发HTML的编辑软件。但它的最大限制也在于它过于简单的语法及有限的标签机制,使得HTML在应用范围内受到限制主要有:
1、可用标签种类有限,不能精确了描述信息;
2、数据格式不能表现其内在意义;
3、不能表现深层的信息结构,因此不适于大量文档的存储;
4、除去电子阅览,将HTML用于其它领域应用时,机能欠佳;
5、HTML的信息表现形式不适于再利用;
6、不齿印刷页的概念;
7、精细的编排指定不可能;
8、全文检索的结果不精确;
9、HTML和Web浏览器的机能强化的结果,造成了Web浏览器间互换机能的部分消失;
由于HTML有限的标签,使得其只能从形态上表示内容,而在意义上表现内容方面显得无能为力。例子HTML代码中的:<P>100</P>只能解释成数字100,但是究竟是指100个人,100吨,100元呢,却不得而知了。但Internet上的电子商务的电子数据是有意义的,¥RMB100与$100在数值上是一样的,但在意义上却有天渊之别,企业间的数据共享及数据交换必须从意义上区分开这些数据。因此,在企业通过Internet频繁交往,数据交换需求不可压制的电子商务时代,由于HTML本身的缺陷,穷其所能也只是能实现“数字的交换”而非“数据的交换”。
XML——未来网络的基磐技术
就在HTML江郎才尽之时,新一代Web的基磐技术——XML诞生了。
1996~19976年,W3C公司(World Wide Web Consortium,WWW联盟)开发了XML(Extensible Markup Language,可扩展标记语言),并于1998年2月正式发布了XML1.0版本。尽管XML作为一种技术得到广泛认可,但W3C是一个备受关注的组织,它吸收了主要的软件厂商和研究机构作为成员,为避免美国法律的反竞争诉讼,W3C将这些充分审核过的技术文档作为推荐文档而不是强制标准。
HTML是SGML在Web上的一种应用,XML即是从SGML孕育出来的最优秀的子女。XML是SGML的一个子集,所以XML继承了SGML多数功能,也继承了SGML的元语言的特征。也就是说,XML作为应用语言既可以在Web直接利用,又可用于开发应用语言,而且更优越于SGML。XML是以Web利用为前提,以解决HTML缺陷为目的,对SGML进行机能的扩张,并删掉和变更了SGML中一部分影响其实用化的机能。所以XML以20%的SGML难易度实现了SGML80%的机能。
XML主要设计目标是:
1、能够在Web上直接利用;
2、广范围应用程序的可利用性;
3、尽量保持和SGML的互换性;
4、处理XML的程序可简单地编写;
5、XML的文档要具有较高的可读性;
6、严密但并不复杂的规则;
7、去掉选定Option机能,减轻应用程序的处理负荷;
8、不把标签数量的减少作为重要的工作。
XML中的X——Extensible的中文解释为“可扩展的”,这是XML优越于HTML最大的地方——允许用户建立自己的标签,而不是使用某些固定的有限的标签!
<?XML VERSION=”1.0” ENCODING=”GB2313”?>
<书店>
<图书>
<书名 类型=”经济”>西方经济学</书名>
<价格 币种=”人民币” 单位=”元”>60</价格>
<作者 国籍=”中国”>高鸿业</作者>
<ISDN>7-300-00337/F-991</ISDN>
<出版社 年份=”2000年2月” 版次=”第二版”>中国人民大学出版社</出版社>
</图书>
</书店>
如上是一个简单的XML文件源代码。很明显的可以看出它的宣言跟HTML的不一样,支持用户自由建立标签及其属性,并且支持中文标记。
为了填补HTML的缺陷,从意义上描述电子数据,XML沿袭了SGML的用户自由定义标签的机制。因此,XML表示电子数据内容时更为直观有效,并能轻易地用于企业间电子数据的交换。如<价格 币种=”人民币” 单位=”元”>60</价格>可看出,该商品的“价格”是“60”“元”“人展币”,比起HTML来显示更直观。而且允许用于企业间的两向沟通,即在不同数据库格式,不同数据库结构的两个或多个企业之间进行电子数据交换的桥梁。
为什么说企业间的电子数据交换如此困难呢?因为为企业提供数据库软件的供应商有很多,比较有规模的有如SQL 、Oracle、PowerBuilder、Informix等,它们彼此间的技术各不相同,要直接进行电子数据交换近于不可能;而且即使企业能使用同一种数据库,各自数据库的结构又均不相同,同样不能直接进行电子数据交换。因此,由于XML的可扩展性,能够很好地完成企业各自数据库间电子数据交换的任务。
XML能够很好地表示电子数据,而且使其很好地于企业间进行交换,并真正流行的另一个原因在于XML支持中文标签。
说XML支持中文标签,更准确地说是XML支持非英语字符集。由于Internet使依靠信息技术的贸易真正地全球化,因此新一代Web语言支持非英语字符集成为必要。有鉴于此,XML支持Unicode(统一字符编码),该标记包含了全球已知的50000种书写语言的计算机处理的表示文本字符系统。最近的Unicode3.0版本符合国际标准字符集ISO/IEC 10646-1:2000,它使用双字节或16位表示字符,这样可以对多数已知的字符集,包括科技和数字符号进行编号,Unicode提供了超过65000个字符的代码。真正地实现XML的全球化。
当浏览器(IE)运行某一个XML文件时,在其首行发现XML文件的宣言——<? Xml=”1.0” Encoding=”…”?>时,便会以XML的标准解释文件,而不是以HTML标准。若XML文件没有错误的话,浏览器将会以树状显示文件内容。这样便利于浏览XML文件内容。
XML的相关技术
我们说XML将成为下一代Web的基磐技术,并非只因XML拥有以上特征。为了使XML的规范完整,XML延用了SGML的DTD技术(选择性使用)。
XML的可X——扩展性固然带来了许多优越,但有些情况下,这种欠缺规范的扩展性却往往令标签的使用无规则而导致文件结构混乱,DTD就是XML延用SGML进行文件类型定的部分。
DTD(Document Type Definition:文档类型定义)通过要素宣言(Element Type Declaration)来定义文档要素的名称(标签名),要素出现的顺序及要素出现的次数。
从逻辑上讲,XML文件分为包含DTD的构造和不包含DTD的构造,分别称为合法的XML文件和结构完整的XML文件。合法的XML文档中,DTD位于XML宣言和文档要素之间,它可以与XML宣言处于同一实体(文件)之中,但更多的是作为外部实例(外部文件)而单独完成然后被引用。
DTD的设计,首先应分析所应处理的信息,当作为企业、团体间进行信息交换为目的时,应该以标准化,通用性,中立性,永久性等方面考虑;其次,当文件只用于公司内部时,应当着重考虑其运行的可能性,经济性,与终端用户接口等因素。
DTD除本身文档类型宣言外,由要素型宣言,属性一览宣言,实体宣言以及记法宣言四大宣言组成。
文档类型宣言是指对标签代表的文档的各要素及其层次结构的宣言、要素附属信息的属性宣言、实现值怎样进行置标签等问题所作的具体规定。
要素型宣言:XML实现值可使用的要素的定义。规定要素的名称、要素的层次结构。
属性一览宣言:定义作为要素附加信息的属性。某要素有何属性、属性名为何、属性值的指定、属性的指定是否必须、属性的缺省值为何。
实体宣言:在XML实现值及DTD中欲利用的实体的定义。欲置换的文字及文字串,欲加入到XML文体文档中的外部文件为何、参照它时所用的实体名的指定。
记法宣言:作为外部文件被参照的实体采用了XML以外的记法时,为识别它们的记法而指定的名称。
DTD就是通过其四大宣言来规范XML文件结构,使得其结构统一严谨,防止电子数据在交换时产生错误,造成不必要的经济损失。
XML的名字空间
XML名字空间提供了一种避免元素名冲突的方法。
由于XML中的标签名不是固定的,因此当两个不同的文档使用同样的名字描述两个不同类型的元素时就会发生命名冲突。如果这两个拥有相同标签名的XML文档被加在一起,就会发生一个标签命名冲突,因为这两个文档都包含了一个同名的标签,而这两个元素的内容和定义很可能不同。XML名字空间便是通过使用一个标签前缀,创建了两个不同类型但相同命名的标签,避免了标签名冲突。
W3C名字空间规范规定名字空间本身应该是一个统一资源识别号 (URI)。当一个名字空间在一个元素的起始标记中被定义时,所有相同前缀的子元素都与同样的名字空间相关。一个统一资源识别号(URI)是识别一个Internet资源的字符串。通常URI就是识别一个Internet域地址的URL。另外,有少数一些类型的URI 是通用资源名(URN)。由于我们只使用一个Internet地址去识别其名字空间,所以我们可以肯定我们的名字空间是唯一的。
XML文件样式版技术——CSS与XSL
我们知道XML中内容与表现形式是分开的,这使不同的利用者可依各自的需要来定义数据表现形式。换句话说,在XML文法中,由DTD来定义要素,但各个要素的含义和对其进行的处理不由DTD决定。所以,当用浏览器显示XML数据时,对应于各个要素应采用怎样的字体和字号,这种有关显示格式的问题,必须事先决定。格式的指定可看成赋予XML数据含义的一种方式。比如,通常字号较大的XML数据为标题等等。
XML可用的格式指定语言有两种,CSS(Cascading Style Sheets,层叠格式表)和XSL(Extensible Stylesheet Language,可扩展格式语言)。
CSS的起源是设计用于指定HTML文件的格式,随着XML的诞生,对其进行了版本升级,以同时适用于XML文档。CSS语言主要是通过对XML文档的标签或属性赋予格式信息,使得各标签内容以设定的格式展示于浏览器中。
CSS可以作为外部文件被引用,也可以与XML文件整合在一起,但是为了便于管理和共享,原则上提倡运用作为外部文件被引用。当需要用一个文件来管理XML文档时,可采用将其格式表置于XML文档的实体部分;当欲突出某一特殊部分时,可采取对该部分进行单独格式记述的文法。而且把CSS样式表文件作为外部文件引用,XML在浏览器上外观的修改,只需修改外部的CSS文件即可,不破坏XML文件的结构,而且大大地简化修改过程和复杂性。
XSL是吸取了DSSSL(Document Style Semantice and specification Language,文档格式含义指定语言。SGML文档格式指定的国际标准。)和CSS机能的基础上针对XML特性而产生的。XSL除CSS的机能外,还可以实现两大机能:1、文件结构的变换;2、处理的指定。
文件结构的变换,作为XSL功能的主要一部分,是所谓的SXLT(Transformation,变换)。利用SXLT可将某一个XML文件依需要变换成为另一个XML文件;另一方面,由于HTML的广泛使用,也需将XML文件变换成HTML文件进行浏览显示。SXLT开发的原意是在于后者,这样以来,HTML文件的浏览器可以显示XML文件内容。而现在,SXLT可各种类型的文件之间进行变换。
处理的指定,利用XSL不但可进行各种转换以满足不同的需要,同时,也可在XSL中加入脚本语言。通过脚本语言可实现诸如,元素的排序、文字的操作、数值计算、要素的计数等各种处理。
此外,XPath - XML匹配模式(XML Pattern Matching)、XLink - XML链接语言(XML Linking Language)、 XPointer - XML指针语言(XML Pointer Language)、XSD - XML模式(XML Schema)、XDR - 数据简化(XML Data Reduced)、DOM - 文档对象模型(Document Object Mode