Языки информационного обмена. Документ XML., страница 5

<xs:element name="group" nillable="true" minOccurs="0" maxOccurs="unbounded">

<xs:complexType>

<xs:sequence>

<xs:element name="student" nillable="true" minOccurs="0" maxOccurs="unbounded">

<xs:complexType>

<xs:sequence>

<xs:element name="diploma">

<xs:complexType>

<xs:sequence>

<xs:element name="Task" type="xs:string" />

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="mark-list" minOccurs="0" maxOccurs="unbounded">

<xs:complexType>

<xs:sequence>

<xs:element name="mark" nillable="true" minOccurs="0" maxOccurs="unbounded">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:int">

<xs:attribute name="subjectID" type="xs:IDREF" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:attribute name="Name" type="xs:normalizedString" />

<xs:attribute name="ID" type="xs:ID" />

<xs:attribute name="teachersID" type="xs:IDREF" />

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:attribute name="name" type="xs:string" />

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:attribute name="name" type="xs:normalizedString" />

</xs:complexType>

</xs:element>

</xs:all>

<xs:attribute name="name" type="xs:normalizedString" />

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:attribute name="name" type="xs:normalizedString" />

</xs:complexType>

</xs:element>

</xs:schema>


XSL файл

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>

<head>

<title>

<xsl:for-each select="institute">

<xsl:value-of select="@name" />

</xsl:for-each>

</title>

</head>

<body bgcolor="darkorange" vlink="navy">

<xsl:for-each select="institute">

<h1>

<xsl:value-of select="@name" />

</h1>

</xsl:for-each>

<xsl:apply-templates />

</body>

</html>

</xsl:template>

<xsl:template match="faculty">

<h2>

<xsl:value-of select="@name" />

</h2>

<p>Декан фаукультета: <xsl:value-of select="dean/@name" /></p>

<xsl:for-each select="sub-faculty">

<h3>

<xsl:value-of select="@name" />

</h3>

<table width="100%" border="4pt outset">

<tr bgcolor="#7787aa">

<td>ID

</td>

<td>Преподаватель

</td>

<td>Должность

</td>

<td>Звание

</td>

<td>Дополнительные обязаности

</td>

</tr>

<xsl:for-each select="teacher">

<tr bgcolor="#7789af">

<td>

<xsl:element name="a">

<xsl:attribute name="name">

<xsl:value-of select="@ID" />

</xsl:attribute>

</xsl:element>

<xsl:value-of select="@ID" />

</td>

<td>

<xsl:value-of select="@name" />