JaRe

From ICO wiki
Jump to navigationJump to search

VR II

Meeskond

  • Jaan Kängsepp
  • Rene Ott
  • Laura Närska

Logi

Veebiteenus

XML Andmefailid

XML

Tegemist on raamatukoguga, kus on erinevad osakonnad. Osakonnad asuvad erinevatel korrustel ning neil on nimed. Igas osakonnas on riiulid. Igal riiulil asuvad kindlat tüüpi raamatud.

<?xml version="1.0" encoding="utf-8" ?>
<raamatukogu>
  <osakond korrus="1" nimi="Informaatika ja 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="Teadusajalugu">
      <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>
          <h1>Raamatud</h1>
          <table border="1">
            <tr>
              <th>Nimi</th>
              <th>Autor</th>
              <th>Lehekülgede 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. 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>
        <xsl:for-each select="/raamatukogu/osakond">
          <h2>
            Korrus: <xsl:value-of select="@korrus"/> - <xsl:value-of select="@nimi"/>
          </h2>
          <xsl:for-each select="riiul">
            <p>
              Riiul: <xsl:value-of select="@teema"/>
            </p>
            <table border="1">
              <tr>
                <th>Nimi</th>
                <th>Autor</th>
                <th>Lehekülgede arv</th>
                <th>Aasta</th>
                <th>Kirjastus</th>
              </tr>
              <xsl:for-each select="raamat">
                <xsl:if test="@kogus &gt; 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>