Eksempel: flere skjemaer i samme prosjekt
schema-fil(fag.xsd)
<?xml version="1.0" encoding="iso-8859-1"?>
<fag:schema xmlns:fag="http://www.w3.org/2001/XMLSchema">
<fag:complexType name="fagData" mixed="true">
<fag:sequence minOccurs="0" maxOccurs="unbounded">
<fag:element name="kode" type="fag:string" minOccurs="1" maxOccurs="1"/>
<fag:element name="navn" type="fag:string" minOccurs="1" maxOccurs="1"/>
<fag:element name="studiepoeng" type="fag:integer" minOccurs="1" maxOccurs="1"/>
<fag:element name="start" type="fag:gYearMonth" minOccurs="1" maxOccurs="1"/>
<fag:element name="slutt" type="fag:gYearMonth" minOccurs="1" maxOccurs="1"/>
</fag:sequence>
</fag:complexType>
</fag:schema>
schema-fil(studentFag.xsd)
<?xml version="1.0" encoding="iso-8859-1"?>
<sfag:schema xmlns:sfag="http://www.w3.org/2001/XMLSchema">
<sfag:include schemaLocation="fag.xsd"/>
<sfag:complexType name="sfagData" mixed="true">
<sfag:complexContent>
<sfag:extension base="fagData">
<sfag:sequence minOccurs="0" maxOccurs="unbounded">
<sfag:element name="karakter" type="sfag:string" minOccurs="0" maxOccurs="unbounded"/>
</sfag:sequence>
</sfag:extension>
</sfag:complexContent>
</sfag:complexType>
</sfag:schema>
schema-fil(foreleserFag.xsd)
<?xml version="1.0" encoding="iso-8859-1"?>
<ffag:schema xmlns:ffag="http://www.w3.org/2001/XMLSchema">
<ffag:include schemaLocation="fag.xsd"/>
<ffag:complexType name="ffagData" mixed="true">
<ffag:complexContent>
<ffag:extension base="fagData">
<ffag:sequence minOccurs="0" maxOccurs="unbounded">
<ffag:element name="antUkeTimer" type="ffag:integer" minOccurs="0" maxOccurs="1"/>
</ffag:sequence>
</ffag:extension>
</ffag:complexContent>
</ffag:complexType>
</ffag:schema>
schema-fil(studium.xsd)
<?xml version="1.0" encoding="iso-8859-1"?>
<stud:schema xmlns:stud="http://www.w3.org/2001/XMLSchema">
<stud:include schemaLocation="studentFag.xsd"/>
<stud:complexType name="studData" mixed="true">
<stud:sequence minOccurs="0" maxOccurs="unbounded">
<stud:element name="kode" type="stud:string" minOccurs="1" maxOccurs="1"/>
<stud:element name="navn" type="stud:string" minOccurs="1" maxOccurs="1"/>
<stud:element name="beskrivelse" type="stud:string" minOccurs="1" maxOccurs="1"/>
<stud:element name="studiepoeng" type="stud:string" minOccurs="1" maxOccurs="1"/>
<stud:element name="fag" type="sfagData" minOccurs="0" maxOccurs="unbounded"/>
<stud:element name="ferdig" type="stud:boolean" minOccurs="1" maxOccurs="1"/>
</stud:sequence>
</stud:complexType>
</stud:schema>
schema-fil(undervisning.xsd)
<?xml version="1.0" encoding="iso-8859-1"?>
<und:schema xmlns:und="http://www.w3.org/2001/XMLSchema">
<!--
eksempel som viser bruk av flere skjema og derived types
stikkord for derived types er extension base,
og det kan minne om arv
-->
<und:include schemaLocation="studium.xsd"/>
<und:include schemaLocation="foreleserFag.xsd"/>
<und:complexType name="personData" mixed="true">
<und:sequence minOccurs="0" maxOccurs="unbounded">
<und:element name="navn" type="und:string" minOccurs="1" maxOccurs="1"/>
<und:element name="fodt" type="und:date" minOccurs="1" maxOccurs="1"/>
</und:sequence>
</und:complexType>
<und:complexType name="studentData" mixed="true">
<und:complexContent>
<und:extension base="personData">
<und:sequence minOccurs="0" maxOccurs="unbounded">
<und:element name="studentnr" type="und:integer" minOccurs="1" maxOccurs="1"/>
<und:element name="studium" type="studData" minOccurs="0" maxOccurs="unbounded"/>
</und:sequence>
</und:extension>
</und:complexContent>
</und:complexType>
<und:complexType name="foreleserData" mixed="true">
<und:complexContent>
<und:extension base="personData">
<und:sequence minOccurs="0" maxOccurs="unbounded">
<und:element name="ansvarligFag" type="ffagData" minOccurs="0" maxOccurs="unbounded"/>
<und:element name="ekstraFag" type="ffagData" minOccurs="0" maxOccurs="unbounded"/>
</und:sequence>
</und:extension>
</und:complexContent>
</und:complexType>
<und:element name="undervisning">
<und:complexType>
<und:sequence>
<und:element name="student" type="und:studentData" minOccurs="0" maxOccurs="unbounded"/>
<und:element name="foreleser" type="und:foreleserData" minOccurs="0" maxOccurs="unbounded"/>
</und:sequence>
</und:complexType>
</und:element>
</und:schema>
xml-fil(undervisning.xml)
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="undervisning.xsl"?>
<undervisning xmlns:und="http://www.w3.org/2001/XMLSchema-instance"
und:noNamespaceSchemaLocation="undervisning.xsd">
<student>
<navn>Per Olsen</navn>
<fodt>1980-12-29</fodt>
<studentnr>002346</studentnr>
<studium>
<kode>02HLA</kode>
<navn>Allmennlærer</navn>
<beskrivelse>Lærerutdanning med start høst 2002</beskrivelse>
<studiepoeng>180</studiepoeng>
<fag>
<kode>02LAPSY</kode>
<navn>Psykologi</navn>
<studiepoeng>20</studiepoeng>
<start>2002-08</start>
<slutt>2003-06</slutt>
<karakter>C</karakter>
</fag>
<fag>
<kode>02LAMA1</kode>
<navn>Matematikk 1</navn>
<studiepoeng>10</studiepoeng>
<start>2002-08</start>
<slutt>2002-12</slutt>
<karakter>B</karakter>
</fag>
<fag>
<kode>02LADAT</kode>
<navn>Innføring i data</navn>
<studiepoeng>10</studiepoeng>
<start>2002-08</start>
<slutt>2002-12</slutt>
<karakter>B</karakter>
</fag>
<fag>
<kode>02LAPD1</kode>
<navn>Pedagogikk 1</navn>
<studiepoeng>10</studiepoeng>
<start>2003-01</start>
<slutt>2003-06</slutt>
<karakter>A</karakter>
</fag>
<fag>
<kode>02LANO1</kode>
<navn>Norsk 1</navn>
<studiepoeng>10</studiepoeng>
<start>2003-01</start>
<slutt>2003-06</slutt>
<karakter>C</karakter>
</fag>
<ferdig>false</ferdig>
</studium>
</student>
<foreleser>
<navn>Inger Nilsen</navn>
<fodt>1954-06-21</fodt>
<ansvarligFag>
<kode>02LAPD1</kode>
<navn>Pedagogikk 1</navn>
<studiepoeng>10</studiepoeng>
<start>2003-01</start>
<slutt>2003-01</slutt>
<antUkeTimer>6</antUkeTimer>
</ansvarligFag>
<ekstraFag>
<kode>02LAPSY</kode>
<navn>Psykologi</navn>
<studiepoeng>20</studiepoeng>
<start>2002-08</start>
<slutt>2003-06</slutt>
<antUkeTimer>10</antUkeTimer>
</ekstraFag>
</foreleser>
</undervisning>
style-fil(undervisning.xsl)
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Undervisning</title>
</head>
<body>
<h1>Undervisning</h1>
<h2>Studenter</h2>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th align="left" valign="top">Navn</th>
<th align="left" valign="top">Fødselsdato</th>
<th align="left" valign="top">Studentnr</th>
<th align="left" valign="top">Studium</th>
</tr>
<xsl:for-each select="/undervisning/student">
<tr>
<td valign="top"><xsl:value-of select="navn"/></td>
<td valign="top"><xsl:value-of select="fodt"/></td>
<td valign="top"><xsl:value-of select="studentnr"/></td>
<td valign="top">
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th align="left" valign="top">Kode</th>
<th align="left" valign="top">Navn</th>
<th align="left" valign="top">Beskrivelse</th>
<th align="left" valign="top">Studiepoeng</th>
<th align="left" valign="top">Fag</th>
<th align="left" valign="top">Ferdig</th>
</tr>
<xsl:for-each select="/undervisning/student/studium">
<tr>
<td valign="top"><xsl:value-of select="kode"/></td>
<td valign="top"><xsl:value-of select="navn"/></td>
<td valign="top"><xsl:value-of select="beskrivelse"/></td>
<td valign="top"><xsl:value-of select="studiepoeng"/></td>
<td valign="top">
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th align="left" valign="top">Kode</th>
<th align="left" valign="top">Navn</th>
<th align="left" valign="top">Studiepoeng</th>
<th align="left" valign="top">Start</th>
<th align="left" valign="top">Slutt</th>
<th align="left" valign="top">Karakter</th>
</tr>
<xsl:for-each select="/undervisning/student/studium/fag">
<tr>
<td valign="top"><xsl:value-of select="kode"/></td>
<td valign="top"><xsl:value-of select="navn"/></td>
<td valign="top"><xsl:value-of select="studiepoeng"/></td>
<td valign="top"><xsl:value-of select="start"/></td>
<td valign="top"><xsl:value-of select="slutt"/></td>
<td valign="top"><xsl:value-of select="karakter"/></td>
</tr>
</xsl:for-each>
</table>
</td>
<td valign="top">
<xsl:choose>
<xsl:when test="ferdig = 'false'">
Nei
</xsl:when>
<xsl:otherwise>
Ja
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</table>
</td>
</tr>
</xsl:for-each>
</table>
<h2>Forelesere</h2>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th align="left" valign="top">Navn</th>
<th align="left" valign="top">Fødselsdato</th>
<th align="left" valign="top">Ansvarlig for fag</th>
<th align="left" valign="top">Hjelper til i fag</th>
</tr>
<xsl:for-each select="/undervisning/foreleser">
<tr>
<td valign="top"><xsl:value-of select="navn"/></td>
<td valign="top"><xsl:value-of select="fodt"/></td>
<td valign="top">
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th align="left" valign="top">Kode</th>
<th align="left" valign="top">Navn</th>
<th align="left" valign="top">Studiepoeng</th>
<th align="left" valign="top">Start</th>
<th align="left" valign="top">Slutt</th>
<th align="left" valign="top">Antall timer pr. uke(totalt for fag)</th>
</tr>
<xsl:for-each select="/undervisning/foreleser/ansvarligFag">
<tr>
<td valign="top"><xsl:value-of select="kode"/></td>
<td valign="top"><xsl:value-of select="navn"/></td>
<td valign="top"><xsl:value-of select="studiepoeng"/></td>
<td valign="top"><xsl:value-of select="start"/></td>
<td valign="top"><xsl:value-of select="slutt"/></td>
<td valign="top"><xsl:value-of select="antUkeTimer"/></td>
</tr>
</xsl:for-each>
</table>
</td>
<td valign="top">
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th align="left" valign="top">Kode</th>
<th align="left" valign="top">Navn</th>
<th align="left" valign="top">Studiepoeng</th>
<th align="left" valign="top">Start</th>
<th align="left" valign="top">Slutt</th>
<th align="left" valign="top">Antall timer pr. uke(totalt for fag)</th>
</tr>
<xsl:for-each select="/undervisning/foreleser/ekstraFag">
<tr>
<td valign="top"><xsl:value-of select="kode"/></td>
<td valign="top"><xsl:value-of select="navn"/></td>
<td valign="top"><xsl:value-of select="studiepoeng"/></td>
<td valign="top"><xsl:value-of select="start"/></td>
<td valign="top"><xsl:value-of select="slutt"/></td>
<td valign="top"><xsl:value-of select="antUkeTimer"/></td>
</tr>
</xsl:for-each>
</table>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Se resultat(krever IE5 eller nyere)