Meeskond "Nämm-nämm"

From ICO wiki
Revision as of 17:50, 28 February 2011 by Joilves (talk | contribs) (→‎XML)
Jump to navigationJump to search

Idee

Idee järgmine:

Tuleb üks asp.net veebileht, kus kohvikupidajatel on võimalus sisselogides oma menüüd üles panna/neid muuta/kustutada jne. Kui (tava)kasutaja tuleb lehele on tal võimalus näiteks sisestada oma aadress, mille peale kuvatakse talle lähima kohviku asukoht(kaardi pealt näeb ka teiste kohvikute aadresse). Võimalus muidugi vaadata kõigi kohvikute menüüd ning otsida menüüde vahel meelepärast toitu. Mingit otsest sisselogimist pealehelt ei tule, selle jaoks teeb eraldi lehe.

Meeskond

  • Allar Märk
  • Gert Glükmann
  • Joosep Ilves
  • Kaspar Kallasmaa
  • Siim Aaver

XML

XML

<?xml version="1.0" encoding="utf-8" ?>
<kohvikud>
  <kohvik id="0">
    <nimi>Saiapäts</nimi>
    <aadress laius="59.395515" pikkus="24.664993">
      <riik>Eesti</riik>
      <maakond>Harjumaa</maakond>
      <linnVald>Tallinn</linnVald>
      <indeks>64739</indeks>
      <tanav>pätsi</tanav>
      <maja>5</maja>
    </aadress>   
 
    <lahtiolekuajad>   
      <alates>               <!--nende lahtiolekuaegade kehtivuse alguskuupäev. Saab määrata lahtiolekuajad perioodide kaupa. Näiteks 01.01 alates on ühed, aga 01.06 teised. Seejuures saab igasse perioodi lisada ka erandeid, mil on kohvik suletud või teistel aegadel lahti.-->
        <aasta>2011</aasta>
        <kuu>01</kuu>
        <paev>01</paev>
      </alates>   
      <lahtiolekuaeg>
        <nadalapaev>E</nadalapaev>
        <avamisaeg>
          <tund>08</tund>
          <minut>00</minut>
        </avamisaeg>
        <sulgemisaeg>
          <tund>19</tund>
          <minut>00</minut>
        </sulgemisaeg>
      </lahtiolekuaeg>      
      <lahtiolekuaeg>
        <nadalapaev>T</nadalapaev>
        <avamisaeg>
          <tund>09</tund>
          <minut>30</minut>
        </avamisaeg>
        <sulgemisaeg>
          <tund>10</tund>
          <minut>00</minut>
        </sulgemisaeg>
      </lahtiolekuaeg> 

      <erandid>        <!--lahtiolekuaegade erandid-->
        <erand>
          <kuupaev>
            <aasta>2011</aasta>
            <kuu>02</kuu>
            <paev>24</paev>
          </kuupaev>
          <avamisaeg>
            <tund>suletud</tund>
            <minut></minut>
          </avamisaeg>
          <sulgemisaeg>
            <tund>17</tund>
            <minut>30</minut>
          </sulgemisaeg>
        </erand>
        <erand>
          <kuupaev>
            <aasta>2011</aasta>
            <kuu>02</kuu>
            <paev>25</paev>
          </kuupaev>
          <avamisaeg>
            <tund>12</tund>
            <minut>00</minut>
          </avamisaeg>
          <sulgemisaeg>
            <tund>16</tund>
            <minut>20</minut>
          </sulgemisaeg>
        </erand>
      </erandid>      
    </lahtiolekuajad>    
    
    <menüü>
      <kuupaev>                         <!--kuupäev, millal antud menüü kehtib-->
        <aasta>2011</aasta>
        <kuu>02</kuu>
        <paev>24</paev>
      </kuupaev>
      <kategooria>
        <nimetus>suupisted</nimetus>
        <soodustused>                   <!--Igale tootegrupile saab määrata soodustused eraldi. Soodustusi võib olla mitme erineva suurusega-->
          <soodustus>
            <liik>ISIC</liik>
            <suurus>10</suurus>
            <yhik>%</yhik>
          </soodustus>
          <soodustus>                   <!--võimalik on panna ka soodustusi, kus hinnast antakse mingi kindel summa alla, mitte protsent-->
            <liik>kliendikaart</liik>
            <suurus>0.1</suurus>
            <yhik>EUR</yhik>
          </soodustus>
        </soodustused>
        <toit>
          <nimetus>tikuvõileib magushapus kastmes</nimetus>
          <ports>                       <!--ühte toitu võib olla mitmes erinevas suuruses, seejuures saab ka igale suurusele erinevad soodustused anda-->
            <suurus>väike</suurus>
            <saadaval>1</saadaval>      <!--1 - true; 0 - false-->
              <hind>
                <vaartus>9.90</vaartus>
                <valuuta>EUR</valuuta>
              </hind>
          </ports>
          <ports>
            <suurus>suur</suurus>
            <saadaval>0</saadaval>
              <hind>
                <vaartus>9.90</vaartus>
                <valuuta>EUR</valuuta>
              </hind>
          </ports>
        </toit>
      </kategooria>

      <kategooria>
        <nimetus>mittealkoholsed joogid</nimetus>
        ...
      </kategooria>

      <kategooria>
        <nimetus>lisad</nimetus>
        <soodustused></soodustused>
        <toit>
          <nimetus>ahjukartul</nimetus>
          <ports>
            <suurus>suur</suurus>
            <saadaval>1</saadaval>
            <hind>
              <vaartus>0</vaartus>
              <valuuta>EUR</valuuta>
            </hind>
          </ports>
          <ports>
            <suurus>väike</suurus>
            <saadaval>1</saadaval>
            <hind>
              <hind>
                <vaartus>0</vaartus>
                <valuuta>EUR</valuuta>
              </hind>
            </hind>
          </ports>
        </toit>
      </kategooria>

    </menüü>
  </kohvik>
</kohvikud>


XML Schema

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="kohvikud">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="kohvik" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="nimi" type="xs:string" />
              <xs:element name="aadress">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="riik" type="xs:string" />
                    <xs:element name="maakond" type="xs:string" />
                    <xs:element name="linnVald" type="xs:string" />
                    <xs:element name="indeks" type="xs:unsignedShort" />
                    <xs:element name="tanav" type="xs:string" />
                    <xs:element name="maja" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="laius" type="xs:decimal" use="required" />
                  <xs:attribute name="pikkus" type="xs:decimal" use="required" />
                </xs:complexType>
              </xs:element>
              <xs:element name="lahtiolekuajad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="alates">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="aasta" type="xs:unsignedShort" />
                          <xs:element name="kuu" type="xs:unsignedByte" />
                          <xs:element name="paev" type="xs:unsignedByte" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element maxOccurs="unbounded" name="lahtiolekuaeg">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nadalapaev" type="xs:string" />
                          <xs:element name="avamisaeg">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tund" type="xs:unsignedByte" />
                                <xs:element name="minut" type="xs:unsignedByte" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="sulgemisaeg">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tund" type="xs:unsignedByte" />
                                <xs:element name="minut" type="xs:unsignedByte" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="erandid">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="erand">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="kuupaev">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="aasta" type="xs:unsignedShort" />
                                      <xs:element name="kuu" type="xs:unsignedByte" />
                                      <xs:element name="paev" type="xs:unsignedByte" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="avamisaeg">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="tund" type="xs:string" />
                                      <xs:element name="minut" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="sulgemisaeg">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="tund" type="xs:string" />
                                      <xs:element name="minut" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="menüü" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="kuupaev">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="aasta" type="xs:unsignedShort" />
                          <xs:element name="kuu" type="xs:unsignedByte" />
                          <xs:element name="paev" type="xs:unsignedByte" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element maxOccurs="unbounded" name="kategooria">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus" type="xs:string" />
                          <xs:element name="soodustused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="soodustus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="liik" type="xs:string" />
                                      <xs:element name="suurus" type="xs:decimal" />
                                      <xs:element name="yhik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element maxOccurs="unbounded" name="toit">
                            <xs:complexType mixed="true">
                              <xs:sequence>
                                <xs:element name="nimetus" type="xs:string" />
                                <xs:element minOccurs="0" maxOccurs="unbounded" name="ports">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="suurus" type="xs:string" />
                                      <xs:element name="saadaval" type="xs:boolean" />
                                      <xs:element name="hind">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="vaartus" type="xs:decimal" />
                                            <xs:element name="valuuta" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedShort" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


XSL

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
  <xsl:for-each select="kohvikud">
  <h2>Kohvik <xsl:value-of select="kohvik/nimi"/></h2>
  <p>Asukoht: <xsl:value-of select="kohvik/aadress/tanav"/> <xsl:value-of select="kohvik/aadress/maja"/>, 
  <xsl:value-of select="kohvik/aadress/linnVald"/>, <xsl:value-of select="kohvik/aadress/maakond"/>, 
  <xsl:value-of select="kohvik/aadress/riik"/>
  </p>
  
  <p>Lahtiolekuajad: <br />
  <xsl:for-each select="kohvik/lahtiolekuajad/lahtiolekuaeg">
<xsl:value-of select="nadalapaev"/> - 
<xsl:value-of select="avamisaeg/tund"/>:<xsl:value-of select="avamisaeg/minut"/> - 
<xsl:value-of select="sulgemisaeg/tund"/>:<xsl:value-of select="sulgemisaeg/minut"/><br />
  </xsl:for-each>
</p>

 <p>Lahtiolekuaegade erandid: <br />
   <xsl:for-each select="kohvik/lahtiolekuajad/erandid/erand">
<xsl:value-of select="kuupaev/paev"/>/<xsl:value-of select="kuupaev/kuu"/>/<xsl:value-of select="kuupaev/aasta"/>  - 
<xsl:value-of select="avamisaeg/tund"/>:<xsl:value-of select="avamisaeg/minut"/> - 
<xsl:value-of select="sulgemisaeg/tund"/>:<xsl:value-of select="sulgemisaeg/minut"/><br />
  </xsl:for-each>
 </p>
  
<h3><strong>MENÜÜ</strong></h3>

<p><xsl:for-each select="kohvik/menüü/kategooria">
<strong>-- <xsl:value-of select="nimetus"/> -- </strong><br /><br />


SOODUSTUSED: <br />
<table border="1">
<tr>
  <th align="center">Liik</th>
  <th align="center">Suurus</th>
  <th align="center">Ühik</th>
</tr>
<xsl:for-each select="soodustused/soodustus">
<tr>
  <td align="center"><xsl:value-of select="liik"/></td>
  <td align="center"><xsl:value-of select="suurus"/></td>
  <td align="center"><xsl:value-of select="yhik"/></td>
</tr>
</xsl:for-each>

</table> <br /> <br />

<xsl:for-each select="toit">
<strong><xsl:value-of select="nimetus"/></strong> <br />
<xsl:for-each select="ports">
<xsl:value-of select="suurus"/> - <xsl:value-of select="hind/vaartus"/> <xsl:value-of select="hind/valuuta"/><br />
</xsl:for-each>
</xsl:for-each>

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

</xsl:stylesheet>

XSLT tulemus

Veebiteenus

Rakendus ASP.NET baasil

Logi