Meeskond ".NOT"
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
- GetAllEquipments - Tagastab kõik varustuse elemendid, mis on baasi kantud
- AddEquipment - Võimaldab lisada uue varustuse elemendi baasi
- GetCarsOnSale - Tagastab 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 vahemikus. Kui algus või lõpp on määramata, siis otsitakse autosid, mis on konkreetse väljalaskeaastaga (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.