抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

[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>

0条评论

发表评论