var xmlfile=new ActiveXObject("Microsoft.xmldom");
xmlfile.load("2.xml");
var xslfile=new ActiveXObject("Microsoft.xmldom");
xslfile.load("first.xsl");
document.all.item("DOM应用").innerHTML=xmlfile.transformNode(xslfile.documentElement);
〈/SCRIPT〉
〈/head〉
〈body〉
〈DIV id="DOM应用"〉〈/DIV〉
〈/body〉
〈/heml〉
■Namespaces
考虑一下,当我们建立XML应用的时候,会为具体的行业应用创建特定的DTD,规定可用的元素。有时会出现下面情况——两个同名的元素在不同的地方可能会有不同的含义。例如,我们定义〈title〉这个标记,在书店应用中,这个标记中的字符含义是书的名称,而在人事部门中,这个标记中的字符含义却是人的称谓、头衔。如果我们写一个包含书名、作者、作者身份等信息的XML文件,将在书名和作者身份两个地方用到同样的〈title〉标记,但它们有不同的含义,计算机程序无法分辨哪一个是书名,哪一个是作者身份。这样就给我们的自动化处理带来了问题,这就是Namespaces要解决的问题。Namespaces的概念非常直接——对于每一套特定应用的DTD,给它一个独一无二的标志来代表,如果在XML文件中使用DTD中定义的元素,需将DTD的标志和元素名、属性连在一起使用,相当于指明了元素来自什么地方,这就不会和其他同名元素混淆(像我们的电话号码,两个城市可能存在相同的号码,但是我们在前面用区号将它限定了,一个地方的区号在一个国家中是独一无二的)。在XML中,采用现成的、在全球范围唯一的“域名”作为Namespaces,即用URL作为XML的Namespaces。前面我们学习XSL的时候,实际上就接触到了Namespaces,XSL文件中的标记名称前面都有一个“xsl:”,实际上这就是XSL中元素的Namespaces。声明语句就是:〈xsl:stylesheet xmlns:xsl="http://www.w3.org.TR.WD-xsl"〉,后面的xmlns:xsl="......"。其中,声明中的xsl称为前置字符串,在文件中引用元素时要加上前置字符串,如:〈xsl:templed〉。
例:
〈?xml version="1.0" encoding="GB2312"?〉
〈c:客户名单 xmlns:c="http://www.aaa.com/custom.dtd"〉
xmlns:职工="http://www.aaa.com/employee.dtd〉
〈c:客户〉
〈c:姓名〉张三〈/c:姓名〉
〈c:电话〉028-6666666〈/电话〉
〈c:接待人〉
〈职工:姓名〉李四〈/职工:姓名〉
〈职工:电话〉5555555〈/职工:电话〉
〈/c:接待人〉
〈/c:客户〉
.......
这个例子在前面定义了两个Namespaces——c:和职工:。在应用元素时,前面都加了特定的Namespaces。那么应用程序在读到同名元素,如:〈姓名〉、〈电话〉时,就能够区分哪一个是客户姓名、电话,而哪一个又是本单位职工的姓名、电话了。
利用Namespaces,我们还可以在XML文件中直接利用HTML的标记,不使用Xlink或Xpionter,也让XML文件具有超级链接、显示图片的功能。在使用HTML标记之前,必须声明它的Namespaces。下面这个例子就是XML和HTML的混合使用。
例:
〈?xml version="1.0" encoding="GB2312" ?〉
〈?xml-stylesheet href="first.css" type="text/css" ?〉
〈data xmlns:HTML="http://www.w3.org/TR/XHTM1"〉
〈book〉
〈title〉XML入门精解〈/title〉
〈HTML:a href="mailto:lionliao@yeah.net"〉
〈author〉作者:张三〈/author〉
〈/HTML:a〉
〈picture〉
〈HTML:img src="zhangsan.jpg" width="80" height="80"〉〈/HTML:img〉
〈/picture〉
〈price unit="人民币"〉价格:$20.00〈/price〉
〈content〉
〈HTML:a href="http://www.cbi.com"〉点击查看主要内容〈/HTML:a〉
〈/content〉
〈/book〉
〈/data〉
注意:在XML中使用HTML时要严格遵守XML的语法规定,元素必须正确关闭。
通过CSS或XSL可将这个XML文件显示出来,如图1所示。
■XHTML
XHTML最早叫HTML in XML,就是把过去用SGML定义的HTML,用XML来重新定义(不要忘了,XML是一种定义语言的语言)。实际上,XHTML中的标记基本上还是HTML 4.0中的那些标记,各种标记、属性的用法基本不变。只不过因为它是通过XML定义的,所以必须严格遵守XML的规定,不像过去那样随便。那为什么要发展XHTML呢?
现在,手机上网、信息家电等炒得如火如荼,好像什么都应该连到因特网上。XHTML正是适应这种潮流而出现的。大家知道,现在的HTML越来越复杂,而且存在大量的不规范HTML网页(并不是能够在IE、Netscape正确显示就算是规范的网页),而浏览器为了能够适应这种情况,包容了大量五花八门的HTML网页,已经变得非常臃肿(这就是虽然你的HTML语法错误,有时还是能够正确显示出来的原因,设计浏览器的工程师绞尽脑汁来适应、包容
本系列讲座介绍了XML的语法、结构以及相关的一些技术。并非了解这些,就能够使用XML了。有关XML的具体开发应用现在的讨论也是非常多,如:XML用于电子商务、XML用于文档管理、XML用于数据驱动应用程序等。我们学习XML,关键就是要在以后的开发中应用它,明白了XML的基础知识,将会在应用开发中起到重要作用。