VRJ: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ruusjarv (talk | contribs)
Ruusjarv (talk | contribs)
Line 373: Line 373:
</pre>
</pre>


XSD on automaatselt genereeritud ja siin palju ütelda ei saa, aga mõned kohad vajavad tähelepanu:<xs:attribute name="id" type="xs:unsignedByte" use="required" />, igal pool id väärtuste tüübiks võiks olla int. Departments elemendi sees vist ei ole vaja sequence, võiks panna All. <xs:attribute name="week" type="xs:unsignedByte" use="required" />, siin on sama vihje, et võiks inti panna. XML esimene transformatioon ei vasta ülesande nõutele, kuid väljastab kogu informatsiooni, mis on olemas ja mis on täitsa piisab kogus informatsiooni ehk täidab  oma ülesande. XML teine transformatsioon on hästi tehtud, kasutatud tsüklid, tingimuste kontrollid, sum, choose jne.  
XSD on automaatselt genereeritud ja siin palju ütelda ei saa, aga mõned kohad vajavad tähelepanu:<xs:attribute name="id" type="xs:unsignedByte" use="required" />, igal pool id väärtuste tüübiks võiks olla int. Departments elemendi sees vist ei ole vaja sequence, võiks panna All. <xs:attribute name="week" type="xs:unsignedByte" use="required" />, siin on sama vihje, et võiks inti panna. XML esimene transformatioon ei vasta ülesande nõutele, kuid väljastab kogu informatsiooni, mis on olemas ja mis on täitsa piisab kogus informatsiooni ehk täidab  oma ülesande. XML teine transformatsioon on hästi tehtud, kasutatud tsüklid, tingimuste kontrollid, sum, choose jne. Kokkuvõtteks:  XML, XSD ja XSLT on hästi loetav, kuid igas punktis on ka puudu jääke. Tundub olema rohkem asi lohakuses, kui oskuse puudumises või võib-olla ei tulnud mõne asja peale.
 
Kokkuvõtteks:  XML, XSD ja XSLT on hästi loetav, kuid igas punktis on ka puudu jääke. Tundub olema rohkem asi lohakuses, kui oskuse puudumises või võib-olla ei tulnud mõne asja peale.
 
 


==== Meeskond Enneagsed ====
==== Meeskond Enneagsed ====

Revision as of 21:10, 27 March 2016

Meeskonna liikmed

  • Jevgeni Gavrilov
  • Vladimir Nitsenko
  • Riho Uusjärv

Teema

Teemaks erinevate autode hoidla, millest väljastame sobiva kriteeriumi järgi HTML-i.

XML

<?xml version="1.0" encoding="utf-8" ?>
<automargid>
  <automark nimetus="Volkswagen" riik="Saksamaa">
    <mudelid>
      <mudel nimi="Passat" varv="punane">
        <andmed>
          <voimsus yhik="kw"><![CDATA[118]]></voimsus>
          <kaigukast><![CDATA[automaat]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[1990]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="Touareg" varv="roheline">
        <andmed>
          <voimsus yhik="kw"><![CDATA[250]]></voimsus>
          <kaigukast><![CDATA[manuaal]]></kaigukast>
          <kutus><![CDATA[bensiin]]></kutus>
          <aasta><![CDATA[2000]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="Jetta" varv="roheline">
        <andmed>
          <voimsus yhik="kw"><![CDATA[100]]></voimsus>
          <kaigukast><![CDATA[manuaal]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[1980]]></aasta>
        </andmed>
      </mudel>
    </mudelid>
  </automark>
  <automark nimetus="Audi" riik="Saksamaa">
    <mudelid>
      <mudel nimi="A8" varv="punane">
        <andmed>
          <voimsus yhik="kw"><![CDATA[200]]></voimsus>
          <kaigukast><![CDATA[automaat]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[2005]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="R8" varv="must">
        <andmed>
          <voimsus yhik="kw"><![CDATA[350]]></voimsus>
          <kaigukast><![CDATA[manuaal]]></kaigukast>
          <kutus><![CDATA[bensiin]]></kutus>
          <aasta><![CDATA[2015]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="A1" varv="valge">
        <andmed>
          <voimsus yhik="kw"><![CDATA[100]]></voimsus>
          <kaigukast><![CDATA[manuaal]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[2008]]></aasta>
        </andmed>
      </mudel>
    </mudelid>
  </automark>
  <automark nimetus="Honda" riik="Jaapan">
    <mudelid>
      <mudel nimi="Accord" varv="kollane">
        <andmed>
          <voimsus yhik="kw"><![CDATA[108]]></voimsus>
          <kaigukast><![CDATA[Manuaal]]></kaigukast>
          <kutus><![CDATA[bensiin]]></kutus>
          <aasta><![CDATA[1988]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="TypeR" varv="punane">
        <andmed>
          <voimsus yhik="kw"><![CDATA[80]]></voimsus>
          <kaigukast><![CDATA[manuaal]]></kaigukast>
          <kutus><![CDATA[bensiin]]></kutus>
          <aasta><![CDATA[1992]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="Civic" varv="must">
        <andmed>
          <voimsus yhik="kw"><![CDATA[130]]></voimsus>
          <kaigukast><![CDATA[manuaal]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[2002]]></aasta>
        </andmed>
      </mudel>
    </mudelid>
  </automark>
  <automark nimetus="Jeep" riik="Ameerika">
    <mudelid>
      <mudel nimi="Grand Cherokee" varv="pruun">
        <andmed>
          <voimsus yhik="kw"><![CDATA[110]]></voimsus>
          <kaigukast><![CDATA[Automaat]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[2005]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="Cherokee" varv="valge">
        <andmed>
          <voimsus yhik="kw"><![CDATA[85]]></voimsus>
          <kaigukast><![CDATA[automaat]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[2005]]></aasta>
        </andmed>
      </mudel>
      <mudel nimi="Wrangler" varv="punane">
        <andmed>
          <voimsus yhik="kw"><![CDATA[89]]></voimsus>
          <kaigukast><![CDATA[manuaal]]></kaigukast>
          <kutus><![CDATA[diisel]]></kutus>
          <aasta><![CDATA[1994]]></aasta>
        </andmed>
      </mudel>
    </mudelid>
      </automark>

    <automark nimetus="Lada" riik="Venemaa">
      <mudelid>
        <mudel nimi="Kalina" varv="oranz">
          <andmed>
            <voimsus yhik="hj"><![CDATA[98]]></voimsus>
            <kaigukast><![CDATA[automaat]]></kaigukast>
            <kutus><![CDATA[bensiin]]></kutus>
            <aasta><![CDATA[2014]]></aasta>
          </andmed>
        </mudel>
        <mudel nimi="Niva" varv="must">
          <andmed>
            <voimsus yhik="kw"><![CDATA[60]]></voimsus>
            <kaigukast><![CDATA[manuaal]]></kaigukast>
            <kutus><![CDATA[bensiin]]></kutus>
            <aasta><![CDATA[2002]]></aasta>
          </andmed>
        </mudel>
        <mudel nimi="110" varv="valge">
          <andmed>
            <voimsus yhik="kw"><![CDATA[59]]></voimsus>
            <kaigukast><![CDATA[manuaal]]></kaigukast>
            <kutus><![CDATA[bensiin]]></kutus>
            <aasta><![CDATA[2001]]></aasta>
          </andmed>
        </mudel>
      </mudelid>
    </automark>>
</automargid>

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="automargid">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="automark">
          <xs:complexType>
            <xs:all>
              <xs:element name="mudelid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="mudel">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="andmed">
                            <xs:complexType>
                              <xs:all>
                                <xs:element name="voimsus">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="yhik" type="xs:string" use="required" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="kaigukast" type="xs:string" />
                                <xs:element name="kutus" type="xs:string" />
                                <xs:element name="aasta" type="xs:int" />
                              </xs:all>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                        <xs:attribute name="nimi" type="xs:string" use="required" />
                        <xs:attribute name="varv" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attribute name="nimetus" type="xs:string" use="required" />
            <xs:attribute name="riik" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT 1

<?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>Autod</title>
      </head>
      <body>
        <h2>Kõikide automarkide autod koos andmetega</h2>
        <xsl:for-each select="/automargid/automark">
            <xsl:value-of select="@nimetus"/>
          <ul>
            <xsl:for-each select="mudelid/mudel">
              <li>
                <xsl:value-of select="@nimi"/>
              </li>
              <ul>
                <xsl:for-each select="andmed">
                  <li>
                    <xsl:text>Võimsus: </xsl:text>
                    <xsl:value-of select="voimsus"/>
                    <xsl:text> </xsl:text>
                    <xsl:value-of select="voimsus/@yhik"/>
                  </li>
                  <li>
                    <xsl:text>Võimsus: </xsl:text>
                    <xsl:value-of select="kaigukast"/>
                  </li>
                  <li>
                    <xsl:text>Kütus: </xsl:text>
                    <xsl:value-of select="kutus"/>
                  </li>
                  <li>
                    <xsl:text>Aasta: </xsl:text>
                    <xsl:value-of select="aasta"/>
                  </li>
                </xsl:for-each>
              </ul>
            </xsl:for-each>
          </ul>

      
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT 1 pilt

XSLT 2

Siin väljastame tolle

<?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>Autod</title>
      </head>
      <body>
        <h2>Kõikide automarkide autod</h2>
        <xsl:for-each select="/automargid/automark">
          <li>
            <b>
              <xsl:value-of select="concat(position(),'/',last(),' - ',@nimetus)"/>
            </b>
          </li>
          <ol>
            <xsl:for-each select="mudelid/mudel">
              <xsl:sort select="andmed/voimsus"/>
              <xsl:choose>
                <xsl:when test="@varv='roheline'">
                  <div style="color:green">
                <li>
                <xsl:value-of select="@nimi"/>
              </li>
                  </div>
                </xsl:when>
                <xsl:when test="@varv='punane'">
                  <div style="color:red">
                    <li>
                      <xsl:value-of select="@nimi"/>
                    </li>
                  </div>
                </xsl:when>
                <xsl:when test="@varv='valge'">
                  <div style="color:gray">
                    <li>
                      <xsl:value-of select="@nimi"/>
                    </li>
                  </div>
                </xsl:when>
                <xsl:when test="@varv='kollane'">
                  <div style="color:yellow">
                    <li>
                      <xsl:value-of select="@nimi"/>
                    </li>
                  </div>
                </xsl:when>
                <xsl:when test="@varv='must'">
                  <div style="color:black">
                    <li>
                      <xsl:value-of select="@nimi"/>
                    </li>
                  </div>
                </xsl:when>
                <xsl:when test="@varv='pruun'">
                  <div style="color:brown">
                    <li>
                      <xsl:value-of select="@nimi"/>
                    </li>
                  </div>
                </xsl:when>
                <xsl:when test="@varv='oranz'">
                  <div style="color:orange">
                    <li>
                      <xsl:value-of select="@nimi"/>
                    </li>
                  </div>
                </xsl:when>
              </xsl:choose>
            </xsl:for-each>
          </ol>
          
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT 2 pilt

Retsensioon

Meeskond Aeg

Selle töö ülesandeks oli luua XML andmefail, kaks XSLT faili XML ja HTML väljunditega ja tiimil kõik need osad on ära tehtud. Loogilisi dimensiooni arv rahuldab püstitatud ülesande, samuti atribuutide arv (id erinev) on kolmel elementidel. Võiks ka olla kasutusel CDATA kus seda vaja, et välistada võimalust, et sisu interpreteeritakse XML-na. Minu arust XML struktuuri võiks natuke parandada ja loogilisem teha: kuna <Logs> on konkreetse <User> logid, siis neid võiks panna alamelementidena, mitte samal tasemel kõrvuti.

<User>
 <Logs>
 </Logs>
</User>

XSD on automaatselt genereeritud ja siin palju ütelda ei saa, aga mõned kohad vajavad tähelepanu:<xs:attribute name="id" type="xs:unsignedByte" use="required" />, igal pool id väärtuste tüübiks võiks olla int. Departments elemendi sees vist ei ole vaja sequence, võiks panna All. <xs:attribute name="week" type="xs:unsignedByte" use="required" />, siin on sama vihje, et võiks inti panna. XML esimene transformatioon ei vasta ülesande nõutele, kuid väljastab kogu informatsiooni, mis on olemas ja mis on täitsa piisab kogus informatsiooni ehk täidab oma ülesande. XML teine transformatsioon on hästi tehtud, kasutatud tsüklid, tingimuste kontrollid, sum, choose jne. Kokkuvõtteks: XML, XSD ja XSLT on hästi loetav, kuid igas punktis on ka puudu jääke. Tundub olema rohkem asi lohakuses, kui oskuse puudumises või võib-olla ei tulnud mõne asja peale.

Meeskond Enneagsed

Selle töö ülesandeks oli luu XML arvete kuvamise andmefail. XML fail täidab dimensioonid nõude, sisaldades 6 dimensiooni. XML atribuutide paigutus on ka ilusti läbimõeldud ja kirja pandud. XSD on sammuti hästi tehtud, vigu silma ei jäänud, kõik atribuudid tundusid olema korrektsed ja läbimõeldult kasutatud. Mõlemat XSLT täidavad kehtestatud nõuded. Esimene kasutab ühte for each tsüklid ja choose elementi, millest väljastatakse täitsa piisava informatsiooniga htmli tabel. Teine XSLT on juba tükk maad keerukam, kasutatakse mitmeid for-each tsükleid ja tingimuse kontrolle. Suur kogus informatsiooni, mida arvelt ootaks (mille eest, kui suur hulk, kui palju, lisa märkused, arve numbrid, koostatud ajad, kontaktid jne.) on suudetud korrektselt väljastada ja hästi paigutatud, sobiks väga hästi mõnele ettevõttele kasutamiseks. Kokkuvõtteks: XML, XSD ja XSLT on hästi loetavad sellise mahuga töö jaoks. Kõik kood tundub olema valvsa pilguga üle käidud ja väga läbimõeldud. Nõuded on täidetud. Töö on hea, kiitused.

Logi

  • 10.03.2016 - Moodustasime meeskonna, wiki põhi valmis, kokkulepitud esimese kodutöö teema.
  • 11.03.2016 - Bitbucket tehtud ja õigused jagatud.
  • 13.03.2016 - Kokkuleppe, mis päevaks peab esimene versioon valmis olema.
  • 15.03.2016 - Wiki täiendamine.
  • 18.03.2016 - Wiki täiendamine.