[Xml] XML XSL XSD三件套 10.20


1.XML文档内容要求:

学生基本信息(班级(学生信息(学号、姓名、班级、电子邮件、QQ、通信地址(省份(或州)、城市、街道、邮政编码)))

其中,要求至少两个班级信息,每个班级2个学生信息。

2.编写该文档的Schema文档。

3.编写相应的xslt文件,将XML文档中的信息提取出来生成相应的html文档,其中学生信息内容以表格的形式展现。

(1)源代码如下:

1.XSD文档清单:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:element name="学生信息管理系统">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="班级" minOccurs="2" maxOccurs="unbounded">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="学生信息" minOccurs="1" maxOccurs="unbounded">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="学号" type="xs:string"/>
 <xs:element name="姓名" type="xs:string"/>
 <xs:element name="班级" type="xs:string"/>
 <xs:element name="电子邮件" type="xs:string"/>
 <xs:element name="QQ" type="xs:string"/>
 <xs:element name="通信地址" minOccurs="1" maxOccurs="unbounded">
 <xs:simpleType>
 <xs:restriction base="xs:string">
 <xs:enumeration value="湖北省"/>
 <xs:enumeration value="湖南省"/>
 <xs:enumeration value="河北省"/>
 <xs:enumeration value="山东省"/>
 </xs:restriction>
 </xs:simpleType>
 </xs:element>
 <xs:element name="城市" minOccurs="1" maxOccurs="unbounded">
 <xs:simpleType>
 <xs:restriction base="xs:string">
 <xs:enumeration value="长沙市"/>
 <xs:enumeration value="娄底市"/>
 <xs:enumeration value="衡阳市"/>
 <xs:enumeration value="岳阳市"/>
 <xs:enumeration value="常德市"/>
 </xs:restriction>
 </xs:simpleType>
 </xs:element>
 <xs:element name="街道" minOccurs="1" maxOccurs="unbounded">
 <xs:simpleType>
 <xs:restriction base="xs:string">
 <xs:enumeration value="蘑菇1街"/>
 <xs:enumeration value="蘑菇2街"/>
 <xs:enumeration value="蘑菇3街"/>
 <xs:enumeration value="蘑菇4街"/>
 <xs:enumeration value="蘑菇街1"/>
 <xs:enumeration value="蘑菇街2"/>
 <xs:enumeration value="蘑菇街3"/>
 <xs:enumeration value="蘑菇街4"/>
 </xs:restriction>
 </xs:simpleType>
 </xs:element>
 <xs:element name="邮政编码" type="xs:string"/>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
</xs:schema>

2.XML文档清单:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="./T6.xsl"?>
<学生信息管理系统 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./T6.xsd">
 <班级>
 <学生信息>
 <学号>1001</学号>
 <姓名>张三</姓名>
 <班级>1</班级>
 <电子邮件>100101@qq.com</电子邮件>
 <QQ>100101</QQ>
 <通信地址>湖南省</通信地址>
 <城市>岳阳市</城市>
 <街道>蘑菇1街</街道>
 <邮政编码>136001</邮政编码>
 </学生信息>
 <学生信息>
 <学号>1002</学号>
 <姓名>李四</姓名>
 <班级>1</班级>
 <电子邮件>100102@qq.com</电子邮件>
 <QQ>100102</QQ>
 <通信地址>湖南省</通信地址>
 <城市>衡阳市</城市>
 <街道>蘑菇2街</街道>
 <邮政编码>136002</邮政编码>
 </学生信息>
 <学生信息>
 <学号>1003</学号>
 <姓名>王二</姓名>
 <班级>1</班级>
 <电子邮件>100103@qq.com</电子邮件>
 <QQ>100103</QQ>
 <通信地址>湖南省</通信地址>
 <城市>岳阳市</城市>
 <街道>蘑菇3街</街道>
 <邮政编码>136003</邮政编码>
 </学生信息>
 <学生信息>
 <学号>1004</学号>
 <姓名>麻子</姓名>
 <班级>1</班级>
 <电子邮件>100104@qq.com</电子邮件>
 <QQ>100104</QQ>
 <通信地址>湖南省</通信地址>
 <城市>衡阳市</城市>
 <街道>蘑菇4街</街道>
 <邮政编码>136004</邮政编码>
 </学生信息>
 </班级>
 <班级>
 <学生信息>
 <学号>2001</学号>
 <姓名>王思</姓名>
 <班级>2</班级>
 <电子邮件>200101@qq.com</电子邮件>
 <QQ>200101</QQ>
 <通信地址>湖南省</通信地址>
 <城市>岳阳市</城市>
 <街道>蘑菇街1</街道>
 <邮政编码>236001</邮政编码>
 </学生信息>
 <学生信息>
 <学号>2002</学号>
 <姓名>王健</姓名>
 <班级>2</班级>
 <电子邮件>200102@qq.com</电子邮件>
 <QQ>200102</QQ>
 <通信地址>湖南省</通信地址>
 <城市>衡阳市</城市>
 <街道>蘑菇街2</街道>
 <邮政编码>236002</邮政编码>
 </学生信息>
 <学生信息>
 <学号>2003</学号>
 <姓名>旺旺</姓名>
 <班级>2</班级>
 <电子邮件>200103@qq.com</电子邮件>
 <QQ>200103</QQ>
 <通信地址>湖南省</通信地址>
 <城市>岳阳市</城市>
 <街道>蘑菇街3</街道>
 <邮政编码>236003</邮政编码>
 </学生信息>
 <学生信息>
 <学号>2004</学号>
 <姓名>李白</姓名>
 <班级>2</班级>
 <电子邮件>200104@qq.com</电子邮件>
 <QQ>200104</QQ>
 <通信地址>湖南省</通信地址>
 <城市>衡阳市</城市>
 <街道>蘑菇街4</街道>
 <邮政编码>236004</邮政编码>
 </学生信息>
 </班级>
</学生信息管理系统>

3.XSLT文档清单:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
 <xsl:template match="/">
 <html>
 <head>
 <title>学生信息管理系统</title>
 </head>
 <body>
 <h1 align="center" font-weight="bold">学生信息管理系统</h1>
 <table align="center" border="3" cellspacing="2" cellpadding="6">
 <thead align="center" bgcolor="silver">
 <tr>
 <th>学号</th>
 <th>姓名</th>
 <th>班级</th>
 <th>电子邮件</th>
 <th>QQ</th>
 <th>城市</th>
 <th>街道</th>
 <th>邮政编码</th>
 </tr>
 </thead>
 <xsl:apply-templates select="/学生信息管理系统"/>
 </table>
 </body>
 </html>
 </xsl:template>
 <xsl:template match="学生信息管理系统">
 <xsl:for-each select=".//学生信息">
 <xsl:choose>
 <xsl:when test="position() mod 2!=1">
 <tr>
 <td>
 <font color="blue">
 <xsl:value-of select="学号"/>
 </font>
 </td>
 <td>
 <font color="blue">
 <xsl:value-of select="姓名"/>
 </font>
 </td>
 <td>
 <font color="blue">
 <xsl:value-of select="班级"/>
 </font>
 </td>
 <td>
 <font color="blue">
 <xsl:value-of select="电子邮件"/>
 </font>
 </td>
 <td>
 <font color="blue">
 <xsl:value-of select="QQ"/>
 </font>
 </td>
 
 <td>
 <font color="blue">
 <xsl:value-of select="城市"/>
 </font>
 </td>
 <td>
 <font color="blue">
 <xsl:value-of select="街道"/>
 </font>
 </td>
 <td>
 <font color="blue">
 <xsl:value-of select="邮政编码"/>
 </font>
 </td>
 </tr>
 </xsl:when>
 <xsl:otherwise>
 <tr>
 <td>
 <font color="red">
 <xsl:value-of select="学号"/>
 </font>
 </td>
 <td>
 <font color="red">
 <xsl:value-of select="姓名"/>
 </font>
 </td>
 <td>
 <font color="red">
 <xsl:value-of select="班级"/>
 </font>
 </td>
 <td>
 <font color="red">
 <xsl:value-of select="电子邮件"/>
 </font>
 </td>
 <td>
 <font color="red">
 <xsl:value-of select="QQ"/>
 </font>
 </td>
 <td>
 <font color="red">
 <xsl:value-of select="城市"/>
 </font>
 </td>
 <td>
 <font color="red">
 <xsl:value-of select="街道"/>
 </font>
 </td>
 <td>
 <font color="red">
 <xsl:value-of select="邮政编码"/>
 </font>
 </td>
 </tr>
 </xsl:otherwise>
 </xsl:choose>
 </xsl:for-each>
 </xsl:template>
</xsl:stylesheet>

声明:TIL|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA[ZH]协议进行授权

转载:转载请注明原文链接 - [Xml] XML XSL XSD三件套 10.20


Life is very interesting. In the end, some of your greatest pains become your greatest strengths.