User:Meeskond: VeebiGurmaanid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 269: Line 269:


   </xsl:template>
   </xsl:template>
</xsl:stylesheet>
</source>
===XSLT_Teine===
XSLT => XML: Retsepti komponentide kuvamine retsepti ID järgi.
<source lang="xml">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:element name="retseptid">
<xsl:for-each select="retseptiraamat/retseptid/retsept">
<xsl:element name="retsept">
<xsl:attribute name="retseptID">
<xsl:value-of select="@retseptID"/>
</xsl:attribute>
<xsl:copy-of select="komponendid"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
</source>
</source>

Revision as of 16:50, 20 March 2017

Meeskond: VeebiGurmaanid

Meeskond

  • Koit Kõrvel
  • Marko Kask
  • Melissa Eenmaa
  • Joosep Koort

Idee

XML fail

Retseptid koos nende valmistamisjuhenditega.

<?xml version="1.0" encoding="utf-8"?>
<retseptiraamat>
  <retseptid>
    <retsept retseptID="1" autorId="1" kategooria="kalatoidud" nimetus="kalasupp">
      <komponendid>
        <komponent komponentID="1" nimetus="vesi" komponentMootyhik="dl" kogus="200">Vesi</komponent>
        <komponent komponentID="2" nimetus="kala" komponentMootyhik="g" kogus="300">Kala</komponent>
        <komponent komponentID="3" nimetus="kartul" komponentMootyhik="g" kogus="100">Kartul</komponent>
        <komponent komponentID="4" nimetus="porgand" komponentMootyhik="g" kogus="100">Porgand</komponent>
        <komponent komponentID="5" nimetus="till" komponentMootyhik="g" kogus="10">Till</komponent>
        <komponent komponentID="6" nimetus="kaalikas" komponentMootyhik="g" kogus="50">Kaalikas</komponent>
      </komponendid>
      <valmistamisjuhendid>
        <valmistamisjuhend>1.Hakkida juurviljad</valmistamisjuhend>
        <valmistamisjuhend>2.Lisada kala</valmistamisjuhend>
        <valmistamisjuhend>3.Keeta 20 minutit</valmistamisjuhend>
      </valmistamisjuhendid>
    </retsept>
    <retsept retseptID="2" autorId="2" kategooria="linnulihatoidud" nimetus="kanapasta">
      <komponendid>
        <komponent komponentID="7" nimetus="kanafilee" komponentMootyhik="g" kogus="300">Kanafilee</komponent>
        <komponent komponentID="8" nimetus="makaronid" komponentMootyhik="g" kogus="300">Makaronid</komponent>
        <komponent komponentID="9" nimetus="sinihalitusjuust" komponentMootyhik="g" kogus="30">Sinihallitusjuust</komponent>
        <komponent komponentID="4" nimetus="porgand" komponentMootyhik="g" kogus="70">Porgand</komponent>
        <komponent komponentID="5" nimetus="till" komponentMootyhik="g" kogus="10">Till</komponent>
        <komponent komponentID="10" nimetus="sibul" komponentMootyhik="g" kogus="50">Sibul</komponent>
      </komponendid>
      <valmistamisjuhendid>
        <valmistamisjuhend>1.Praadida kanafilee</valmistamisjuhend>
        <valmistamisjuhend>2.Keeta makaronid</valmistamisjuhend>
        <valmistamisjuhend>3.Segada k�ik kokku</valmistamisjuhend>
      </valmistamisjuhendid>
    </retsept>
    <retsept retseptID="3" autorId="2" kategooria="taimetoidud" nimetus="lihata praekartulid">
      <komponendid>
        <komponent komponentID="3" nimetus="kartul" komponentMootyhik="g" kogus="100">Kartul</komponent>
        <komponent komponentID="5" nimetus="till" komponentMootyhik="g" kogus="10">Till</komponent>
        <komponent komponentID="10" nimetus="sibul" komponentMootyhik="g" kogus="50">Sibul</komponent>
        <komponent komponentID="11" nimetus="toidu�li" komponentMootyhik="g" kogus="5">Toidu�li</komponent>
        <komponent komponentID="12" nimetus="sool" komponentMootyhik="g" kogus="1">Sool</komponent>
      </komponendid>
      <valmistamisjuhendid>
        <valmistamisjuhend>1.Kuumuta pannil �li</valmistamisjuhend>
        <valmistamisjuhend>2.Lisa kartulid ja sibul,prae 15 minutit</valmistamisjuhend>
        <valmistamisjuhend>3.Maitsesta soolaga</valmistamisjuhend>
      </valmistamisjuhendid>
    </retsept>
   <retsept retseptID="4" autorId="2" kategooria="magustoidud" nimetus="hõrk kohuke">
      <komponendid>
        <komponent komponentID="1" nimetus="vesi" komponentMootyhik="dl" kogus="20">Vesi</komponent>
        <komponent komponentID="13" nimetus="kohupiim" komponentMootyhik="g" kogus="100">Kohupiim</komponent>
        <komponent komponentID="14" nimetus="suhkur" komponentMootyhik="g" kogus="50">Suhkur</komponent>
        <komponent komponentID="15" nimetus="šokolaad" komponentMootyhik="g" kogus="75">Šokolaad</komponent>
      </komponendid>
      <valmistamisjuhendid>
        <valmistamisjuhend>1.Maitsestada kohupiim</valmistamisjuhend>
        <valmistamisjuhend>2.Šokolaad tuleb panna sulama</valmistamisjuhend>
        <valmistamisjuhend>3.Kata kohupiim õrna šokolaadi kihiga.</valmistamisjuhend>
      </valmistamisjuhendid>
    </retsept>
   <retsept retseptID="5" autorId="1" kategooria="pirukad" nimetus="porgandipirukad">
      <komponendid>
        <komponent komponentID="4" nimetus="porgand" komponentMootyhik="g" kogus="100">Porgand</komponent>
        <komponent komponentID="14" nimetus="suhkur" komponentMootyhik="g" kogus="20">Suhkur</komponent>
        <komponent komponentID="10" nimetus="sibul" komponentMootyhik="g" kogus="50">Sibul</komponent>
        <komponent komponentID="11" nimetus="toidu�li" komponentMootyhik="g" kogus="30">Toidu�li</komponent>
        <komponent komponentID="12" nimetus="sool" komponentMootyhik="g" kogus="10">Sool</komponent>
        <komponent komponentID="16" nimetus="jahu" komponentMootyhik="g" kogus="100">Jahu</komponent>
      </komponendid>
      <valmistamisjuhendid>
        <valmistamisjuhend>1.Tee tainas valmis</valmistamisjuhend>
        <valmistamisjuhend>2.Pane taigna sisse tükeldatud porgandid</valmistamisjuhend>
        <valmistamisjuhend>3.Maitsesta soolaga</valmistamisjuhend>
        <valmistamisjuhend>4.Prae pirukad kuumas õlis.</valmistamisjuhend>
      </valmistamisjuhendid>
    </retsept>
   <retsept retseptID="6" autorId="1" kategooria="kastmed" nimetus="jahukaste kartulitele">
      <komponendid>
        <komponent komponentID="1" nimetus="vesi" komponentMootyhik="dl" kogus="100">Vesi</komponent>
        <komponent komponentID="16" nimetus="jahu" komponentMootyhik="g" kogus="10">Jahu</komponent>
        <komponent komponentID="10" nimetus="sibul" komponentMootyhik="g" kogus="50">Sibul</komponent>
        <komponent komponentID="12" nimetus="sool" komponentMootyhik="g" kogus="10">Sool</komponent>
      </komponendid>
      <valmistamisjuhendid>
        <valmistamisjuhend>1.Tükelda sibulad</valmistamisjuhend>
        <valmistamisjuhend>2.Sega jahu läbi veega</valmistamisjuhend>
        <valmistamisjuhend>3.Maitsesta soolaga</valmistamisjuhend>
        <valmistamisjuhend>4.Lisa sibulad jahukastmesse</valmistamisjuhend>
      </valmistamisjuhendid>
    </retsept>
  </retseptid>  
</retseptiraamat>


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="retseptiraamat">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="retseptid">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="retsept">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="komponendid">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="komponent">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="komponentID" type="xs:unsignedByte" use="required" />
                                  <xs:attribute name="nimetus" type="xs:string" use="required" />
                                  <xs:attribute name="komponentMootyhik" type="xs:string" use="required" />
                                  <xs:attribute name="kogus" type="xs:unsignedShort" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="valmistamisjuhendid">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="valmistamisjuhend" type="xs:string" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="retseptID" type="xs:unsignedByte" use="required" />
                  <xs:attribute name="autorId" type="xs:unsignedByte" use="required" />
                  <xs:attribute name="kategooria" type="xs:string" use="required" />
                  <xs:attribute name="nimetus" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


XSLT

XSLT => HTML: Kõikide retseptide kuvamine, koos komponentidega.

<?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>Toidud</title>
      </head>
      <body>
        <h2>Toidud</h2>
        <ul>
          <xsl:for-each select="retseptiraamat/retseptid/retsept" >
            <xsl:sort select="@nimetus" order="ascending"/>
            <table border="1">
              <tr>
                <td>Nimetus</td>
                <td>
                  <xsl:value-of select="@nimetus"/>
                </td>
              </tr>
              <tr>
                <td>retseptID</td>
                <td>
                  <xsl:value-of select="@retseptID"/>
                </td>
              </tr>
              <tr>
                <td>autorID</td>
                <td>
                  <xsl:value-of select="@autorId"/>
                </td>
              </tr>
              <tr>
                <td>kategooria</td>
                <td>
                  <xsl:value-of select="@kategooria"/>
                </td>
              </tr>
              <xsl:for-each select="komponendid">
                <tr>
                  <td>Komponendid</td>
                  <td>
                    <xsl:for-each select="komponent">
                    <li>
                        <xsl:value-of select="." />
                    </li>
                    </xsl:for-each>
                  </td>
                </tr>
              </xsl:for-each>
            </table>
            <xsl:if test="not(position()=last())">
              <br />
            </xsl:if>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT_Teine

XSLT => HTML: Retseptide kuvamine, mille autoriks on autorid=2

<?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>
      <body>
        <h1>Minu Retseptid</h1>
        <ul>
          <xsl:for-each select="retseptiraamat/retseptid/retsept" >

            <xsl:sort select="@nimetus" order="ascending"/>
            <xsl:if test = "@autorId ='2'">
            <li>
              <xsl:value-of select="@nimetus"/>
            </li>
            <ul>
              <xsl:for-each select="valmistamisjuhendid/valmistamisjuhend">
                <li>
                  <xsl:value-of select="."/>
                </li>
              </xsl:for-each>
            </ul>
            </xsl:if>
          </xsl:for-each>
        </ul>
      </body>
    </html>

  </xsl:template>
</xsl:stylesheet>

XSLT_Teine

XSLT => XML: Retsepti komponentide kuvamine retsepti ID järgi.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:element name="retseptid">
<xsl:for-each select="retseptiraamat/retseptid/retsept">
<xsl:element name="retsept">
<xsl:attribute name="retseptID">
<xsl:value-of select="@retseptID"/>
</xsl:attribute>
<xsl:copy-of select="komponendid"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>