五、一个应用了xml、schema和xlst的例子
通过上面的介绍,大家可能都已经跃跃欲试,想自己做一个XML方面的小应用了。那么在这里就满足大家的要求,举一个比较
全面的有实际意义的例子。
假如有一个订单要处理,订单的基本内容包括客户的信息和产品信息两个部分。
客户信息主要由客户姓名、电话、传真、地址组成。
产品信息由编号、名称、规格、价格、购买数量组成。
为了写一个标准的XML文档,首先要写一个Schema来对XML文档进行约束:
下载该文件:
点击浏览该文件
以下内容为程序代码:
1<schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
2<elementtype name="姓名"></elementtype>
3<elementtype name="电话"></elementtype>
4<elementtype name="传真"></elementtype>
5<elementtype name="地址"></elementtype>
6<elementtype name="编号"></elementtype>
7<elementtype name="名称"></elementtype>
8<elementtype name="规格"></elementtype>
9<elementtype name="价格"></elementtype>
10<elementtype name="购买数量"></elementtype>
11<elementtype content="eltOnly" name="客户">
12<element type="姓名"></element>
13<element type="电话"></element>
14<element type="传真"></element>
15<element type="地址"></element>
16</elementtype>
17<elementtype content="eltOnly" name="产品">
18<element type="名称"></element>
19<element type="规格"></element>
20<element type="价格"></element>
21<element type="购买数量"></element>
22</elementtype>
23<elementtype content="eltOnly" name="订单">
24<element type="客户"></element>
25<element type="产品"></element>
26</elementtype>
27<elementtype content="eltOnly" name="全部订单">
28<element type="订单"></element>
29</elementtype>
30</schema>
可以把上面的Schema文档存储为:Sch.xml,在下面的xml文档中会用到这个Schema。
下面是根据上面的约束写的一段XML文档:
下载该文件:
点击浏览该文件
以下内容为程序代码:
<全部订单 xmlns="x-schema:Sch.xml">
<订单>
<客户>
<名称>张立东
<电话>010-12345678
<传真>010-87654321
<地址>北京市 海淀区
<产品>
<名称>扳手
<价格>10
<规格>中
<购买数量>2
下面是对XML进行处理的S2_xls.xslt的内容:
下载该文件:
点击浏览该文件
以下内容为程序代码:
1<xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/TR/WD-xsl">
2<xsl:template match="/">
3<html>
4<head>
5<title>全部订单</title>
6</head>
7<body>
8<h1>订单内容</h1>
9<xsl:for-each select="全部订单/订单">
10<table border="1">
11<tr>
12<th>客户名称:</th><td><xsl: -of="" _value_="" select="客户/名称"></xsl:></td>
13<th>电话</th><td><xsl: -of="" _value_="" select="客户/电话"></xsl:></td>
14<th>传真</th><td><xsl: -of="" _value_="" select="客户/传真"></xsl:> </td>
15</tr>
16<tr>
17<th>地址</th><td colspan="5"><xsl: -of="" _value_="" select="客户/地址"></xsl:></td>
18</tr>
19</table>
20<table border="1">
21<tr>
22<th>产品名称:</th><td><xsl: -of="" _value_="" select="产品/名称"></xsl:></td>
23<th>价格</th><td><xsl: -of="" _value_="" select="产品/价格"></xsl:></td>
24<th>规格</th><td><xsl: -of="" _value_="" select="产品/规格"></xsl:> </td>
25</tr>
26<tr>
27<th>购买数量</th><td colspan="5"><xsl: -of="" _value_="" select="产品/购买数量"></xsl:></td>
28</tr>
29</table>
30</xsl:for-each>
31</body>
32</html>
33</xsl:template>
34</xsl:stylesheet>
把上面的Schema和XSLT按照例子中的名字存储到磁盘,然后把XML的内容存储成为文件,放到相同的子目录下,然后用IE 5.0
进行解析处理,就会看到符合Schema要求、经过XSLT处理的文档了.