Meeskond "Vennaskond": Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
 
(40 intermediate revisions by the same user not shown)
Line 10: Line 10:


===XML===
===XML===
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&siteLanguage=ee siit].
XML fail sisaldab 2012. a. autoralli MM-sarja (WRC) seni toimunud etappide tulemusi.
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.


[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<Autoralli>
  <Võistlussari id="2012wrc" aasta="2012">
    <kood>WRC</kood>
    <sarjaNimi>Autoralli MM-võistlused</sarjaNimi>
    <etappideArv>13</etappideArv>
    <etapp id="2012wrc01">
      <etapiNr>1.</etapiNr>
      <etapiNimi>Rallye Monte Carlo</etapiNimi>     
      <etapiRiik>Prantsusmaa</etapiRiik>
      <algKuupaev>18.01.2012</algKuupaev>
      <loppKuupaev>22.01.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Loeb</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>28</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Sordo</perenimi>
          <eesnimi>Daniel</eesnimi>
          <riigikood>ESP</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>15</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>Hirvonen</perenimi>
          <eesnimi>Mikko</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>14</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Novikov</perenimi>
          <eesnimi>Evgeny</eesnimi>
          <riigikood>RUS</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>11</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Delecour</perenimi>
          <eesnimi>Francois</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>8</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Campana</perenimi>
          <eesnimi>Pierre</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Tänak</perenimi>
          <eesnimi>Ott</eesnimi>
          <riigikood>EST</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Prokop</perenimi>
          <eesnimi>Martin</eesnimi>
          <riigikood>CZE</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>Araujo</perenimi>
          <eesnimi>Armindo</eesnimi>
          <riigikood>PRT</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
    <etapp id="2012wrc02">
      <etapiNr>2.</etapiNr>
      <etapiNimi>Rally Sweden</etapiNimi>
      <etapiRiik>Rootsi</etapiRiik>
      <algKuupaev>9.02.2012</algKuupaev>
      <loppKuupaev>12.02.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Latvala</perenimi>
          <eesnimi>Jari-Matti</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>26</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Hirvonen</perenimi>
          <eesnimi>Mikko</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Ostberg</perenimi>
          <eesnimi>Mads</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>15</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>14</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Loeb</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>11</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Novikov</perenimi>
          <eesnimi>Evgeny</eesnimi>
          <riigikood>RUS</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>10</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Henning</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Sandell</perenimi>
          <eesnimi>Patrik</eesnimi>
          <riigikood>SWE</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Prokop</perenimi>
          <eesnimi>Martin</eesnimi>
          <riigikood>CZE</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>Brynildsen</perenimi>
          <eesnimi>Eyvind</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
    <etapp id="2012wrc03">
      <etapiNr>3.</etapiNr>
      <etapiNimi>Rally Guanajuato Mexico</etapiNimi>
      <etapiRiik>Mehhiko</etapiRiik>
      <algKuupaev>8.03.2012</algKuupaev>
      <loppKuupaev>11.03.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Loeb</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>27</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Hirvonen</perenimi>
          <eesnimi>Mikko</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>Ostberg</perenimi>
          <eesnimi>Mads</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>13</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Tänak</perenimi>
          <eesnimi>Ott</eesnimi>
          <riigikood>EST</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>10</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Al-Attiyah</perenimi>
          <eesnimi>Nasser</eesnimi>
          <riigikood>QAT</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>8</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Araujo</perenimi>
          <eesnimi>Armindo</eesnimi>
          <riigikood>PRT</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Ogier</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Skoda</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Block</perenimi>
          <eesnimi>Ken</eesnimi>
          <riigikood>USA</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>Trivino</perenimi>
          <eesnimi>Ricardo</eesnimi>
          <riigikood>MEX</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
    <etapp id="2012wrc04">
      <etapiNr>4.</etapiNr>
      <etapiNimi>Vodafone Rally de Portugal</etapiNimi>
      <etapiRiik>Portugal</etapiRiik>
      <algKuupaev>29.03.2012</algKuupaev>
      <loppKuupaev>01.04.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Ostberg</perenimi>
          <eesnimi>Mads</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>25</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Novikov</perenimi>
          <eesnimi>Evgeniy</eesnimi>
          <riigikood>RUS</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>15</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>al-Attiyah</perenimi>
          <eesnimi>Nasser</eesnimi>
          <riigikood>QA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>12</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Prokop</perenimi>
          <eesnimi>Martin</eesnimi>
          <riigikood>CZ</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>10</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Kuipers</perenimi>
          <eesnimi>Dennis</eesnimi>
          <riigikood>NL</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>8</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Ogier</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Skoda</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Neuville</perenimi>
          <eesnimi>Thierry</eesnimi>
          <riigikood>BEL</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Ketomaa</perenimi>
          <eesnimi>Jari</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>van Merksteijn jr</perenimi>
          <eesnimi>Peter</eesnimi>
          <riigikood>NL</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
  </Võistlussari>
  <Võistlussari id="2012irc" aasta="2012">
    <kood>IRC</kood>
    <sarjaNimi>Intercontinental Rally Challenge</sarjaNimi>
    <etappideArv>13</etappideArv>
    <etapp id="2012wrc01">
      <etapiNr>1.</etapiNr>
      <etapiNimi></etapiNimi>
      <etapiRiik></etapiRiik>
      <algKuupaev></algKuupaev>
      <loppKuupaev></loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi></perenimi>
          <eesnimi></eesnimi>
          <riigikood></riigikood>
        </juht>
        <auto></auto>
        <punktid></punktid>
      </tulemusRida>
    </etapp>
  </Võistlussari>
</Autoralli>
</source>


===XML schema (XSD)===
===XML schema (XSD)===
Line 19: Line 436:
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="ehak">
   <xs:element name="Autoralli">
     <xs:complexType>
     <xs:complexType>
       <xs:sequence >
       <xs:sequence>
        <!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer-->
         <xs:element maxOccurs="unbounded" name="Võistlussari">
         <xs:element maxOccurs="90" name="maakond">
           <xs:complexType>
          <!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus -->
           <xs:complexType mixed="false">
             <xs:sequence>
             <xs:sequence>
               <xs:element maxOccurs="unbounded" name="omavalitsus">
               <xs:element name="kood" type="xs:string" />
                <!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus -->
              <xs:element name="sarjaNimi" type="xs:string" />
                <xs:complexType mixed="false">
              <xs:element name="etappideArv" type="xs:unsignedByte" />
                  <xs:sequence >
              <xs:element maxOccurs="unbounded" name="etapp">
                    <xs:element maxOccurs="unbounded" name="asustusüksus">
                <xs:complexType>
                      <!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus -->
                  <xs:sequence>
                      <xs:complexType mixed="false">
                    <xs:element name="etapiNr" type="xs:decimal" />
                        <xs:attribute name="nimi" type="xs:string" use="required" />
                    <xs:element name="etapiNimi" type="xs:string" />
                        <!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
                    <xs:element maxOccurs="unbounded" name="etapiRiik" type="xs:string" />
                        <xs:attribute name="kood" type="xs:unsignedShort" use="required"></xs:attribute>
                    <xs:element name="algKuupaev" type="xs:string" />
                         <!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
                    <xs:element name="loppKuupaev" type="xs:string" />
                        <xs:attribute name="tüüp" type="xs:unsignedByte" use="required" />
                    <xs:element minOccurs="0" maxOccurs="unbounded" name="tulemusRida">
                        <xs:attribute name="tüübinimi" type="xs:string" use="required" />
                      <xs:complexType>
                         <!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi -->
                         <xs:sequence>
                         <xs:attribute name="rööpnimi" type="xs:string" use="optional" />
                          <xs:element name="juht">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="perenimi" type="xs:string" />
                                <xs:element name="eesnimi" type="xs:string" />
                                <xs:element name="riigikood" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="auto" type="xs:string" />
                          <xs:element name="punktid" type="xs:string" />
                         </xs:sequence>
                         <xs:attribute name="koht" type="xs:decimal" use="required" />
                       </xs:complexType>
                       </xs:complexType>
                     </xs:element>
                     </xs:element>
                   </xs:sequence>
                   </xs:sequence>
                   <xs:attribute name="nimi" type="xs:string" use="required" />
                   <xs:attribute name="id" type="xs:string" use="required" />
                  <!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
                  <xs:attribute name="kood" type="xs:unsignedShort" use="required" />
                  <xs:attribute name="tüübinimi" type="xs:string" use="required" />
                 </xs:complexType>
                 </xs:complexType>
                <xs:unique name="UnikaalneAsustusüksuseKood">
                  <xs:selector xpath="asustusüksus" />
                  <xs:field xpath="@kood" />
                </xs:unique>
               </xs:element>
               </xs:element>
             </xs:sequence>
             </xs:sequence>
             <xs:attribute name="nimi" type="xs:string" use="required"/>
             <xs:attribute name="id" type="xs:string" use="required" />
            <!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
             <xs:attribute name="aasta" type="xs:unsignedShort" use="required" />
             <xs:attribute name="kood" type="xs:unsignedByte" use="required" />
           </xs:complexType>
           </xs:complexType>
          <xs:unique name="UnikaalneOmavalitsuseKood">
            <xs:selector xpath="omavalitsus" />
            <xs:field xpath="@kood" />
          </xs:unique>
         </xs:element>
         </xs:element>
       </xs:sequence>
       </xs:sequence>
     </xs:complexType>
     </xs:complexType>
    <xs:unique name="UnikaalneMaakonnaKood">
      <xs:selector xpath="maakond" />
      <xs:field xpath="@kood" />
    </xs:unique>
   </xs:element>
   </xs:element>
</xs:schema>
</xs:schema>
</source>
</source>


===XSLT (esimene)===
===XSLT (esimene)===
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.
Esimene xslt fail kuvab xml sisu html-is. Iga MM-etapi all kuvatakse kümne parema võistkonna tulemused.
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:
 
<source lang="xml">
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
Line 86: Line 494:
>
>
   <xsl:output method="html" indent="yes"/>
   <xsl:output method="html" indent="yes"/>
   <xsl:template match="/">
   <xsl:template match="/">
     <html>
     <html>
       <head>
       <head>
         <title>Superkena haldus- ja asustusüksuste kuvamise leht!</title>
         <title>Autoralli tulemused</title>
       </head>
       </head>
       <body>
       <body>
         <h2>
         <h1>
           Maakonnad, omavalitsused ja asustusüksused
           Autoralli etappide tulemused
         </h2>
         </h1>
         <table border="0">
         <ul>
           <xsl:for-each select="/ehak/maakond">
           <xsl:for-each select="Autoralli/Võistlussari">
            <tr valign="top">
          <h2>
              <th>
            <xsl:value-of select="sarjaNimi"/>
                <br/>
             <xsl:text>, </xsl:text>
                <h2>
            <xsl:value-of select="@aasta"/>
                  <xsl:value-of select="@nimi"/>
          </h2>
                </h2>
            <xsl:for-each select="etapp">
              </th>
              <h2>    
            </tr>
                <xsl:value-of select="etapiNr"/>
            <tr valign="top">
                <xsl:text> etapp, </xsl:text>
              <th>
                <xsl:value-of select="etapiNimi"/>
                <br/>
              </h2>
                <i>
              <h3>
                  <b>
                <xsl:value-of select="loppKuupaev"/>
                    <font size="5">Vallad</font>
                <xsl:text>, </xsl:text>
                  </b>
                 <xsl:value-of select="etapiRiik"/>
                </i>
              </h3>
              </th>
              <xsl:for-each select="tulemusRida">
            </tr>
                <li>
            <!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad-->
                  <xsl:value-of select="@koht"/>
             <xsl:for-each select="omavalitsus">
                  <xsl:text> </xsl:text>
              <xsl:if test="@tüübinimi='vald'">
                   <xsl:value-of select="juht/eesnimi"/>
                <tr valign="top">
                  <xsl:text> </xsl:text>
                  <th>
                  <xsl:value-of select="juht/perenimi"/>
                    <br/>
                  <xsl:text> (</xsl:text>
                    <xsl:value-of select="@nimi"/>
                  <xsl:value-of select="juht/riigikood"/>
                    <xsl:text> </xsl:text>
                  <xsl:text>) </xsl:text>
                    <xsl:value-of select="@tüübinimi"/>
                   <xsl:value-of select="auto"/>
                  </th>
                   <xsl:text>, </xsl:text>
                </tr>
                   <xsl:value-of select="punktid"/>
                <tr valign="top">
                  <xsl:text> p.</xsl:text>
                  <th>
                </li>
                    <i>Külad, alevikud, alevid</i>
              </xsl:for-each>
                  </th>
                </tr>
                <!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult
                - esmalt külad, siis alevikud ja lõpuks alevid -->
                <xsl:for-each select="asustusüksus">
                  <xsl:if test="@tüübinimi='küla'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <xsl:value-of select="@tüübinimi"/>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                  </xsl:if>
                 </xsl:for-each>
                <xsl:for-each select="asustusüksus">
                  <xsl:if test="@tüübinimi='alevik'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <u>
                          <xsl:value-of select="@tüübinimi"/>
                        </u>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                  </xsl:if>
                </xsl:for-each>
                <xsl:for-each select="asustusüksus">
                   <xsl:if test="@tüübinimi='alev'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <u>
                          <xsl:value-of select="@tüübinimi"/>
                        </u>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                   </xsl:if>
                </xsl:for-each>
              </xsl:if>
            </xsl:for-each>
            <tr valign="top">
              <th>
                <br/>
                <i>
                  <b>
                    <font size="5">Linnad</font>
                  </b>
                </i>
              </th>
            </tr>
            <xsl:for-each select="omavalitsus">
              <xsl:if test="@tüübinimi='linn'">
                <tr valign="top">
                  <th>
                    <br/>
                    <xsl:value-of select="@nimi"/>
                   </th>
                </tr>
                <tr valign="top">
                  <th>
                    <i>Linnaosad</i>
                  </th>
                </tr>
                <!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad,
                siis on ainult üks tsükkel ja tüübinime ei kontrollita-->
                <xsl:for-each select="asustusüksus">
                   <tr valign="top">
                    <td>
                      <xsl:value-of select="@nimi"/>
                      <xsl:text> </xsl:text>
                      <xsl:value-of select="@tüübinimi"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </xsl:if>
             </xsl:for-each>
             </xsl:for-each>
           </xsl:for-each>
           </xsl:for-each>
         </table>
         </ul>
       </body>
       </body>
     </html>
     </html>
   </xsl:template>
   </xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
</source>
</source>


===XSLT (teine)===
===XSLT (teine)===
<source lang="xml">
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="html" indent="yes"/>
    <xsl:template match="/">
      <html>
        <head>
          <title>Autoralli tulemused</title>
        </head>
        <body>
          <h1>
            Soome rallisõitjate kohad esikümnes
          </h1>
          <ul>
          <xsl:for-each select="Autoralli/Võistlussari/etapp">
            <h2>
              <xsl:value-of select="etapiNr"/>
              <xsl:text> etapp, </xsl:text>
              <xsl:value-of select="etapiNimi"/>
            </h2>
            <h3>
              <xsl:value-of select="loppKuupaev"/>
              <xsl:text>, </xsl:text>
              <xsl:value-of select="etapiRiik"/>
            </h3>
            <xsl:for-each select="tulemusRida">
              <xsl:if test="juht/riigikood='FIN'">
            <li>
              <xsl:value-of select="@koht"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="juht/eesnimi"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="juht/perenimi"/>
              <xsl:text>, </xsl:text>             
              <xsl:value-of select="auto"/>
              <xsl:text>, </xsl:text>
              <xsl:value-of select="punktid"/>
              <xsl:text> p.</xsl:text>
            </li>
              </xsl:if>
            </xsl:for-each>
          </xsl:for-each>
          </ul>
        </body>       
      </html>
    </xsl:template>
</xsl:stylesheet>
</source>
</source>


Line 247: Line 607:
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
>
  <xsl:output method="html" indent="yes"/>
    <xsl:output method="html" indent="yes"/>
  <xsl:template match="/">
 
    <html>
    <xsl:template match="/">
      <head>
      <html>
        <title>Rööpnimedega asustusüksuste loetelu</title>
        <head>
      </head>
          <title>Autoralli tulemused</title>
      <body>
        </head>
      <h3>
        <body>
           Rööpnimedega asustusüksuste nimekiri koos tüübiga
          <h1>
      </h3>
            Fordil võistelnud rallisõitjate kohad esikümnes
       
           </h1>
        <table border="1">
          <ul>
          <tr>
          <xsl:for-each select="Autoralli/Võistlussari/etapp">
             <th>
             <h2>
               <td>
               <xsl:value-of select="etapiNr"/>
                <h4>Asustusüksuse nimi</h4>
              <xsl:text> etapp, </xsl:text>
               </td>
               <xsl:value-of select="etapiNimi"/>
              <td>
            </h2>
                <h4>Asustusüksuse rööpnimi</h4>
            <h3>
               </td>
               <xsl:value-of select="loppKuupaev"/>
               <td>
               <xsl:text>, </xsl:text>
                <h4>Asustusüksuse tüüp</h4>
               <xsl:value-of select="etapiRiik"/>
               </td>
             </h3>
             </th>
            <xsl:for-each select="tulemusRida">
          </tr>
              <xsl:if test="auto='Ford'">
          <!-- Valin kõik asustusüksused, millel esineb parameeter "rööpnimi"-->
             <li>
          <xsl:for-each select="/ehak/maakond/omavalitsus/asustusüksus">
              <xsl:value-of select="@koht"/>
            <xsl:if test="@rööpnimi">
               <xsl:text> </xsl:text>
             <tr valign="top">
              <xsl:value-of select="juht/eesnimi"/>
               <th>
              <xsl:text> </xsl:text>
              <!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist -->  
              <xsl:value-of select="juht/perenimi"/>
                <td>
              <xsl:text> (</xsl:text>            
                  <xsl:value-of select="@nimi"/>
              <xsl:value-of select="juht/riigikood"/>
                </td>
              <xsl:text>), </xsl:text>
                <td>
              <xsl:value-of select="punktid"/>
                  <xsl:value-of select="@rööpnimi"/>
              <xsl:text> p.</xsl:text>
                </td>
            </li>
                <td>
              </xsl:if>
                  <xsl:value-of select="@tüübinimi"/>
             </xsl:for-each>
                </td>
              </th>
            </tr>
             </xsl:if>
           </xsl:for-each>
           </xsl:for-each>
        </table>
          </ul>
      </body>
        </body>      
    </html>
      </html>
  </xsl:template>
    </xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
</source>
</source>


Line 302: Line 659:
==Klientrakendus==
==Klientrakendus==


==Log==
==Retsensioonid==
==Meeskond "Offline"==
 
XML on väga lihtsa struktuuriga, kogu info asub atribuutides.
Kõik ülesandes nõutu on olemas.
XML-il on 4 loogilist dimensiooni: juurelement, maakond, omavalitsus ja asustusüksus.
 
Esimene stiilifail kuvab html-is XML failis leiduvate omavalitsusüksuste nimed ja tüübid sorteerituna tüübi järgi. Kood on hästi loetav. Kommentaare on piisavalt.
 
Teine stiilifail kuvab lisaks omavalitsusüksuste nimele ja tüübile ka id-kood. Kood on hästi loetav. Kommentaare on piisavalt.


===3. mai 2012 - neljapäev===
Teine stiilifail filtreerib XML failist välja rööpnimedega asustusüksuste nimed, rööpnimed, tüübid ja kuvab need tabeli kujul. Kood on hästi loetav. Kommentaare on piisavalt.
Kristjan ja Holger arutasid skypes XML teemal,
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja
ja tegi xml faili.


===4. mai 2012 - reede===
==Log==
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.


===5. mai 2012 - laupäev===
===5. mai 2012 - laupäev===
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid
Mart tegi xml faili ja xsd faili.


===6. mai 2012 - pühapäev===
===6. mai 2012 - pühapäev===
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.
Mart lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid.

Latest revision as of 04:49, 11 May 2012

Meeskond

  • Kairi Jaano
  • Mart Mägi
  • Riho Kukk

XML

Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.

XML

XML fail sisaldab 2012. a. autoralli MM-sarja (WRC) seni toimunud etappide tulemusi.

<?xml version="1.0" encoding="utf-8"?>
<Autoralli>
  <Võistlussari id="2012wrc" aasta="2012">
    <kood>WRC</kood>
    <sarjaNimi>Autoralli MM-võistlused</sarjaNimi>
    <etappideArv>13</etappideArv>
    <etapp id="2012wrc01">
      <etapiNr>1.</etapiNr>
      <etapiNimi>Rallye Monte Carlo</etapiNimi>      
      <etapiRiik>Prantsusmaa</etapiRiik>
      <algKuupaev>18.01.2012</algKuupaev>
      <loppKuupaev>22.01.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Loeb</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>28</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Sordo</perenimi>
          <eesnimi>Daniel</eesnimi>
          <riigikood>ESP</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>15</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>Hirvonen</perenimi>
          <eesnimi>Mikko</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>14</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Novikov</perenimi>
          <eesnimi>Evgeny</eesnimi>
          <riigikood>RUS</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>11</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Delecour</perenimi>
          <eesnimi>Francois</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>8</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Campana</perenimi>
          <eesnimi>Pierre</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Tänak</perenimi>
          <eesnimi>Ott</eesnimi>
          <riigikood>EST</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Prokop</perenimi>
          <eesnimi>Martin</eesnimi>
          <riigikood>CZE</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>Araujo</perenimi>
          <eesnimi>Armindo</eesnimi>
          <riigikood>PRT</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
    <etapp id="2012wrc02">
      <etapiNr>2.</etapiNr>
      <etapiNimi>Rally Sweden</etapiNimi>
      <etapiRiik>Rootsi</etapiRiik>
      <algKuupaev>9.02.2012</algKuupaev>
      <loppKuupaev>12.02.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Latvala</perenimi>
          <eesnimi>Jari-Matti</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>26</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Hirvonen</perenimi>
          <eesnimi>Mikko</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Ostberg</perenimi>
          <eesnimi>Mads</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>15</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>14</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Loeb</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>11</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Novikov</perenimi>
          <eesnimi>Evgeny</eesnimi>
          <riigikood>RUS</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>10</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Henning</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Sandell</perenimi>
          <eesnimi>Patrik</eesnimi>
          <riigikood>SWE</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Prokop</perenimi>
          <eesnimi>Martin</eesnimi>
          <riigikood>CZE</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>Brynildsen</perenimi>
          <eesnimi>Eyvind</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
    <etapp id="2012wrc03">
      <etapiNr>3.</etapiNr>
      <etapiNimi>Rally Guanajuato Mexico</etapiNimi>
      <etapiRiik>Mehhiko</etapiRiik>
      <algKuupaev>8.03.2012</algKuupaev>
      <loppKuupaev>11.03.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Loeb</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>27</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Hirvonen</perenimi>
          <eesnimi>Mikko</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>Ostberg</perenimi>
          <eesnimi>Mads</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>13</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Tänak</perenimi>
          <eesnimi>Ott</eesnimi>
          <riigikood>EST</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>10</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Al-Attiyah</perenimi>
          <eesnimi>Nasser</eesnimi>
          <riigikood>QAT</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>8</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Araujo</perenimi>
          <eesnimi>Armindo</eesnimi>
          <riigikood>PRT</riigikood>
        </juht>
        <auto>Mini</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Ogier</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Skoda</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Block</perenimi>
          <eesnimi>Ken</eesnimi>
          <riigikood>USA</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>Trivino</perenimi>
          <eesnimi>Ricardo</eesnimi>
          <riigikood>MEX</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
    <etapp id="2012wrc04">
      <etapiNr>4.</etapiNr>
      <etapiNimi>Vodafone Rally de Portugal</etapiNimi>
      <etapiRiik>Portugal</etapiRiik>
      <algKuupaev>29.03.2012</algKuupaev>
      <loppKuupaev>01.04.2012</loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi>Ostberg</perenimi>
          <eesnimi>Mads</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>25</punktid>
      </tulemusRida>
      <tulemusRida koht="2.">
        <juht>
          <perenimi>Novikov</perenimi>
          <eesnimi>Evgeniy</eesnimi>
          <riigikood>RUS</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>18</punktid>
      </tulemusRida>
      <tulemusRida koht="3.">
        <juht>
          <perenimi>Solberg</perenimi>
          <eesnimi>Petter</eesnimi>
          <riigikood>NOR</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>15</punktid>
      </tulemusRida>
      <tulemusRida koht="4.">
        <juht>
          <perenimi>al-Attiyah</perenimi>
          <eesnimi>Nasser</eesnimi>
          <riigikood>QA</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>12</punktid>
      </tulemusRida>
      <tulemusRida koht="5.">
        <juht>
          <perenimi>Prokop</perenimi>
          <eesnimi>Martin</eesnimi>
          <riigikood>CZ</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>10</punktid>
      </tulemusRida>
      <tulemusRida koht="6.">
        <juht>
          <perenimi>Kuipers</perenimi>
          <eesnimi>Dennis</eesnimi>
          <riigikood>NL</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>8</punktid>
      </tulemusRida>
      <tulemusRida koht="7.">
        <juht>
          <perenimi>Ogier</perenimi>
          <eesnimi>Sebastien</eesnimi>
          <riigikood>FRA</riigikood>
        </juht>
        <auto>Skoda</auto>
        <punktid>6</punktid>
      </tulemusRida>
      <tulemusRida koht="8.">
        <juht>
          <perenimi>Neuville</perenimi>
          <eesnimi>Thierry</eesnimi>
          <riigikood>BEL</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>4</punktid>
      </tulemusRida>
      <tulemusRida koht="9.">
        <juht>
          <perenimi>Ketomaa</perenimi>
          <eesnimi>Jari</eesnimi>
          <riigikood>FIN</riigikood>
        </juht>
        <auto>Ford</auto>
        <punktid>2</punktid>
      </tulemusRida>
      <tulemusRida koht="10.">
        <juht>
          <perenimi>van Merksteijn jr</perenimi>
          <eesnimi>Peter</eesnimi>
          <riigikood>NL</riigikood>
        </juht>
        <auto>Citroen</auto>
        <punktid>1</punktid>
      </tulemusRida>
    </etapp>
  </Võistlussari>
  <Võistlussari id="2012irc" aasta="2012">
    <kood>IRC</kood>
    <sarjaNimi>Intercontinental Rally Challenge</sarjaNimi>
    <etappideArv>13</etappideArv>
    <etapp id="2012wrc01">
      <etapiNr>1.</etapiNr>
      <etapiNimi></etapiNimi>
      <etapiRiik></etapiRiik>
      <algKuupaev></algKuupaev>
      <loppKuupaev></loppKuupaev>
      <tulemusRida koht="1.">
        <juht>
          <perenimi></perenimi>
          <eesnimi></eesnimi>
          <riigikood></riigikood>
        </juht>
        <auto></auto>
        <punktid></punktid>
      </tulemusRida>
    </etapp>
  </Võistlussari>
</Autoralli>

XML schema (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="Autoralli">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="Võistlussari">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="kood" type="xs:string" />
              <xs:element name="sarjaNimi" type="xs:string" />
              <xs:element name="etappideArv" type="xs:unsignedByte" />
              <xs:element maxOccurs="unbounded" name="etapp">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="etapiNr" type="xs:decimal" />
                    <xs:element name="etapiNimi" type="xs:string" />
                    <xs:element maxOccurs="unbounded" name="etapiRiik" type="xs:string" />
                    <xs:element name="algKuupaev" type="xs:string" />
                    <xs:element name="loppKuupaev" type="xs:string" />
                    <xs:element minOccurs="0" maxOccurs="unbounded" name="tulemusRida">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="juht">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="perenimi" type="xs:string" />
                                <xs:element name="eesnimi" type="xs:string" />
                                <xs:element name="riigikood" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="auto" type="xs:string" />
                          <xs:element name="punktid" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="koht" type="xs:decimal" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:string" use="required" />
            <xs:attribute name="aasta" type="xs:unsignedShort" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT (esimene)

Esimene xslt fail kuvab xml sisu html-is. Iga MM-etapi all kuvatakse kümne parema võistkonna tulemused.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>Autoralli tulemused</title>
      </head>
      <body>
        <h1>
          Autoralli etappide tulemused
        </h1>
        <ul>
          <xsl:for-each select="Autoralli/Võistlussari">
          <h2>
            <xsl:value-of select="sarjaNimi"/>
            <xsl:text>, </xsl:text>
            <xsl:value-of select="@aasta"/>
          </h2>
            <xsl:for-each select="etapp">
              <h2>      
                <xsl:value-of select="etapiNr"/>
                <xsl:text> etapp, </xsl:text>
                <xsl:value-of select="etapiNimi"/>
              </h2>
              <h3>
                <xsl:value-of select="loppKuupaev"/>
                <xsl:text>, </xsl:text>
                <xsl:value-of select="etapiRiik"/>
              </h3>
              <xsl:for-each select="tulemusRida">
                <li>
                  <xsl:value-of select="@koht"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="juht/eesnimi"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="juht/perenimi"/>
                  <xsl:text> (</xsl:text>
                  <xsl:value-of select="juht/riigikood"/>
                  <xsl:text>) </xsl:text>
                  <xsl:value-of select="auto"/>
                  <xsl:text>, </xsl:text>
                  <xsl:value-of select="punktid"/>
                  <xsl:text> p.</xsl:text>
                </li>
              </xsl:for-each>
            </xsl:for-each>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT (teine)

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="html" indent="yes"/>

    <xsl:template match="/">
      <html>
        <head>
          <title>Autoralli tulemused</title>
        </head>
        <body>
          <h1>
            Soome rallisõitjate kohad esikümnes 
          </h1>
          <ul>
          <xsl:for-each select="Autoralli/Võistlussari/etapp">
            <h2>
              <xsl:value-of select="etapiNr"/>
              <xsl:text> etapp, </xsl:text>
              <xsl:value-of select="etapiNimi"/>
            </h2>
            <h3>
              <xsl:value-of select="loppKuupaev"/>
              <xsl:text>, </xsl:text>
              <xsl:value-of select="etapiRiik"/>
            </h3>
            <xsl:for-each select="tulemusRida">
              <xsl:if test="juht/riigikood='FIN'">
            <li>
              <xsl:value-of select="@koht"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="juht/eesnimi"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="juht/perenimi"/>
              <xsl:text>, </xsl:text>              
              <xsl:value-of select="auto"/>
              <xsl:text>, </xsl:text>
              <xsl:value-of select="punktid"/>
              <xsl:text> p.</xsl:text>
            </li>
              </xsl:if>
            </xsl:for-each>
          </xsl:for-each>
          </ul>
        </body>        
      </html>
    </xsl:template>
</xsl:stylesheet>

XSLT (kolmas)

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="html" indent="yes"/>

    <xsl:template match="/">
      <html>
        <head>
          <title>Autoralli tulemused</title>
        </head>
        <body>
          <h1>
            Fordil võistelnud rallisõitjate kohad esikümnes 
          </h1>
          <ul>
          <xsl:for-each select="Autoralli/Võistlussari/etapp">
            <h2>
              <xsl:value-of select="etapiNr"/>
              <xsl:text> etapp, </xsl:text>
              <xsl:value-of select="etapiNimi"/>
            </h2>
            <h3>
              <xsl:value-of select="loppKuupaev"/>
              <xsl:text>, </xsl:text>
              <xsl:value-of select="etapiRiik"/>
            </h3>
            <xsl:for-each select="tulemusRida">
              <xsl:if test="auto='Ford'">
            <li>
              <xsl:value-of select="@koht"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="juht/eesnimi"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="juht/perenimi"/>
              <xsl:text> (</xsl:text>              
              <xsl:value-of select="juht/riigikood"/>
              <xsl:text>), </xsl:text>
              <xsl:value-of select="punktid"/>
              <xsl:text> p.</xsl:text>
            </li>
              </xsl:if>
            </xsl:for-each>
          </xsl:for-each>
          </ul>
        </body>        
      </html>
    </xsl:template>
</xsl:stylesheet>

Veebiteenus

Klientrakendus

Retsensioonid

Meeskond "Offline"

XML on väga lihtsa struktuuriga, kogu info asub atribuutides. Kõik ülesandes nõutu on olemas. XML-il on 4 loogilist dimensiooni: juurelement, maakond, omavalitsus ja asustusüksus.

Esimene stiilifail kuvab html-is XML failis leiduvate omavalitsusüksuste nimed ja tüübid sorteerituna tüübi järgi. Kood on hästi loetav. Kommentaare on piisavalt.

Teine stiilifail kuvab lisaks omavalitsusüksuste nimele ja tüübile ka id-kood. Kood on hästi loetav. Kommentaare on piisavalt.

Teine stiilifail filtreerib XML failist välja rööpnimedega asustusüksuste nimed, rööpnimed, tüübid ja kuvab need tabeli kujul. Kood on hästi loetav. Kommentaare on piisavalt.

Log

5. mai 2012 - laupäev

Mart tegi xml faili ja xsd faili.

6. mai 2012 - pühapäev

Mart lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid.