Meeskond ".NOT"

From ICO wiki
Revision as of 23:03, 30 April 2012 by Ktart (talk | contribs) (→‎Teenus)
Jump to navigationJump to search

LIIKMED

  • Martin Kosk
  • Martin Aarne
  • Gert Glükmann
  • Kalmer Tart

Kodutöö XML osa

Teemaks oleme valinud autode müügiplatsi, kus talletatakse autode kohta informatsiooni.

XML Fail

Juurelemendiks on <soidukid>, mille sees asuvad sõidukid elemendinimega <soiduk>, kus hoitakse iga sõiduki individuaalseid tehniliseid andmeid, nagu näiteks mark, mudel jne. Peale tehniliste andmete on hoiustatud ka sõidukite lisavarustus. Iga lisavarustuse element on nimega <varustuselement>, kus sees hoitakse selle lisavarustuse osa nimetust.

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

<soidukid>
  <soiduk id="1" tyyp="Soiduauto">
    <tehnilisedandmed>
      <mark>BMW</mark>
      <mudel>318</mudel>
      <keretyyp>Sedaan</keretyyp>
      <varv>must</varv>
      <tootmisaasta>2000</tootmisaasta>
      <hind valuuta="EUR">5500</hind>
      <kaigukast>manuaal</kaigukast>
      <labisoit yhik="km">200000</labisoit>
      <mootor maht="1.8">
        <kytus>bensiin</kytus>
        <voimsus yhik="kW">85</voimsus>
      </mootor>
    </tehnilisedandmed>
    <varustus>
      <varustuselement>kesklukustus</varustuselement>
      <varustuselement>ABS pidurid</varustuselement>
      <varustuselement>stabiilsuskontroll</varustuselement>
      <varustuselement>poolnahkpolster</varustuselement>
      <varustuselement>reguleeritav roolisammas</varustuselement>
      <varustuselement>kliimaseade</varustuselement>
      <varustuselement>elektrilised välispeeglid</varustuselement>
    </varustus>
  </soiduk>

  <soiduk id="2" tyyp="Soiduauto">
    <tehnilisedandmed>
      <mark>Honda</mark>
      <mudel>Jazz</mudel>
      <keretyyp>Luukpära</keretyyp>
      <varv>Helesinine</varv>
      <tootmisaasta>2005</tootmisaasta>
      <hind valuuta="EUR">4999</hind>
      <kaigukast>manuaal</kaigukast>
      <labisoit yhik="km">140000</labisoit>
      <mootor maht="1.2">
        <kytus>bensiin</kytus>
        <voimsus yhik="kW">57</voimsus>
      </mootor>
    </tehnilisedandmed>
    <varustus>
      <varustuselement>kesklukustus</varustuselement>
      <varustuselement>turvapadi</varustuselement>
      <varustuselement>konditsioneer</varustuselement>
      <varustuselement>tekstiilpolster</varustuselement>
    </varustus>
  </soiduk>

  <soiduk id="3" tyyp="Kaubik">
    <tehnilisedandmed>
      <mark>Citroen</mark>
      <mudel>Berlingo</mudel>
      <keretyyp>Väikekaubik</keretyyp>
      <varv>valge</varv>
      <tootmisaasta>2006</tootmisaasta>
      <hind valuuta="EUR">3700</hind>
      <kaigukast>manuaal</kaigukast>
      <labisoit yhik="km">50000</labisoit>
      <mootor maht="1.4">
        <kytus>bensiin</kytus>
        <voimsus yhik="kW">55</voimsus>
      </mootor>
    </tehnilisedandmed>
    <varustus>
      <varustuselement>kesklukustus</varustuselement>
      <varustuselement>roolivõimendi</varustuselement>
      <varustuselement>istmesoojendus</varustuselement>
      <varustuselement>jalamatid</varustuselement>
    </varustus>
  </soiduk>

  <soiduk id="4" tyyp="Maastur">
    <tehnilisedandmed>
      <mark>Audi</mark>
      <mudel>Q7</mudel>
      <keretyyp>Maastur</keretyyp>
      <varv>hõbedane</varv>
      <tootmisaasta>2007</tootmisaasta>
      <hind valuuta="EUR">24000</hind>
      <kaigukast>automaat</kaigukast>
      <labisoit yhik="km">98000</labisoit>
      <mootor maht="3.0">
        <kytus>diisel</kytus>
        <voimsus yhik="kW">171</voimsus>
      </mootor>
    </tehnilisedandmed>
    <varustus>
      <varustuselement>kesklukustus</varustuselement>
      <varustuselement>roolivõimendi</varustuselement>
      <varustuselement>vihmasensor</varustuselement>
      <varustuselement>istmesoojendus</varustuselement>
      <varustuselement>toonitud klaasid</varustuselement>
      <varustuselement>nahkkattega rool</varustuselement>
    </varustus>
  </soiduk>
</soidukid>

XML Skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="soidukid">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="soiduk">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="tehnilisedandmed">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="mark" type="xs:string" />
                    <xs:element name="mudel" type="xs:string" />
                    <xs:element name="keretyyp" type="xs:string" />
                    <xs:element name="varv" type="xs:string" />
                    <xs:element name="tootmisaasta" type="xs:unsignedShort" />
                    <xs:element name="hind">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:decimal">
                            <xs:attribute name="valuuta" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="kaigukast" type="xs:string" />
                    <xs:element name="labisoit">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:unsignedInt">
                            <xs:attribute name="yhik" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="mootor">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="kytus" type="xs:string" />
                          <xs:element name="voimsus">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:unsignedShort">
                                  <xs:attribute name="yhik" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="maht" type="xs:double" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="varustus">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="varustuselement" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:int" use="required" />
            <xs:attribute name="tyyp" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XML Transformatsiooni failid

Esimene

Selle transformatsioonifailiga kuvatakse kõiki sõidukeid.

<?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>Soidukite myygiplats</title>
        </head>
        <body>
          <ul>
            <xsl:for-each select="soidukid/soiduk">
              <li>
                <xsl:value-of select="tehnilisedandmed/mark"/>
                <xsl:text> </xsl:text>
                <xsl:value-of select="tehnilisedandmed/mudel"/>
              </li>
              <ul>
                <li>
                  <xsl:text>Keretüüp: </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/keretyyp"/>
                </li>
                <li>
                  <xsl:text>Värv: </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/varv"/>
                </li>
                <li>
                  <xsl:text>Tootmisaasta: </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/tootmisaasta"/>                
                </li>
                <li>
                  <xsl:text>Hind: </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/hind"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/hind/@valuuta"/>
                </li>
                <li>
                  <xsl:text>Käigukast: </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/kaigukast"/>
                </li>
                <li>
                  <xsl:text>Läbisõit: </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/labisoit"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="tehnilisedandmed/labisoit/@yhik"/>
                </li>
                <li>
                  <xsl:text>Mootori andmed</xsl:text>
                  <ul>
                    <li>
                      <xsl:text>Maht: </xsl:text>
                      <xsl:value-of select="tehnilisedandmed/mootor/@maht"/>         
                    </li>
                    <li>
                      <xsl:text>Kütus: </xsl:text>
                      <xsl:value-of select="tehnilisedandmed/mootor/kytus"/>
                    </li>
                    <li>
                      <xsl:text>Võimsus: </xsl:text>
                      <xsl:value-of select="tehnilisedandmed/mootor/voimsus"/>
                      <xsl:text> </xsl:text>
                      <xsl:value-of select="tehnilisedandmed/mootor/voimsus/@yhik"/>
                    </li>
                  </ul>
                </li>
                <li>
                  <xsl:text>Varustus</xsl:text>
                  <ul>
                    <xsl:for-each select="varustus/varustuselement">
                      <li>
                        <xsl:value-of select="."></xsl:value-of>
                      </li>
                    </xsl:for-each>
                  </ul>
                </li>
              </ul>
              <br/>
            </xsl:for-each>
          </ul>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Teine

Selle transformatsioonifailiga kuvatakse sõidukid, mis on sõiduautod ning mille hind on alla 5000. Fail on Enosesse üles laetud, kuna tekkis < sümboliga probleeme.

Kolmas

Selle transformatsioonifailiga kuvatakse kõik sõidukid, mis on BMW margiga.

<?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>Soidukite myygiplats</title>
      </head>
      <body>
        <ul>
          <xsl:for-each select="soidukid/soiduk">
            <xsl:if test="tehnilisedandmed/mark = 'BMW'">
            <li>
              <xsl:value-of select="tehnilisedandmed/mark"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="tehnilisedandmed/mudel"/>
            </li>
            <ul>
              <li>
                <xsl:text>Keretüüp: </xsl:text>
                <xsl:value-of select="tehnilisedandmed/keretyyp"/>
              </li>
              <li>
                <xsl:text>Värv: </xsl:text>
                <xsl:value-of select="tehnilisedandmed/varv"/>
              </li>
              <li>
                <xsl:text>Tootmisaasta: </xsl:text>
                <xsl:value-of select="tehnilisedandmed/tootmisaasta"/>
              </li>
              <li>
                <xsl:text>Hind: </xsl:text>
                <xsl:value-of select="tehnilisedandmed/hind"/>
                <xsl:text> </xsl:text>
                <xsl:value-of select="tehnilisedandmed/hind/@valuuta"/>
              </li>
              <li>
                <xsl:text>Käigukast: </xsl:text>
                <xsl:value-of select="tehnilisedandmed/kaigukast"/>
              </li>
              <li>
                <xsl:text>Läbisõit: </xsl:text>
                <xsl:value-of select="tehnilisedandmed/labisoit"/>
                <xsl:text> </xsl:text>
                <xsl:value-of select="tehnilisedandmed/labisoit/@yhik"/>
              </li>
              <li>
                <xsl:text>Mootori andmed</xsl:text>
                <ul>
                  <li>
                    <xsl:text>Maht: </xsl:text>
                    <xsl:value-of select="tehnilisedandmed/mootor/@maht"/>
                  </li>
                  <li>
                    <xsl:text>Kütus: </xsl:text>
                    <xsl:value-of select="tehnilisedandmed/mootor/kytus"/>
                  </li>
                  <li>
                    <xsl:text>Võimsus: </xsl:text>
                    <xsl:value-of select="tehnilisedandmed/mootor/voimsus"/>
                    <xsl:text> </xsl:text>
                    <xsl:value-of select="tehnilisedandmed/mootor/voimsus/@yhik"/>
                  </li>
                </ul>
              </li>
              <li>
                <xsl:text>Varustus</xsl:text>
                <ul>
                  <xsl:for-each select="varustus/varustuselement">
                    <li>
                      <xsl:value-of select="."></xsl:value-of>
                    </li>
                  </xsl:for-each>
                </ul>
              </li>
            </ul>
            <br/>
            </xsl:if>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Teenus

Valminud veebiteenuse eesmärgiks on pakkuda võimalust lisada auto müügikuulutsi erinevate kasutajate poolt ning antud kuulutusi hiljem hallata.

Valminud teenuse meetodid:

  • GetAllCars - tagastab kõik aktiivsed autod
  • AddCar - Uue auto lisamine, lisamiseks peab kasutaja olema sisselogitud
  • UpdateCar - Auto andmete uuendamine, uuendamine on lubatud ainult kasutajale, kes on märgitud baasis oleva auto omanikuks
  • DeleteCar - Auto kustutamine baasist, kustutamine on lubatud kasutajale, kes on märgitud baasis oleva auto omanikuks. Juhul, kui auto on hetkel müügis, siis kustutatakse ka müügikuulutus
  • GetAllEquuipments - Tagastab kõik varustuse elemendid, mis on baasi kantud
  • AddEquipment - Võimaldab lisada uue varustuse elemendi baasi
  • GetCarsOnSale - Tagastb kõik aktiivsed auto müügi kuulutused
  • AddCarOnSale - Võimaldab kasutajal luua uue kuulutuse, kui ta on auto omanik ja kui auto ei ole aktiivselt juba müügis
  • UpdateCarOnSale - Võimaldab auto müügikuulutuse omanikul uuendada aktiivse kuulutuse andmeid
  • SellCarOnSale - Võimaldab auto müügikuulutuse omanikul märkida auto müüduks
  • DeleteCarOnSale - Võimaldab auto müügikuulutuse omanikul kuuluts tühistada (kustutada)
  • GetUserCars - Võimaldab kuvada kasutaja poolt omatud autosid, mis on aktiivsed
  • GetStatistics - Tagastab Inetrface-st implementeeritud meetodite kasutamise statistika. Lubatud ainult kasutajale, kes on administraatori rollis
  • FindCarById - Võimaldab otsida autot vastavalt ID väärtusele
  • FindCarByYearRange - Võimaldab kasutajal otsida autosid, mis on aastate vhameikus. Kui algus või lõpp on määramata, siis otsitakse autosid, mis on konkreetse välja laske aastaga (vastavalt selle, mille väärtus pole 0)
  • AddEquipmentForCar - Võimaldab auto omanikul lisada varustust aktiivsele autole
  • DeleteEquipmentFromCar - Võimaldab auto omanikul kustutada aktiivselt autolt varustuse element

Valminud töö saab kätte lingilt: http://enos.itcollege.ee/~ktart/WcfCarService.zip (Lisatud on sertifikaadid, andmebaasi skriptid ja valminud kood)

Logi

15.04.2012 - 30.04.2012

  • Toimus n.ö. "Räige WCF-i lakserdamine".

03.03.2012

  • Wikisse üleslaadimine ning redigeerimine.

02.03.2012

  • Valmis said XSLT failid.

29.02.2012

  • Valmis sai XML fail.