Koodikommentaatorid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kkebja (talk | contribs)
Omikk (talk | contribs)
Line 517: Line 517:
==Retsensioonid==
==Retsensioonid==
===Retsensioon meeskonnale MS-TO===
===Retsensioon meeskonnale MS-TO===
====XML====
Meeskonna MS-TO on loonud andmestruktuuri inimeste nimede, soo, vanuse, isikukoodi ja kontaktandmete hoidmiseks. Koodis on kasutatud treppimist ning see on hästi loetav. Töö vastab esitatud nelja loogilise dimensiooni nõudele, puudub aga kolmas id-st erinev atribuut, need on olemas kahel elemendil - person ja phone.
XML valideerub vigadeta XMLi reeglitele vastavaks, aga ei valideeru meeskonna poolt loodud skeemifaili vastu.
XML failis on kõikide teksti tüüpi andmete juures kasutatud CDATA plokki. Ehk oleks mõttekam kontrollida keelatud märkide sattumist XML faili - CDATA sees olevat teksti küll ei parsita, aga pahatahtlikult teksti pandud plokki lõpetav ]]> rikuks XMLi struktuuri.
====Skeemifail====
Skeemifailis on vaheldumisi kasutatud nii xs: kui ka xsd: nimeruumi, valima peaks neist ühe ning kasutama ainult seda. Selles tulenevalt on ka näiteks juurelement <xsd:shema> lõpetamata, skeemis on selleks pandud xs: nimeruumi märgend.
Person elemendi id-atribuudi andmetüübiks on pandud int, samas seal hoitav isikukood on suurem arv kui 32bitine märgiga täisarv. Isikukoodi andmetüübiks peaks stringi panema ja andmebaasi seisukohalt võiks id surrogaatvõti olla. Isiku ea atribuudi väärtuseks piisaks lähemas tulevikus ka unsignedByte tüübist.
Skeemifailis puudub mitmeid telefoninumbreid sisaldav phones element, mida on aga kasutatud XML failis.
====Transformatsioonid====
Meeskonna MS-TO poolt on tehtud kaks XMLi transformatsiooni HTMLi genereerimiseks.
Esimeses kuvatakse kõik XML failis sisalduvad isikute andmed, teises filtreeritakse välja ainult meessoo esindajad ja tabelis kuvatakse perekonnanime järgi sorditult eesnimi, perekonnanimi ning sugu.
Soo leidmisel on nutikalt arvestatud Eestis kasutusel oleva isikukoodi vormingut, milles esimene number näitab sugu - tehtud transformatsioonis on leitud meessoo esindajad kolmega algavate isikukoodide väljafiltreerimisega. Ei arvestata aga käesoleval sajandil sündinud inimestega, kellede meessoo esindajate isikukoodid algavad viiega. Univesaalsuse seisukohalt poleks hea sugu isikukoodi järgi leida, andmetesse võib sattuda ka mõni teise riigi kodanik, kelle isikukood ei ole sama skeemiga. XML faili person elemedil on kasutusel ka sex atribuut, soo järgi inimeste leidmiseks võiks siis seda kasutada. Kuna soo atribuudi erinevaid väärtusi on vähe, siis võiks näiteks olla skeemis ka piirang võimalike variantidega. Näiteks midagi sellist:
<pre>
<xs:attribute name="sex" use="required">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[M,F]" />
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>
</pre>
Genereerutud HTML dokumendis on juurelemendi html asemel htm. Vastavast soost isikute mitteleidmisel oleks võib-olla hea jätta ka tabeli päis hoopis genereerimata. Samuti võiks HTML dokumendist välja jätta kujundusega tegelemise (tabeli raamid ja taustavärv).
Kokkuvõtteks võiks korra koodi veel üle vaadata, aga see pole eriti suur töö - Turingil läheks maksimaalselt minut selle peale.
===Retsensioon meeskonnale HMR===
===Retsensioon meeskonnale HMR===



Revision as of 12:57, 14 March 2015

Meeskond /* Anonüümsed koodikommentaatorid */

  • Madis Uudam
  • Kristjan Kebja
  • Olle Mikk

XML

XML andmefail

XML fail

<?xml version="1.0" encoding="utf-8" ?>
<filmikogu>
  <film id="16410" aasta="2013">
    <zanrid>
      <zanr>draama</zanr>
      <zanr>sõjafilm</zanr>
    </zanrid>
    <pealkiri>Mandariinid</pealkiri>
    <kirjeldus>
      <![CDATA[Mängufilmi tegevus leiab aset 1992. aastal Abhaasias. 
    Põline eestlaste küla maalilises paigas mägede ja mere vahel on tühjaks jäänud – abhaasid 
    sõdivad, et Gruusiast lahku lüüa ja sõja lähenedes on eestlased oma ajaloolisele kodumaale 
    tagasi pöördunud. Külla on elama jäänud vaid Ivo (Lembit Ulfsak) ja tema naaber Margus (Elmo Nüganen). 
    Ka Margus kavatseb Eestisse sõita, aga alles pärast seda, kui tema istanduse mandariinisaak on korjatud. 
    Paratamatult jõuab sõda ka nende külani ning toimub grusiinide ja abhaaside verine lahing. Ivo ja 
    Margus leiavad lahingupaigalt ühe ellujäänu – tšetšeen Ahmedi, kelle Ivo enda juurde koju paranema viib.
    Öösel hukkunuid mattes avastab Margus, et üks raskelt haavatud grusiin on samuti elus. Ka tema viiakse 
    Ivo juurde ja nii satuvad ühe katuse alla kaks vastasleeri võitlejat.]]>
    </kirjeldus>
    <naitlejad>
      <naitleja id="10021" peaosa="true">
        <nimi>Lembit Ulfsak</nimi>
        <rollid>
          <roll>Ivo</roll>
        </rollid>
      </naitleja>
      <naitleja id="10022" peaosa="true">
        <nimi>Elmo Nüganen</nimi>
        <rollid>
          <roll>Margus</roll>
        </rollid>
      </naitleja>
      <naitleja id="10023" peaosa="true">
        <nimi>Giorgi Nakashidze</nimi>
        <rollid>
          <roll>Ahmed</roll>
        </rollid>
      </naitleja>
      <naitleja id="10024" peaosa="false">
        <nimi>Misha Meskhi</nimi>
        <rollid>
          <roll>Niko</roll>
        </rollid>
      </naitleja>
      <naitleja id="10025" peaosa="false">
        <nimi>Raivo Trass</nimi>
        <rollid>
          <roll>Juhan</roll>
        </rollid>
      </naitleja>
    </naitlejad>
    <pisipilt id="1" height="140" width="100">
      <url>http://www.efis.ee/UserFiles/EfisFilms/Thumbnails/16533/100x140/81ac6a24304f5fa6b677cad59ba94fe2f9eeda89.jpg</url>
      <alt>Plakat</alt>
    </pisipilt>
    <pildid>
      <pilt id="1" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/3091/800x800/ba31bbf174076de46dba5aff5b0996c4bd3ecd35.jpg</url>
        <alt>Plakat</alt>
      </pilt>
      <pilt id="1" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/3091/800x800/79791015af5008acc355de9b8a7d3d77a2c3303d.jpg</url>
        <alt>Plakat</alt>
      </pilt>
      <pilt id="1" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/3091/800x800/1653f7b76cf58ef749bf92ed2b8a760984dbfcf7.jpg</url>
        <alt>Plakat</alt>
      </pilt>
    </pildid>
  </film>

  <film id="16404" aasta="2015">
    <zanrid>
      <zanr>sõjafilm</zanr>
      <zanr>ajalooline film</zanr>
    </zanrid>
    <pealkiri>1944</pealkiri>
    <kirjeldus>
      <![CDATA[Elmo Nüganeni mängufilm käsitleb 1944. aasta otsustavaid sõjasündmusi Eestis. Tegevus hargneb alates 
      Sinimägede lahingutest juulis kuni Sõrve sääre langemiseni Punaarmee kätte novembri lõpus. Sõda näidatakse mõlema 
      osapoole, nii Saksa armees kui Punaväes sõdivate eestlaste silme läbi. Valikuid tuleb langetada mitte ainult 
      sõduritel, vaid ka nende lähedastel. Teine maailmasõda oli eestlastele ka vennatapusõda. Süütud tunnevad ennast 
      süüdi, suured süüdlased ei tunne midagi.]]>
    </kirjeldus>
    <naitlejad>
      <naitleja id="10011" peaosa="true">
        <nimi>Kaspar Velberg</nimi>
        <rollid>
          <roll>Karl Tammik</roll>
        </rollid>
      </naitleja>
      <naitleja id="10012" peaosa="true">
        <nimi>Kristjan Üksküla</nimi>
        <rollid>
          <roll>Jüri Jõgi</roll>
        </rollid>
      </naitleja>
      <naitleja id="10013" peaosa="true">
        <nimi>Maiken Schmidt</nimi>
        <rollid>
          <roll>Aino Tammik</roll>
        </rollid>
      </naitleja>
      <naitleja id="10014" peaosa="false">
        <nimi>Gert Raudsep</nimi>
        <rollid>
          <roll>Ants Saareste</roll>
        </rollid>
      </naitleja>
      <naitleja id="10015" peaosa="false">
        <nimi>Hendrik Toompere jr jr</nimi>
        <rollid>
          <roll>Kristjan Põder</roll>
        </rollid>
      </naitleja>
      <naitleja id="10016" peaosa="false">
        <nimi>Karl-Andreas Kalmet</nimi>
        <rollid>
          <roll>Vladimir Kamenski</roll>
        </rollid>
      </naitleja>
      <naitleja id="10017" peaosa="false">
        <nimi>Henrik Kalmet</nimi>
        <rollid>
          <roll>Voldemar Piir</roll>
        </rollid>
      </naitleja>
    </naitlejad>
    <pisipilt id="50" height="140" width="100">
      <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/4273/350x230/a9d76f1d500312167c5755065eb1b258ae18afbd.jpg</url>
      <alt>Plakat</alt>
    </pisipilt>
    <pildid>
      <pilt id="52" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/4330/800x800/b02751f3222334ef02df0273f865ac246cc8b972.jpg</url>
        <alt>Pilt</alt>
      </pilt>
      <pilt id="53" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/4330/800x800/58ee27f597655a33adb7d740ae738f9f6b6c5cd0.JPG</url>
        <alt>Pilt</alt>
      </pilt>
      <pilt id="54" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/4330/800x800/e9ff41eb668b30c2b36cca28e9eb298f74034965.jpg</url>
        <alt>Pilt</alt>
      </pilt>
    </pildid>
  </film>

  <film id="742" aasta="1980">
    <zanrid>
      <zanr>mängufilm</zanr>
      <zanr>draama</zanr>
    </zanrid>
    <pealkiri>Ideaalmaastik</pealkiri>
    <kirjeldus>
      <![CDATA[1950ndate algus. Komsomoliaktivist Mait Kukemeri lähetatakse maale kevadkülvi tempot tõstma. Kolhoosnikud 
      eesotsas esimees Tuvikesega ei kiirusta põllule, sest madalad maad on liiga märjad. Ka seemnevilja ei jätku, ülemused 
      linnas aga nõuavad tulemusi. Noorel külvivolinikul tuleb leida lahendus, olgu hea või kurjaga, ja sel helgel ja hullul
      kevadel saab ta mõndagi teada nii elust kui enesest.]]>
    </kirjeldus>
    <naitlejad>
      <naitleja id="10031" peaosa="true">
        <nimi>Arvo Kukumägi</nimi>
      </naitleja>
      <rollid>
        <roll>Volinik, Mait Kukemeri</roll>
      </rollid>
      <naitleja id="10032" peaosa="true">
        <nimi>Tõnu Kark</nimi>
        <rollid>
          <roll>Esimees, Harald Tuvike</roll>
        </rollid>
      </naitleja>
      <naitleja id="10033" peaosa="true">
        <nimi>Kalju Komissarov</nimi>
        <rollid>
          <roll>Rajoonikomitee sekretär</roll>
        </rollid>
      </naitleja>
      <naitleja id="10034" peaosa="false">
        <nimi>Priit Adamson</nimi>
        <rollid>
          <roll>Asser</roll>
        </rollid>
      </naitleja>
      <naitleja id="10035" peaosa="false">
        <nimi>Reet Paavel</nimi>
        <rollid>
          <roll>Pioneerijuht, Liina</roll>
        </rollid>
      </naitleja>
      <naitleja id="10036" peaosa="false">
        <nimi>Paul Poom</nimi>
        <rollid>
          <roll> Peeter Viksur</roll>
        </rollid>
      </naitleja>
      <naitleja id="10037" peaosa="false">
        <nimi>Aire Johanson</nimi>
        <rollid>
          <roll>Viksuri naine</roll>
        </rollid>
      </naitleja>
      <naitleja id="10038" peaosa="false">
        <nimi>Urmas Kibuspuu</nimi>
        <rollid>
          <roll>Vidrik Kits</roll>
        </rollid>
      </naitleja>
      <naitleja id="10039" peaosa="false">
        <nimi>Aarne Üksküla</nimi>
        <rollid>
          <roll>Liina isa</roll>
        </rollid>
      </naitleja>
    </naitlejad>
    <pisipilt id="61" height="140" width="100">
      <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/168/350x230/795a041ca7a54dde68713438c8ef4ac7d9518d70.jpg</url>
      <alt>Plakat</alt>
    </pisipilt>
    <pildid>
      <pilt id="62" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/200/800x800/9b7c9a7958e86359e4abd1b34ab0d0fc130f92cf.jpg</url>
        <alt>Plakat</alt>
      </pilt>
      <pilt id="63" height="493" width="740">
        <url>http://www.efis.ee/UserFiles/EfisFilms/FilmGalleryFiles/200/800x800/7f8aaa6bad1364fe7e959cb0f9bdc3c77fd8003d.jpg</url>
        <alt>Plakat</alt>
      </pilt>
    </pildid>
  </film>
</filmikogu>

XML-i skeemifail

XSD fail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="filmikogu">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="film">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="zanrid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="zanr" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="pealkiri" type="xs:string" />
              <xs:element name="kirjeldus" type="xs:string" />
              <xs:element minOccurs="0" name="naitlejad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="naitleja">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimi" type="xs:string" />
                          <xs:element name="rollid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="roll" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                        <xs:attribute name="peaosa" use="required">
                          <xs:simpleType>
                            <xs:restriction base="xs:boolean">
                              <xs:pattern value="false" />
                              <xs:pattern value="true" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:attribute>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="pisipilt">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="url" type="xs:string" />
                    <xs:element name="alt" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="height" type="xs:unsignedShort" use="required" />
                  <xs:attribute name="width" type="xs:unsignedShort" use="required" />
                </xs:complexType>
              </xs:element>
              <xs:element minOccurs="0" name="pildid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="pilt">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="url" type="xs:string" />
                          <xs:element name="alt" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                        <xs:attribute name="height" type="xs:unsignedShort" use="required" />
                        <xs:attribute name="width" type="xs:unsignedShort" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedInt" use="required" />
            <xs:attribute name="aasta" type="xs:gYear" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSL failid

<?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>Filmid</title>
        <link rel="stylesheet" type="text/css" href="http://enos.itcollege.ee/~omikk/VR2/filmid.css" />
      </head>
      <body>
        <div id="wrapper">
          <xsl:for-each select ="filmikogu/film">
            <div class="film">
              <h2>
                <xsl:value-of select="pealkiri"/>
              </h2>
              <ul>
                <li>
                  <xsl:value-of select="@aasta"/>
                </li>
                <li>
                  <xsl:for-each select="zanrid/zanr">
                    <xsl:value-of select="."/>
                    <xsl:if test="position() != last()">, </xsl:if>
                  </xsl:for-each>
                </li>
              </ul>
              <div class="clear"></div>
              <div>
                <xsl:for-each select="pisipilt">
                  <img class="thumbnail">
                    <xsl:attribute name="src">
                      <xsl:value-of select="url"/>
                    </xsl:attribute>
                    <xsl:attribute name="alt">
                      <xsl:value-of select="alt"/>
                    </xsl:attribute>
                    <xsl:attribute name="height">
                      <xsl:value-of select="@height"/>
                    </xsl:attribute>
                    <xsl:attribute name="width">
                      <xsl:value-of select="@width"/>
                    </xsl:attribute>
                  </img>
                </xsl:for-each>
                <p>
                  <xsl:value-of select="kirjeldus"/>
                </p>
              </div>
              <div class="clear"></div>
              <xsl:if test="naitlejad">
                <h3>Osatäitjad</h3>
                <table>
                  <tr>
                    <th>Näitleja</th>
                    <th>Roll</th>
                  </tr>
                  <xsl:for-each select="naitlejad/naitleja">
                    <tr>
                      <td>
                        <xsl:value-of select="nimi"/>
                        <xsl:if test="@peaosa = 'true' ">
                          <xsl:text> (peaosa)</xsl:text>
                        </xsl:if>
                      </td>
                      <td>
                        <xsl:for-each select="rollid/roll">
                          <xsl:value-of select="."/>
                          <xsl:if test="position() != last()">, </xsl:if>
                        </xsl:for-each>
                      </td>
                    </tr>
                  </xsl:for-each>
                </table>
              </xsl:if>
              <xsl:for-each select="pildid/pilt">
                <img>
                  <xsl:attribute name="src">
                    <xsl:value-of select="url"/>
                  </xsl:attribute>
                  <xsl:attribute name="alt">
                    <xsl:value-of select="alt"/>
                  </xsl:attribute>
                  <xsl:attribute name="height">
                    <xsl:value-of select="@height"/>
                  </xsl:attribute>
                  <xsl:attribute name="width">
                    <xsl:value-of select="@width"/>
                  </xsl:attribute>
                </img>
              </xsl:for-each>
            </div>
          </xsl:for-each>
        </div>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
<?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>Filmid</title>
        <link rel="stylesheet" type="text/css" href="http://enos.itcollege.ee/~omikk/VR2/filmid.css" />
      </head>
      <body>
        <div id="wrapper">
          <h1>Filmikogu</h1>
          <xsl:for-each select="filmikogu/film">
            <xsl:sort select="@aasta"/>
            <div class="film">
              <h2>
                <xsl:value-of select="pealkiri"/>
              </h2>
              <ul>
                <li>
                  <xsl:value-of select="@aasta"/>
                </li>
                <li>
                  <xsl:for-each select="zanrid/zanr">
                    <xsl:value-of select="."/>
                    <xsl:if test="position() != last()">, </xsl:if>
                  </xsl:for-each>
                  <li>
                    <xsl:for-each select="naitlejad/naitleja[@peaosa='true']">
                      <xsl:value-of select="nimi"/>
                      <xsl:if test="position() != last()">, </xsl:if>
                    </xsl:for-each>
                  </li>
                </li>
              </ul>
              <div class="clear"></div>
              <div>
                <xsl:for-each select="pisipilt">
                  <img class="thumbnail">
                    <xsl:attribute name="src">
                      <xsl:value-of select="url"/>
                    </xsl:attribute>
                    <xsl:attribute name="alt">
                      <xsl:value-of select="alt"/>
                    </xsl:attribute>
                    <xsl:attribute name="height">
                      <xsl:value-of select="@height"/>
                    </xsl:attribute>
                    <xsl:attribute name="width">
                      <xsl:value-of select="@width"/>
                    </xsl:attribute>
                  </img>
                </xsl:for-each>
                <p>
                  <xsl:choose>
                    <xsl:when test="string-length(kirjeldus) > 330">
                      <xsl:value-of select="substring-before(kirjeldus, substring-after(substring(kirjeldus,330),' '))"/>
                      <xsl:text>...</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:value-of select="kirjeldus"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </p>
              </div>
            </div>
          </xsl:for-each>
        </div>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Retsensioonid

Retsensioon meeskonnale MS-TO

XML

Meeskonna MS-TO on loonud andmestruktuuri inimeste nimede, soo, vanuse, isikukoodi ja kontaktandmete hoidmiseks. Koodis on kasutatud treppimist ning see on hästi loetav. Töö vastab esitatud nelja loogilise dimensiooni nõudele, puudub aga kolmas id-st erinev atribuut, need on olemas kahel elemendil - person ja phone.

XML valideerub vigadeta XMLi reeglitele vastavaks, aga ei valideeru meeskonna poolt loodud skeemifaili vastu. XML failis on kõikide teksti tüüpi andmete juures kasutatud CDATA plokki. Ehk oleks mõttekam kontrollida keelatud märkide sattumist XML faili - CDATA sees olevat teksti küll ei parsita, aga pahatahtlikult teksti pandud plokki lõpetav ]]> rikuks XMLi struktuuri.

Skeemifail

Skeemifailis on vaheldumisi kasutatud nii xs: kui ka xsd: nimeruumi, valima peaks neist ühe ning kasutama ainult seda. Selles tulenevalt on ka näiteks juurelement <xsd:shema> lõpetamata, skeemis on selleks pandud xs: nimeruumi märgend.

Person elemendi id-atribuudi andmetüübiks on pandud int, samas seal hoitav isikukood on suurem arv kui 32bitine märgiga täisarv. Isikukoodi andmetüübiks peaks stringi panema ja andmebaasi seisukohalt võiks id surrogaatvõti olla. Isiku ea atribuudi väärtuseks piisaks lähemas tulevikus ka unsignedByte tüübist.

Skeemifailis puudub mitmeid telefoninumbreid sisaldav phones element, mida on aga kasutatud XML failis.

Transformatsioonid

Meeskonna MS-TO poolt on tehtud kaks XMLi transformatsiooni HTMLi genereerimiseks. Esimeses kuvatakse kõik XML failis sisalduvad isikute andmed, teises filtreeritakse välja ainult meessoo esindajad ja tabelis kuvatakse perekonnanime järgi sorditult eesnimi, perekonnanimi ning sugu.

Soo leidmisel on nutikalt arvestatud Eestis kasutusel oleva isikukoodi vormingut, milles esimene number näitab sugu - tehtud transformatsioonis on leitud meessoo esindajad kolmega algavate isikukoodide väljafiltreerimisega. Ei arvestata aga käesoleval sajandil sündinud inimestega, kellede meessoo esindajate isikukoodid algavad viiega. Univesaalsuse seisukohalt poleks hea sugu isikukoodi järgi leida, andmetesse võib sattuda ka mõni teise riigi kodanik, kelle isikukood ei ole sama skeemiga. XML faili person elemedil on kasutusel ka sex atribuut, soo järgi inimeste leidmiseks võiks siis seda kasutada. Kuna soo atribuudi erinevaid väärtusi on vähe, siis võiks näiteks olla skeemis ka piirang võimalike variantidega. Näiteks midagi sellist:

<xs:attribute name="sex" use="required">
   <xs:simpleType>
     <xs:restriction base="xs:string">
       <xs:pattern value="[M,F]" />
     </xs:restriction>
   </xs:simpleType>
</xs:attribute>

Genereerutud HTML dokumendis on juurelemendi html asemel htm. Vastavast soost isikute mitteleidmisel oleks võib-olla hea jätta ka tabeli päis hoopis genereerimata. Samuti võiks HTML dokumendist välja jätta kujundusega tegelemise (tabeli raamid ja taustavärv).

Kokkuvõtteks võiks korra koodi veel üle vaadata, aga see pole eriti suur töö - Turingil läheks maksimaalselt minut selle peale.

Retsensioon meeskonnale HMR

Veebiteenus

Analüüs

Retsensioon

Klientrakendus

Retsensioon

Logi