JaRe

From EIK wiki

VR II

Meeskond

  • Jaan Kängsepp
  • Rene Ott (Juht)
  • Laura Närska

Logi

  • 03.03.2013 - Wiki lehe loomine
  • 14.03.2013 - Liitus Laura Närska
  • 23.03.2013 - Xml, Xsd, Xslt
  • 23.03.2013 - TFS: https://jare.visualstudio.com/
  • 31.03.2013 - Retsensioonid XML-i kohta

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>