JaRe
From ICO wiki
Projekt
XML Andmefailid
XML
<?xml version="1.0" encoding="utf-8" ?>
<raamatukogu>
<osakond korrus="1" nimi="informaatika-infoteholoogia">
<riiul id = "1" teema="informaatika">
<raamat kogus="5" trükk="1">
<nimi>Informaatika teoreetilised alused</nimi>
<autor>Peeter Lorents</autor>
<ilmumisaasta>2001</ilmumisaasta>
<kirjastus>EBS Print</kirjastus>
<lehekülgi>430</lehekülgi>
</raamat>
<raamat kogus="3" trükk="1">
<nimi>Hulgad, valemid, algoritmid</nimi>
<autor>Peeter Lorents</autor>
<ilmumisaasta>2007</ilmumisaasta>
<kirjastus>Eesti Infotehnoloogia Kolledž</kirjastus>
<lehekülgi>336</lehekülgi>
</raamat>
<raamat kogus="3" trükk="1">
<nimi>Hulgateooria lastele</nimi>
<autor>Hulga Element</autor>
<ilmumisaasta>2007</ilmumisaasta>
<kirjastus>Eesti Infotehnoloogia Kolledž</kirjastus>
<lehekülgi>400</lehekülgi>
</raamat>
</riiul>
<riiul id = "2" teema="programmeerimine">
<raamat kogus="5" trükk="4">
<nimi>Thinking in Java</nimi>
<autor>Bruce Eckel</autor>
<ilmumisaasta>2001</ilmumisaasta>
<kirjastus>Prentice-Hall</kirjastus>
<lehekülgi>1000</lehekülgi>
</raamat>
<raamat kogus="5" trükk="2">
<nimi>Efektiivne Programmeerimine</nimi>
<autor>Edgar Suur</autor>
<ilmumisaasta>2005</ilmumisaasta>
<kirjastus>Tallina Kirjastus</kirjastus>
<lehekülgi>250</lehekülgi>
</raamat>
<raamat kogus="1" trükk="1">
<nimi>Efektiivne Programmeerimine</nimi>
<autor>Edgar Suur</autor>
<ilmumisaasta>2000</ilmumisaasta>
<kirjastus>Tallina Kirjastus</kirjastus>
<lehekülgi>200</lehekülgi>
</raamat>
</riiul>
</osakond>
<osakond korrus="1" nimi="ajalugu">
<riiul id = "1" teema="teadus">
<raamat kogus="5" trükk="1">
<nimi>Nõiakunst</nimi>
<autor>Wiktor Merlin</autor>
<ilmumisaasta>1136</ilmumisaasta>
<kirjastus>Camelot</kirjastus>
<lehekülgi>500</lehekülgi>
</raamat>
<raamat kogus="5" trükk="1">
<nimi>Alkeemia ajalugu</nimi>
<autor>Targo Kivi</autor>
<ilmumisaasta>1337</ilmumisaasta>
<kirjastus>Alchimia</kirjastus>
<lehekülgi>400</lehekülgi>
</raamat>
</riiul>
<riiul id = "2" teema="teine maailmasõda">
<raamat kogus="3" trükk="1">
<nimi>Eestlased teises maailmasõjas</nimi>
<autor>Peeter Eeter Termomeeter</autor>
<ilmumisaasta>2006</ilmumisaasta>
<kirjastus>Kotkas</kirjastus>
<lehekülgi>100</lehekülgi>
</raamat>
<raamat kogus="5" trükk="1">
<nimi>Venelased teises maailmasõjas</nimi>
<autor>Peeter Eeter Termomeeter</autor>
<ilmumisaasta>2010</ilmumisaasta>
<kirjastus>Kotkas</kirjastus>
<lehekülgi>1000</lehekülgi>
</raamat>
</riiul>
</osakond>
</raamatukogu>
XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="raamatukogu">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="osakond">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="riiul">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="raamat">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi" type="xs:string" />
<xs:element maxOccurs="unbounded" name="autor" type="xs:string" />
<xs:element name="ilmumisaasta" type="xs:integer" />
<xs:element name="kirjastus" type="xs:string" />
<xs:element minOccurs="0" name="lehekülgi" type="xs:integer" />
</xs:sequence>
<xs:attribute name="kogus" type="xs:integer" use="required" />
<xs:attribute name="trükk" type="xs:integer" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required" />
<xs:attribute name="teema" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="korrus" type="xs:integer" use="required" />
<xs:attribute name="nimi" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT
Kuvab kõik saadaval olevate raamatute informatsiooni. Tulemust on võimalik vaadata [siit].
<?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>
</head>
<body>
<table border="1">
<tr>
<th>Nimi</th>
<th>Autor</th>
<th>Lehekülged arv</th>
<th>Aasta</th>
<th>Kirjastus</th>
<th>Kogus</th>
</tr>
<xsl:for-each select="/raamatukogu/osakond/riiul/raamat">
<tr>
<td>
<xsl:value-of select="nimi"/>
</td>
<td>
<xsl:value-of select="autor"/>
</td>
<td>
<xsl:value-of select="lehekülgi"/>
</td>
<td>
<xsl:value-of select="ilmumisaasta"/>
</td>
<td>
<xsl:value-of select="kirjastus"/>
</td>
<td>
<xsl:value-of select="@kogus"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Kuvab raamatud, mille kogus riiulites on suurem neljast. Tulemusst on võimalik vaadata [siit].
<?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>
</head>
<body>
<xsl:for-each select="/raamatukogu/osakond">
<h2>
<xsl:value-of select="@nimi"/> korrus <xsl:value-of select="@korrus"/>
</h2>
<xsl:for-each select="riiul">
<p>
<xsl:value-of select="@teema"/> riiul
</p>
<table border="1">
<tr>
<th>Nimi</th>
<th>Autor</th>
<th>Lehekülged arv</th>
<th>Aasta</th>
<th>Kirjastus</th>
</tr>
<xsl:for-each select="raamat">
<xsl:if test="@kogus > 4">
<tr>
<td>
<xsl:value-of select="nimi"/>
</td>
<td>
<xsl:value-of select="autor"/>
</td>
<td>
<xsl:value-of select="lehekülgi"/>
</td>
<td>
<xsl:value-of select="ilmumisaasta"/>
</td>
<td>
<xsl:value-of select="kirjastus"/>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>