|
|
|
[XML初学进阶]xml(11) 网上资源
|
|
1.4 XML实例
哈哈,看了这么多枯燥的原理论述,你是不是已经不耐烦了。好,现在就让我们再把刚才关于客户联系列表的例子完整地看一遍。通过这个例子,相信你将对XML的整体机制有一个大致的了解。
在1.1.2节,我们为我们的置标语言FCLML制定了下面的DTD:
fclml.dtd:<?xml version="1.0" encoding="GB2312"?><!ELEMENT 联系人列表 (联系人)*><!ELEMENT 联系人 (姓名,ID,公司,EMAIL,电话,地址)><!ELEMENT 地址 (街道,城市,省份)><!ELEMENT 姓名 (#PCDATA)><!ELEMENT ID (#PCDATA)><!ELEMENT 公司 (#PCDATA)><!ELEMENT EMAIL (#PCDATA)><!ELEMENT 电话 (#PCDATA)><!ELEMENT 街道 (#PCDATA)><!ELEMENT 城市 (#PCDATA)><!ELEMENT 省份 (#PCDATA)>
关于客户联系信息的标准XML文件是这样的:
client.xml<?xml version = "1.0" encoding="GB2312" standalone = "no"?><!DOCTYPE 联系人列表 SYSTEM "fclml.dtd"><?xml-stylesheet type="text/xsl" href="mystyle.xsl"?><联系人列表> <联系人> <姓名>张三</姓名> <ID>001</ID> <公司>A公司</公司> <EMAIL>zhang@aaa.com</EMAIL> <电话>(010)62345678</电话> <地址> <街道>五街1234号</街道> <城市>北京市</城市> <省份>北京</省份> </地址> </联系人> <联系人> <姓名>李四</姓名> <ID>002</ID> <公司>B公司</公司> <EMAIL>li@bbb.org</EMAIL> <电话>(021)87654321</电话> <地址> <街道>南京路9876号</街道> <城市>上海</城市> <省份>上海</省份> </地址> </联系人></联系人列表>
可能你已经注意到,文件的前三行在前面并没见过。第一行称作处理指示。以后我们还会再详细谈到处理指示和它们的属性。现在,我们只须知道凡是XML文件都需要这样一行,就象HTML文件都需要用〈HTML〉开头一样。第二行指定了和该XML文件相连的样式单文件,第三行则指定了和它相连的DTD文件。
下面,我们需要将不同的样式赋予各个标记,以便浏览器来显示数据。象我们前面所说的,XML允许你创建自己的标记集,因此,你必须创建你自己的样式指示,这样,浏览器就可以通过这些指示来显示它从未见过的标记下的内容。
因为样式单是独立于数据的,同一个样式单可以由许多XML文件共享。而且,样式单可以用不同的样式语言来描述,例如使用层叠式样式单语言CSS(Cascading Style Sheet Language),或者使用可扩展样式语言XSL(eXtensible Style Language)。在这个例子中我们使用XSL。
现在我们为client.xml制定一个样式单:
mystyle.xsl<?xml version="1.0" encoding="GB2312"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns=""><xsl:template><xsl:apply-templates/></xsl:template><xsl:template match = "/"> <HTML> <HEAD> <TITLE>F公司的客户联系信息</TITLE> </HEAD> <BODY> <xsl:apply-templates select="联系人列表"/> </BODY> </HTML></xsl:template><xsl:template match = "联系人列表"> <xsl:for-each select="联系人"> <UL> <LI><xsl:value-of select="姓名"/></LI> <UL> <LI>用户ID:<xsl:value-of select="ID"/></LI> <LI>公司: <xsl:value-of select="公司"/></LI> <LI>EMAIL: <xsl:value-of select="EMAIL"/></LI> <LI>电话: <xsl:value-of select="电话"/></LI> <LI>街道: <xsl:value-of select="地址/街道"/></LI> <LI>城市: <xsl:value-of select="地址/城市"/></LI> <LI>省份: <xsl:value-of select="地址/省份"/></LI> <LI>ZIP: <xsl:value-of select="地址/ZIP"/></LI> </UL> </UL> </xsl:for-each></xsl:template></xsl:stylesheet>
好了,我们已经完成了XML和它相关的DTD、XSL文件,处理器会根据DTD来检查XML的语法,然后再根据XSL的指示显示这些信息。在后面,我们还会详细地叙述处理的过程。现在,你只需知道这个XML文件被样式单转换为下面的HTML文件:
<HTML><HEAD><TITLE>F公司的客户联系信息</TITLE></HEAD><BODY>
<UL><LI>张三</LI><UL><LI>用户ID: 001</LI><LI>公司: A公司</LI><LI>EMAIL: zhang@aaa.com</LI><LI>电话: (010)62345678</LI><LI>地址: 五街1234号</LI><LI>城市: 北京市</LI><LI>省份: 北京</LI><LI>ZIP: 100001</LI></UL><LI>李四</LI><UL><LI>ID: 002</LI><LI>公司: B公司</LI><LI>EMAIL: li@bbb.org</LI><LI>电话: (021)87654321</LI><LI>地址: 南京路9876号</LI><LI>城市: 上海市</LI><LI>省份: 上海</LI><LI>ZIP: 200002</LI></UL></UL>
</BODY></HTML>
你所看到的显示结果,实际上同上面这个HTML文件的显示结果是相同的。
张三
用户ID: 001
公司: A公司
EMAIL: zhang@aaa.com
电话: (010)62345678
地址: 五街1234号
城市: 北京市
省份: 北京
ZIP: 100001
李四
ID: 002
公司: B公司
EMAIL: li@bbb.org
电话: (021)87654321
地址: 南京路9876号
城市: 上海市
省份: 上海
ZIP: 200002
有兴趣的读者可以把上面这三个文件拷在一个目录中,然后用IE5打开文件client.xml,看看结果是不是这样。
在后面的三章中,我们将分别详细阐述有关XML文件、DTD和样式单文件的规则。
| |
|
|
|