VRJ: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 216: Line 216:
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
     xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
>
    <xsl:output method="html" indent="yes"/>
  <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:template match="/">
      <html>
        <head>
          <title>Autod</title>
        </head>
        <body>
          <h2>Kõikide automarkide autod</h2>
          <xsl:for-each select="/automargid/automark">
            <li>
              <xsl:value-of select="nimi"/>
            </li>
            <ul>
              <xsl:for-each select="mudelid/mudel">
                <li>
                  <xsl:value-of select="."/>
                </li>
              </xsl:for-each>
            </ul>
          </xsl:for-each>
        </body>
      </html>
        
        
     </xsl:template>
        </xsl:for-each>
      </body>
     </html>
  </xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
</pre>
</pre>

Revision as of 10:25, 18 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

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.