-.-: Difference between revisions

From ICO wiki
Jump to navigationJump to search
(Blanked the page)
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Meeskond==


* Erki Miilberg (projektijuht)
* Kalev Vallsalu
* Oliver Naaris
* Margo Kuustik
== Idee ==
== XML fail ==
Ülesande täitmiseks tuleb 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 one enamat, kui lihtsalt ID.
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
  <tooted>
  <alkoholid tootjariik="Eesti">
    <alkohol tyyp="Viin">
      <jook nimetus="Saaremaa Vodka">
        <hind yhik="€">11.10</hind>
        <kangus yhik="%">80</kangus>
      </jook>
      <jook nimetus="Viru Valge">
        <hind yhik="€">8.99</hind>
        <kangus yhik="%">40</kangus>
      </jook>
    </alkohol>
    <alkohol tyyp="Õlu">
      <jook nimetus="Saku Kuld">
        <kangus yhik="%">5.1</kangus>
        <hind yhik="€">1.09</hind>
      </jook>
    </alkohol>
    <alkohol tyyp="Õlu">
      <jook nimetus="Saku Pilsner">
        <kangus yhik="%">4.6</kangus>
        <hind yhik="€">0.77</hind>
      </jook>
    </alkohol>
  </alkoholid>
  <alkoholid tootjariik="Iirimaa">
    <alkohol tyyp="Viski">
      <jook nimetus="Grant's">
        <kangus yhik="%">40</kangus>
        <hind yhik="€">58.25</hind>
      </jook>
    </alkohol>
  </alkoholid>
  <alkoholid tootjariik="Taani">
    <alkohol tyyp="Õlu">
      <jook nimetus="Carlsberg">
        <kangus yhik="%">5</kangus>
        <hind yhik="€">1</hind>
      </jook>
    </alkohol>
    <alkohol tyyp="Õlu">
      <jook nimetus="Tuborg">
        <kangus yhik="%">4.7</kangus>
        <hind yhik="€">0.89</hind>
      </jook>
    </alkohol>
  </alkoholid>
</tooted>
</source>
=== XML schema (XSD) ===
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="tooted">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="alkoholid">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="alkohol">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="jook">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:choice maxOccurs="unbounded">
                            <xs:element name="hind">
                              <xs:complexType>
                                <xs:simpleContent>
                                  <xs:extension base="xs:decimal">
                                    <xs:attribute name="yhik" type="xs:string" use="required" />
                                  </xs:extension>
                                </xs:simpleContent>
                              </xs:complexType>
                            </xs:element>
                            <xs:element name="kangus">
                              <xs:complexType>
                                <xs:simpleContent>
                                  <xs:extension base="xs:unsignedByte">
                                    <xs:attribute name="yhik" type="xs:string" use="required" />
                                  </xs:extension>
                                </xs:simpleContent>
                              </xs:complexType>
                            </xs:element>
                          </xs:choice>
                        </xs:sequence>
                        <xs:attribute name="nimetus" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="tyyp" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="tootjariik" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
</source>
=== XSLT ===
<source lang="xml">
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8"/>
<xsl:template match="/">
  <html>
  <body>
    <table>
      <h1>Alkoholi tabel</h1>
      <tr>
<th>tüüp</th>
<th>nimetus</th>
        <th>kangus</th>
        <th>hind</th>
      </tr>
      <xsl:for-each select="tooted/alkoholid/alkohol">
  <xsl:sort select="jook/kangus" data-type="number" order="descending"/>
      <tr>
<td><xsl:value-of select="@tyyp"/></td>
<td><xsl:value-of select="jook/@nimetus"/></td>
        <td><xsl:value-of select="jook/kangus"/><xsl:value-of select="jook/kangus/@yhik"/></td>
        <td><xsl:value-of select="jook/hind"/><xsl:value-of select="jook/hind/@yhik"/></td>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
</source>
XSLT Output:
<pre>
Alkoholi tabel
tüüp  nimetus        kangus  hind
Viin  Saaremaa Vodka 80%    11.10€
Viski  Grant's        40%    58.25€
Õlu    Saku Kuld      5.1%    1.09€
Õlu    Carlsberg      5%      1€
Õlu    Tuborg        4.7%    0.89€
Õlu    Saku Pilsner  4.6%    0.77€
</pre>
-- teeb tabeli, milles sorteerib kanguse järgi
=== XSLT2 ===
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8"/>
<xsl:template match="/">
  <html>
  <body>
    <table>
      <h1>Alkoholi tabel</h1>
      <tr>
<th>nimetus</th>
        <th>hind</th>
      </tr>
      <xsl:for-each select="tooted/alkoholid/alkohol">
      <xsl:sort select="jook/hind" data-type="number" order="ascending"/>
<tr>
      <td><xsl:value-of select="jook/@nimetus"/></td>
      <xsl:choose>
      <xsl:when test="jook/hind > 10">
        <td bgcolor="#58ACFA">
        <xsl:value-of select="jook/hind"/>
        </td>
      </xsl:when>
      <xsl:otherwise>
        <td><xsl:value-of select="jook/hind"/></td>
      </xsl:otherwise>
      </xsl:choose>
  </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
teeb tabeli, kus on alkoholi nimetus ja hind. Järjestus on kasvav hinna järgi ja  teeb hinnalahtrid, mille väärtus on suurem kui 10 siniseks

Latest revision as of 11:18, 20 November 2013