Meeskond "Vennaskond"

From ICO wiki
Jump to navigationJump to search

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.