VVA: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 392: Line 392:
Meeskonna "Givela" XML failide sisu leiab [https://wiki.itcollege.ee/index.php/Givela siit!]
Meeskonna "Givela" XML failide sisu leiab [https://wiki.itcollege.ee/index.php/Givela siit!]


Meeskond "Givela" on koostanud XML failid oma tulevasele süsteemile, mis hakkab erinevaid asju (enamasti rahalise väärtuseta) annetamiseks kuvama. Töö on esitatud õigeaegselt. XML kood läbis edukalt valideerimise ja töötab ilusti, andmed kuvatakse korrektselt. Kasutajatele kuvatakse järgmiseid andmeid: müüjate kasutajanimed, "asjade" kategooriad, nimetused, pildid ja kommentaarid. Esitatud on kõik nõutud failide sisud ja XML struktuur sisaldab vähemalt 4 loogilist dimensiooni, lisaks on kasutatud atribuute enam kui kolmel tasemel ja on kasutatud CDATA't, seega vastab töö nõuetele. XSLT fail on korras, on kasutatud rohkemat kui ühte for-eachi nagu nõue ette näeb. Transformatsiooni käigus kasutatakse parameetreid ning ka erinevaid tingimuste kontrolle. Puudused: kommenteeritus ja dokumentatsioon puuduvad, XSLT faile peaks olema kaks tükki, paraku on siin vaid üks. Üldiselt arvame, et töö on tehtud hästi ja anname hinnanguks „hea“, kuid peab puuduste kallal veel veidi tööd tegema. Idee on päris hea ning soovime meeskonnale "Givela" jõudu oma eesmärgi saavutamiseks!
Meeskond "Givela" on koostanud XML failid oma tulevasele süsteemile, mis hakkab erinevaid asju (enamasti rahalise väärtuseta) annetamiseks kuvama. Töö on esitatud õigeaegselt. XML kood läbis edukalt valideerimise ja töötab ilusti, andmed kuvatakse korrektselt. Kasutajatele kuvatakse järgmiseid andmeid: müüjate kasutajanimed, "asjade" kategooriad, nimetused, pildid ja kommentaarid. Esitatud on kõik nõutud failide sisud ja XML struktuur sisaldab vähemalt 4 loogilist dimensiooni, lisaks on kasutatud atribuute enam kui kolmel tasemel ja on kasutatud CDATA't, seega vastab töö nõuetele. XSLT fail on korras, on kasutatud rohkemat kui ühte for-eachi nagu nõue ette näeb. Transformatsiooni käigus kasutatakse parameetreid ning ka erinevaid tingimuste kontrolle. Puudused: kommenteeritus ja dokumentatsioon puuduvad, XSLT faile peaks olema kaks tükki, paraku on siin vaid üks. Arusaamatuks jäi see, et antud süsteem peaks asju ikkagi müüma. Saadud raha pärast annetatakse heategevusele, kuid "annetamis" hinda toodete juures ei ole, ehk siis võttes vastu näiteks külmiku inimene võib annetada ainult 1 euro senti. Peaks vist mingi algeline hind ikkagi olema, millest võiks annetamise summa algata. Üldiselt arvame, et töö on tehtud hästi ja anname hinnanguks „hea“, kuid peab puuduste kallal veel veidi tööd tegema. Idee on päris hea ning soovime meeskonnale "Givela" jõudu oma eesmärgi saavutamiseks!


== Arendusprotsess ==
== Arendusprotsess ==

Revision as of 17:17, 26 March 2016

Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine"

Meeskond

  • Aleksandr Babõkin
  • Vladislav Kovaltšuk
  • Andrei Tverskoi
  • Vladislav Lahtarin


Idee

XML/XSD/XSLT

XML

<?xml version="1.0" encoding="utf-8" ?>
<arvutid>
  <arvuti>
    <liik>
      <![CDATA[Sülearvuti:]]>
      <firma><![CDATA[Apple]]></firma>
      <tyyp><![CDATA[MacBook Pro]]></tyyp>
      <hind><![CDATA[2500]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i7]]></mudel>
        <sagedus><![CDATA[2.5 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[AMD]]></tootja>
        <mudel><![CDATA[Radeon R9 M370X]]></mudel>
        <malu><![CDATA[2 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR4]]></tyyp>
        <malu><![CDATA[16 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[SSD]]></tyyp>
        <malu><![CDATA[512 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti>
    <liik>
      <![CDATA[Lauaarvuti:]]>
      <firma><![CDATA[HP]]></firma>
      <tyyp><![CDATA[Office]]></tyyp>
      <hind><![CDATA[350]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[Core™ i3-4170]]></mudel>
        <sagedus><![CDATA[3.70 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[HD Graphics 4400]]></mudel>
        <malu><![CDATA[1.8 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR3]]></tyyp>
        <malu><![CDATA[4 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[SSD]]></tyyp>
        <malu><![CDATA[120 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti>
    <liik>
      <![CDATA[Lauaarvuti:]]>
      <firma><![CDATA[Acer]]></firma>
      <tyyp><![CDATA[Gamer Plus]]></tyyp>
      <hind><![CDATA[1350]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i5-6600K]]></mudel>
        <sagedus><![CDATA[3.90 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[MSI]]></tootja>
        <mudel><![CDATA[Geforce GTX 960]]></mudel>
        <malu><![CDATA[4 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Kingstone]]></tootja>
        <tyyp><![CDATA[DDR4]]></tyyp>
        <malu><![CDATA[16 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Seagate]]></tootja>
        <tyyp><![CDATA[HDD]]></tyyp>
        <malu><![CDATA[1 TB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti>
    <liik>
      <![CDATA[Lauaarvuti:]]>
      <firma><![CDATA[Dell]]></firma>
      <tyyp><![CDATA[Gamer lite]]></tyyp>
      <hind><![CDATA[1000]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i3-4170]]></mudel>
        <sagedus><![CDATA[3.70 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Nvidia]]></tootja>
        <mudel><![CDATA[Geforce GT730]]></mudel>
        <malu><![CDATA[2 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR3]]></tyyp>
        <malu><![CDATA[4 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Seagate]]></tootja>
        <tyyp><![CDATA[HDD]]></tyyp>
        <malu><![CDATA[500 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti>
    <liik>
      <![CDATA[Sülearvuti:]]>
      <firma><![CDATA[MSI]]></firma>
      <tyyp><![CDATA[Gaming laptop]]></tyyp>
      <hind><![CDATA[3000]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i7-6820HK]]></mudel>
        <sagedus><![CDATA[2.7 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Nvidia]]></tootja>
        <mudel><![CDATA[Geforce GTX970M]]></mudel>
        <malu><![CDATA[6 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR4]]></tyyp>
        <malu><![CDATA[8 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[SSD]]></tyyp>
        <malu><![CDATA[256 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
  <arvuti>
    <liik>
      <![CDATA[Sülearvuti:]]>
      <firma><![CDATA[Toshiba]]></firma>
      <tyyp><![CDATA[Work laptop]]></tyyp>
      <hind><![CDATA[600]]></hind>
      <valuuta><![CDATA[EUR]]></valuuta>
    </liik>
    <konfiguratsioon>
      <protsessor name="Protsessor">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[i3-4030U]]></mudel>
        <sagedus><![CDATA[1.9 GHz]]></sagedus>
      </protsessor>
      <videokaart name="Videokaart">
        <tootja><![CDATA[Intel®]]></tootja>
        <mudel><![CDATA[HD Graphics 4400]]></mudel>
        <malu><![CDATA[1 GB]]></malu>
      </videokaart>
      <operatiivmalu name="Operatiivmälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[DDR3]]></tyyp>
        <malu><![CDATA[4 GB]]></malu>
      </operatiivmalu>
      <pysimalu name="Püsimälu">
        <tootja><![CDATA[Samsung]]></tootja>
        <tyyp><![CDATA[HDD]]></tyyp>
        <malu><![CDATA[256 GB]]></malu>
      </pysimalu>
    </konfiguratsioon>
  </arvuti>
</arvutid>

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="arvutid">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="arvuti">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="liik">
                <xs:complexType mixed="true">
                  <xs:sequence>
                    <xs:element name="firma" type="xs:string" />
                    <xs:element name="tyyp" type="xs:string" />
                    <xs:element name="hind" type="xs:integer" />
                    <xs:element name="valuuta" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="konfiguratsioon">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="protsessor">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="sagedus" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="videokaart">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="malu" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="operatiivmalu">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="tyyp" type="xs:string" />
                          <xs:element name="malu" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="pysimalu">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tootja" type="xs:string" />
                          <xs:element name="tyyp" type="xs:string" />
                          <xs:element name="malu" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT Kuvab kõik arvutid ja nende komponendide kirjeldust

<?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>Arvutid</title>
      </head>
      <body>
        <xsl:for-each select="arvutid/arvuti">
          <h2>
            <xsl:value-of select="firma" />
            <xsl:value-of select="liik" />
            <xsl:value-of select="tyyp"/>
            <xsl:value-of select="hind"/>
            <xsl:value-of select="valuuta"/>
          </h2>
          <xsl:for-each select="konfiguratsioon/protsessor">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
          <xsl:for-each select="konfiguratsioon/videokaart">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
          <xsl:for-each select="konfiguratsioon/operatiivmalu">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
          <xsl:for-each select="konfiguratsioon/pysimalu">
            <h4>
              <xsl:value-of select="@name"/>
            </h4>
            <ul>
              <li>
                <xsl:value-of select="."/>
              </li>
            </ul>
          </xsl:for-each>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT Kuvab arvutite nimetust, mudelit ja hinda. Hind on sorteeritud kasvamise järjekorras

<?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>Hinna järgi</title>
      </head>
      <body>
        <table border="2">
          <tr>
            <th>Firma</th>
            <th>Mudel</th>
            <th>Hind</th>
          </tr>
          <xsl:for-each select="arvutid/arvuti/liik">
            <xsl:sort select="hind" data-type="number"></xsl:sort>
            <tr>
              <td>
                <xsl:value-of select="firma"/>
              </td>
              <td>
                <xsl:value-of select="tyyp"/>
              </td>
              <td>
                <xsl:value-of select="hind"/>
                <xsl:text> </xsl:text>
                <xsl:value-of select="valuuta"/>
              </td>
            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Retsensioon XML-failide kohta meeskonnale "Givela"

Meeskonna "Givela" XML failide sisu leiab siit!

Meeskond "Givela" on koostanud XML failid oma tulevasele süsteemile, mis hakkab erinevaid asju (enamasti rahalise väärtuseta) annetamiseks kuvama. Töö on esitatud õigeaegselt. XML kood läbis edukalt valideerimise ja töötab ilusti, andmed kuvatakse korrektselt. Kasutajatele kuvatakse järgmiseid andmeid: müüjate kasutajanimed, "asjade" kategooriad, nimetused, pildid ja kommentaarid. Esitatud on kõik nõutud failide sisud ja XML struktuur sisaldab vähemalt 4 loogilist dimensiooni, lisaks on kasutatud atribuute enam kui kolmel tasemel ja on kasutatud CDATA't, seega vastab töö nõuetele. XSLT fail on korras, on kasutatud rohkemat kui ühte for-eachi nagu nõue ette näeb. Transformatsiooni käigus kasutatakse parameetreid ning ka erinevaid tingimuste kontrolle. Puudused: kommenteeritus ja dokumentatsioon puuduvad, XSLT faile peaks olema kaks tükki, paraku on siin vaid üks. Arusaamatuks jäi see, et antud süsteem peaks asju ikkagi müüma. Saadud raha pärast annetatakse heategevusele, kuid "annetamis" hinda toodete juures ei ole, ehk siis võttes vastu näiteks külmiku inimene võib annetada ainult 1 euro senti. Peaks vist mingi algeline hind ikkagi olema, millest võiks annetamise summa algata. Üldiselt arvame, et töö on tehtud hästi ja anname hinnanguks „hea“, kuid peab puuduste kallal veel veidi tööd tegema. Idee on päris hea ning soovime meeskonnale "Givela" jõudu oma eesmärgi saavutamiseks!

Arendusprotsess

  1. 16.03.16 - XML, XSD ja XSLT tegemine
  2. 18.03.16 - XML, XSD ja XSLT lisamine wiki'sse
  3. 26.03.16 - Retsensioon XML-failide kohta