<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmatson</id>
	<title>ICO wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mmatson"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php/Special:Contributions/Mmatson"/>
	<updated>2026-05-07T04:27:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123721</id>
		<title>Talk:DevHelpVR2</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123721"/>
		<updated>2017-06-15T10:31:43Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Lõppsõna */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Retsensioon veebiteenusele==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retsensioon klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on ehitatud WPF tehnoloogial ja töötab samas &#039;&#039;solution&#039;&#039;&#039;s. Käivitamiseks tuleb mõlemad - nii veebiteenus kui klientrakendus korraga käivitada. Kuna ka ise ehitasime oma projekti sama loogika järgi, oli teada, kuidas mõlemat teenust korraga käivitada. Seda ehk võiks juhendisse ka märkida.&lt;br /&gt;
Klientrakendus kasutab äriloogika kihi DTO mudeleid, mis näitab, et kihid on üksteisest ilusti eraldatud ja . Eraldi on olemas vaatemudelid, mis suhtlevad teenusekihi klassidega ja see omakorda veebiteenusega.&lt;br /&gt;
&lt;br /&gt;
Klientrakenduse funktsionaalsus on piisav seatud eesmärgi täitmiseks - on olemas rollid, see toetab mitme kasuutaja olemasolu ning saab hallata projekte, iteratsioone ning seotud ressursse. Tuleb aga möönda, et kasutajasõbralikkuse osas on veel pikk tee minna, kuid MVP lahenduse jaoks on see enam kui piisav. Kuigi esialgsetes nõuetes oli soovituslik märge teha klientrakendus Angular raamistikku kasutades, siis arvame, et WPF tehnoloogia on mahult tunduvalt suurem ja saame veelkord vaid kaheliikmelist meeskonda kiita.&lt;br /&gt;
Ehkki tarkvara esmasel käivitusel lisatakse andmebaasidesse ka nn testandmed, võiks edaspidi kaaluda näiteks testandmete sidumist uute kasutajatega.&lt;br /&gt;
Soovituste osas võiks tulevikus klientrakendus olla ligipääsetav veebist, mõelda rohkem läbi visuaalne ja kasutajasõbralik pool ning roll administraator võiks jääda süsteemiadministraatorile paljude õigustega ja senise asemele luua uus roll - näiteks tootejuht, meeskonnajuht.&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt oleks nimekiri pikk, kuid välaj tooksime hästi läbimõeldud funktsionaalsuse ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klientrakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123720</id>
		<title>Talk:DevHelpVR2</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123720"/>
		<updated>2017-06-15T10:29:06Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Retsensioon klientrakendusele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Retsensioon veebiteenusele==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retsensioon klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on ehitatud WPF tehnoloogial ja töötab samas &#039;&#039;solution&#039;&#039;&#039;s. Käivitamiseks tuleb mõlemad - nii veebiteenus kui klientrakendus korraga käivitada. Kuna ka ise ehitasime oma projekti sama loogika järgi, oli teada, kuidas mõlemat teenust korraga käivitada. Seda ehk võiks juhendisse ka märkida.&lt;br /&gt;
Klientrakendus kasutab äriloogika kihi DTO mudeleid, mis näitab, et kihid on üksteisest ilusti eraldatud ja . Eraldi on olemas vaatemudelid, mis suhtlevad teenusekihi klassidega ja see omakorda veebiteenusega.&lt;br /&gt;
&lt;br /&gt;
Klientrakenduse funktsionaalsus on piisav seatud eesmärgi täitmiseks - on olemas rollid, see toetab mitme kasuutaja olemasolu ning saab hallata projekte, iteratsioone ning seotud ressursse. Tuleb aga möönda, et kasutajasõbralikkuse osas on veel pikk tee minna, kuid MVP lahenduse jaoks on see enam kui piisav. Kuigi esialgsetes nõuetes oli soovituslik märge teha klientrakendus Angular raamistikku kasutades, siis arvame, et WPF tehnoloogia on mahult tunduvalt suurem ja saame veelkord vaid kaheliikmelist meeskonda kiita.&lt;br /&gt;
Ehkki tarkvara esmasel käivitusel lisatakse andmebaasidesse ka nn testandmed, võiks edaspidi kaaluda näiteks testandmete sidumist uute kasutajatega.&lt;br /&gt;
Soovituste osas võiks tulevikus klientrakendus olla ligipääsetav veebist, mõelda rohkem läbi visuaalne ja kasutajasõbralik pool ning roll administraator võiks jääda süsteemiadministraatorile paljude õigustega ja senise asemele luua uus roll - näiteks tootejuht, meeskonnajuht.&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt saaks on nimekiri pikk, kuid hästi on läbimõeldud funktsionaalsus ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klient rakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123716</id>
		<title>Talk:DevHelpVR2</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123716"/>
		<updated>2017-06-15T10:16:43Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Retsensioon klientrakendusele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Retsensioon veebiteenusele==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retsensioon klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on ehitatud WPF tehnoloogial ja töötab samas &#039;&#039;solution&#039;&#039;&#039;s. Käivitamiseks tuleb mõlemad - nii veebiteenus kui klientrakendus korraga käivitada. Kuna ka ise ehitasime oma projekti sama loogika järgi, oli teada, kuidas mõlemat teenust korraga käivitada. Seda ehk võiks juhendisse ka märkida.&lt;br /&gt;
Klientrakendus kasutab äriloogika kihi DTO mudeleid, mis näitab, et kihid on üksteisest ilusti eraldatud ja . Eraldi on olemas vaatemudelid, mis suhtlevad teenusekihi klassidega ja see omakorda veebiteenusega.&lt;br /&gt;
Klientrakendus on&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt saaks on nimekiri pikk, kuid hästi on läbimõeldud funktsionaalsus ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klient rakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123708</id>
		<title>Talk:DevHelpVR2</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123708"/>
		<updated>2017-06-15T06:51:27Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Retsensioon klientrakendusele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Retsensioon veebiteenusele==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retsensioon klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on ehitatud WPF tehnoloogial ja töötab samas &#039;&#039;solution&#039;&#039;&#039;s. Käivitamiseks tuleb mõlemad - nii veebiteenus kui klientrakendus korraga käivitada. Kuna ka ise ehitasime oma projekti sama loogika järgi, oli teada, kuidas mõlemat teenust korraga käivitada. Seda ehk võiks juhendisse ka märkida.&lt;br /&gt;
Klientrakendus kasutab äriloogika kihi DTO mudeleid, mis näitab, et kihid on üksteisest ilusti eraldatud.&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt saaks on nimekiri pikk, kuid hästi on läbimõeldud funktsionaalsus ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klient rakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123707</id>
		<title>Talk:DevHelpVR2</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123707"/>
		<updated>2017-06-15T06:46:16Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Retsensioon veebiteenusele==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retsensioon klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt saaks on nimekiri pikk, kuid hästi on läbimõeldud funktsionaalsus ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klient rakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123706</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123706"/>
		<updated>2017-06-15T06:42:29Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
&lt;br /&gt;
Sorry, kuna meil viide pealehelt retsensioonile oli sama, siis kukkusin kohe kirjutama. Võtan oma osa ära, jätan teie oma alles.&lt;br /&gt;
Mihkel (Talutooted).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tehnoloogilise osa arvustus==&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; ===&lt;br /&gt;
 &lt;br /&gt;
==== Domeenimudelid ====&lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse domeenimudelid on kirjeldatud üsna põhjalikult ja meeldib, et mõistlikes kohtades on kasutatud annotatsioone – näiteks piiratud stringi pikkused ja lisatud &#039;&#039;required&#039;&#039; väljad kuhu vaja. Mudeleid, nagu eelpool mainitud, on kokku kümne ringis, mis viitab sellele, et projekt tundub nõudeid arvestades paraja suurusega. Lisaks on leidub eraldi kaust, kus on realiseeritud &#039;&#039;Enum&#039;&#039;’itena erinevad fikseeritud skaalaga väljad. Veel torkab silma, et kasutatakse &#039;&#039;Lazy Loading&#039;&#039;’ut, mis antud rakenduse suuruse juures pole võib-olla kõige vajalikum, sest ei anna üldjuhul efekti Uow ja Repository mustrite kasutuse tõttu. Samuti võib see tulevikus raskendada rakenduse üle viimist ASP.NET Core’i peale, mis seda ei toeta. Natukene häirivad mõned mitu-mitmele seoste tulemusel tekkivate olemite nimetused – näiteks User_DevTeam või User_Project. Võib-olla oleks silmale veidi ilusam neid ilma alakriipsuta kirjutada, kuid see on paljuski isiklik eelistus. Kokkuvõtvalt aga peab mainima, et mudelid tunduvad hästi läbi mõeldud ning siinkohal on etteheiteid teha raske.&lt;br /&gt;
 &lt;br /&gt;
==== Andmebaas ja repositooriumid ====&lt;br /&gt;
 &lt;br /&gt;
Arhitektuuri osas on kasutatud Repository mustrit &#039;&#039;db-context&#039;&#039;&#039;i vastu, samuti Unit of Work mustrit, mis koondab enda alla repositooriumid. Kiita saab seda, et Helpers kataloogis on DbInitializer, mis teeb konkreetset koodi mittetundvale inimesele rakenduse järgiproovimise lihtsaks (ei pea ise dummy data’t genereerima, vaid saab kohemaid sisusse süveneda). Repositooriumite osas torkab silma, et need on enamjaolt tühjad (peale UserRepository), kuid UOW-s registreeritakse need custom repositooriumitena. Loomulikult võib need tuleviku arendusi silmas pidades valmis ära teha, kuid siis pole suurt mõtet neid veel eraldi Dictionary-sse registreerida vaid kasutada UOW-s standardsetena. Iga repositooriumi vastu on kirjutatud eraldi Interface, nii repositooriumid, kui Interface’id kasutavad baasmudelit (vastavalt EFRepository ja IRepository), millest nad pärinevad, mis näitab ka, et tuntakse hästi ka objekt-orienteerituse põhitõdesid.&lt;br /&gt;
  &lt;br /&gt;
==== Äriloogika ====&lt;br /&gt;
 &lt;br /&gt;
Kontrollerid suhtlevad antud juhul teenuse kihiga (&#039;&#039;service layer&#039;&#039;) ja kasutatakse DTO-sid koos Factory mustriga. DTO-d tunduvad kõik domeenimudelitega identsed ja on seega ilmselt valmis tehtud just tulevikku silmas pidades. Kontrollerites on realiseeritud enamjaolt &#039;&#039;CRUD&#039;&#039; meetodid, mis kasutavad DTO-sid, ja väga palju spetsiifilisi lahendusi realiseeritud ei ole. Kontrolleritele võiks vaid nii palju ette heita, et ei kasutata asünkroonset lähenemist, mis teeks rakenduse tulevikus veelgi skaleeritavamaks, kuid mis põhiline, lubaks rakendust paindlikumalt kasutada. Samas, nii repositooriumid kui kontrollerid on õiges kohas ja õigesti üles ehitatud ning kõik tundub ilusasti töötavat. Ainus, mida saaks ära märkida, on osade kontrollerite puhul vea korral 404 veateate mitte tagastamine. Kasutajate haldus kasutab &#039;&#039;Entity Framework&#039;&#039;-i enda &#039;&#039;ApplicationUser&#039;&#039;’it, seega aine baas-repositooriumis välja pakutud &#039;&#039;Custom Identity&#039;&#039; lahendust ei ole siinkohal realiseeritud (mis ei olnud ka ise-enesest eraldi nõue). &lt;br /&gt;
 &lt;br /&gt;
==== Kokkuvõte ====&lt;br /&gt;
 &lt;br /&gt;
Teenuse juures torkab silma, et meeskond tunneb hästi arhitektuurilisi võtteid, kuidas veebirakendusi loogiliselt üles ehitada. Kuigi rakendus praeguses mahus kõiki neid kihte veel ei vaja, annab see võimaluse tulevikus teenust lihtsasti skaleerida, kuna kihid on juba algusest saati ilusasti paigas. Sellest annab ka tunnistust see, et näiteks DTO-de ja domeenimudelite väljad hetkel kattuvad, kuid tulevikus on lihtsasti võimalik teha andmebaasis muudatusi ja täiendusi ilma neid kliendile kohe välja näitamata. Kood on enam-vähem korralikult kommenteeritud, kuid mõndades kohtades jäi silma pikk doctype kommentaaride rida, mis oli kirjutatud Eesti keeles. Kuna Visual Studio genereerib uut rakendust tehes ka palju ingliskeelseid kommentaare, võiks kaaluda ühtse stiili kasutamist ning vältida eestikeelset teksti koodi vahel. Kokkuvõtvalt tuleb meeskonda kiita tubli töö eest. Teenus on väga korralikult üles ehitatud ning järgib paljusid mustreid, mis on täna tõsiseltvõetavate rakenduste tunnuseks. Kuigi sellise mahuga rakenduse võiks kirjutada vabalt ka ilma UOW vahekihita, näitab selle kasutamine teatavat vilumust ning teeb teenuse juures tulevikus muudatuste tegemise lihtsamaks. Arvestades, et meeskonnas oli vaid kaks liiget, väärib see projekt kindlasti maksimumpunkte!&lt;br /&gt;
&lt;br /&gt;
=== Klientrakendus ===&lt;br /&gt;
&lt;br /&gt;
==== Arhitektuur ==== &lt;br /&gt;
&lt;br /&gt;
Klientrakendus on realiseeritud &#039;&#039;WPF application&#039;&#039;’ina ning asub samas solution’is. Klientrakendus kasutab samu domeenimudeleid ning samuti on olemas Enum’ite kaust fikseeritud skaalaga väljade jaoks. Nii nagu teenuse osas, häirivad veidi silma alakriipsuga deklareeritud väljad (nt. User_UserStoryStart), kuid see on jällegi puhtalt stiili küsimus. Klientrakenduse domeenimudelid suhtlevad veebiteenuse API-ga tokenite abil, mis initsialiseeritakse konstruktoris. Samuti on olemas vaatemudelid, mis pärinevad baas vaatemudelist BaseVM, mis on põhimõtteliselt &#039;&#039;event handler&#039;&#039;. Vaated näevad välja nagu nad out of the box on - eristuvat disaini ei ole siinkohal märgata. Samas on see arusaadav, kuna projekti maht oli niigi suur ja põhifookus lasus funktsionaalsuse realiseerimisel. Eraldi on olemas teenuse kiht (&#039;&#039;service layer&#039;&#039;), mille ülesandeks on andmete edastamine API vastu. Iga domeenimudeli jaoks on eraldi teenusekihi funktsionaalsus, mis pärineb baas &#039;&#039;service&#039;&#039;’ist. Mõne vaatemudeli puhul jäi silma, et see kasutab väga palju teenusekihi klasse (näiteks DevTeamVM kasutab viite service’it). Siinkohal oleks võinud kaaluda teha lisaabstraktsioon, mis koondaks enda alla service-id. Idee poolest võiks see olla nagu UOW (Unit of Work), mida saaks süstida vaatemudelitesse, et need võiksid kasutada kõiki vajaminevaid teenusekihi klasse. Teisalt ei ole projekti maht niivõrd suur ja see võib vabalt jääda ka tulevikuks.&lt;br /&gt;
&lt;br /&gt;
==== Funktsionaalsus ====&lt;br /&gt;
 &lt;br /&gt;
Rakendust avades kuvatakse kõigepealt sisselogimise aken, kust on konto puudumisel võimalik kohe ka uus kasutaja registreerida. Peale registreerimist võiks kuvada lisaakna, millega kinnitada kasutajale, et registreerimine tõepoolest õnnestus. Praegu suunatakse lihtsalt tagasi sisselogimise aknasse. Peale sisselogimist avaneb “põhiaken”, kus saab kasutada juba põhifunktsionaalsust - siduda kasutajat projektide ja arendusmeeskondadega, projektidele lisada iteratsiooni ning iteratsioonidele kasutajalugusid. Nii projekte, kasutajalugusid kui iteratsioone saab sealjuures eraldiseisvalt kustutada ning ülemkategooria kustutamisel kaovad ka alamüksused (cascade delete). Siin tuleb selgelt välja, et domeenimudelid on läbimõeldud ning lisatud vajalikud väljad. Samas ei ole “surnud” välju, mida kuskil ei kasutata ja mis niisama objekti küljes on. Lisaks on võimalik vaadata statistikat ning muuhulgas jälgitakse ka kasutajate sisselogimiste arvu (teatavasti oli sisselogimiste arvu piiramine ka üks projekti nõuetest).&lt;br /&gt;
 &lt;br /&gt;
==== Kokkuvõte ====&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on korralikult kirjutatud ning arvestades kogu projektimahtu, ei ole sellele palju ette heita. Disaini osas oleks võinud mõelda klienti realiseerida siiski veebirakendusena, kasutades näiteks &#039;&#039;AngularJS&#039;&#039;-i veebiraamistikuna ja näiteks &#039;&#039;Bootstrap&#039;&#039; raamistiku elemente. Samas võib omast kogemusest öelda, et kindlasti ei ole see ajasäästlikum tee, kui tehnoloogiad hästi ei valda (arvestades, et aine raames &#039;&#039;Angular&#039;&#039; raamistikust väga midagi rääkida ei jõutud). Selle tulemusena oleks saanud disaini ka veidi parema teha, kuid kõige tähtsam on siiski funktsionaalsuse realiseerimine, mis õnnestus väga hästi ja mille eest tuleb meeskonda kiita. Ükski lahendus ei tundu poolik, ning kõik on suures plaanis läbi mõeldud. Siit jääb kuvama ka tõsiasi, et see projekt on tegelikult edasiarendus C# aines kirjutatud projektile ning võib arvata, et seetõttu oli ka andmebaasi struktuuri ülesehitamine selle võrra lihtsam. Mõte ise on samuti hea. Kui meeskonnal tekiks tahtmine asja päriselt realiseerida, oleks nüüd lihtne võtta teenus ning teha sellele lisaks otsa korralik veebirakendus, mis näeb ilus välja.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123705</id>
		<title>Talk:DevHelpVR2</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR2&amp;diff=123705"/>
		<updated>2017-06-15T06:40:42Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: Created page with &amp;quot;=Retsensioon projektile DevHelpVR=  ==Sissejuhatus== Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Ülidne arvustus==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tehnoloogilise osa arvustus==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt saaks on nimekiri pikk, kuid hästi on läbimõeldud funktsionaalsus ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klient rakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017&amp;diff=123704</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017&amp;diff=123704"/>
		<updated>2017-06-15T06:40:08Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Meeskond: Talutooted */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2017=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*SOAP veebiteenuse puhul eeldatakse WCF tehnoloogia kasutamist. Vanema põlvkonna ASP.NET veebiteenuse loomine ei ole lubatud, kuna seda ei toeta ka Microsoft enam tänasel päeval.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus&lt;br /&gt;
&lt;br /&gt;
Ühte projektimeeskonda kuulub 3..4 tudengit ning ühel teemal teostab projekti üks või mitu meeskonda. 1,2 ja viie liikmelised meeskonnad tuleks õppejõuga eraldi kooskõlastada.&lt;br /&gt;
&lt;br /&gt;
Töö käiku kajastatakse  http://wiki.itcollege.ee keskkonnas. Wikilehe täitmise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;20. märts 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;27. märts 2017&#039;&#039;&#039;.&lt;br /&gt;
** &#039;&#039;&#039;Meeskonnad on loonud omale enda wiki lehe, kuhu kirjeldavad meeskonna ja panevad nad üles oma tööd. Lisaks hakkavad kogunema ka sinna teiste gruppide poolt kirjutatavad retsensioonid. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;17.aprill 2017&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;08. juuni 2017&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--** Veebiteenus tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;08. juuni 2017&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--** Klientrakendused tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne&#039;&#039;&#039;&lt;br /&gt;
** Meeskonnatöö kokkuvõttev aruanne peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 8.mai 2011&lt;br /&gt;
** Arvamused Meeskonnatöö kokkuvõtva aruande ja esitluse kohta tuleb esitada hiljemalt päev enne eksamit&lt;br /&gt;
** &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne ja töö lõplik tulemus&#039;&#039;&#039; tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
Maksimumtulemuse saavutamiseks peab projekt olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub  arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/6):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilrakendused &lt;br /&gt;
* AngularJS klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning minimaalselt kaks sobivat XSL transformatsiooni faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. Transformatsioonid peavad sisaldama midagi enamat, kui ainult üks for-each klausel. Transformatsiooni käigus peaks kasutama vajadusel parameetreid ning kindlasti ka erinevaid tingimuste kontrolle.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
Käesoleva ülesande käigus peab looma meeskonna ning selle wiki lehekülje&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
Klientrakendus mõnele olemasolevale veebiteenusele, võib olla teostatud veebirakendusena, Silverlight, WPF või vormirakendusena.&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
Retsensioon on üliõpilase iseseisva teadustöö kriitilise analüüsi põhjal koostatud argumenteeritud hinnang. Retsensioonis tuleb hinnata töö vastavust esitatud tingimustele, programmikoodi loetavust ning kommenteeritust, dokumentatsiooni ja kirjeldada puudusi. Retsensioonide põhjal on meeskondadel õigus oma projekte parandada enne määratud esitamistähtaja kättejõudmist.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
==Kaitsmisele registreerumine==&lt;br /&gt;
Kaitsmine toimub ruumis 314 neljapäeval, 8ndal juunil peale konsultatsiooni, mis algab kell 16:00.&lt;br /&gt;
&lt;br /&gt;
*16:30 - Bob&#039;s Burgers&lt;br /&gt;
*16:45 - Redundant Rappers&lt;br /&gt;
*17:00 - ...&lt;br /&gt;
*17:15 - Ott&lt;br /&gt;
*17:30 - ..&lt;br /&gt;
*17:45 - ..&lt;br /&gt;
*18:00 - ..&lt;br /&gt;
*18:15 - ..&lt;br /&gt;
&lt;br /&gt;
kui nendest aegadest ei piisa, siis lisada aegu juurde ise 15 min tsükliga&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reede&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*16:00 - Meeskond: QView (neljapäeval pole tiimi!)&amp;lt;br&amp;gt;&lt;br /&gt;
*16:15 - Meeskond: HelpOut&amp;lt;br&amp;gt;&lt;br /&gt;
*16:30 - Meeskond: VeebiGurmaanid &amp;lt;br&amp;gt;&lt;br /&gt;
*16:45 - &lt;br /&gt;
*17:00 - Meeskond: Blogify&lt;br /&gt;
*17:15 - Meeskond: Sense Of Direction&lt;br /&gt;
*17.30 - ??? Profit&lt;br /&gt;
*17.45 -&lt;br /&gt;
*18.00 - Meeskond: Echo (Tiimiliikmed jõuavad selleks ajaks)&lt;br /&gt;
&lt;br /&gt;
... kui nendest aegadest ei piisa, siis lisada aegu juurde ise 15 min tsükliga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esmaspäev&#039;&#039;&#039;&lt;br /&gt;
*08:45 - &lt;br /&gt;
*09:00 - Unnamed team&lt;br /&gt;
*09:15 - RK&lt;br /&gt;
*09:30 - Kirde sai&lt;br /&gt;
*09:45 - &lt;br /&gt;
*10:00 - ..&lt;br /&gt;
*10:15* - Falador&lt;br /&gt;
* Ott&lt;br /&gt;
* Mjart *&lt;br /&gt;
&lt;br /&gt;
..ülejäänud meeskonnad panevad nime kirja siia ning kaitsmine toimub päeva jooksul jooksvalt. Kaitsta saavad need, kellel on nimi siin kirjas&lt;br /&gt;
&lt;br /&gt;
=Teemad 2017 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
===Nimede pakkumise teenus===&lt;br /&gt;
Mõte selles, et luua nimede baas, mille abil pakkuda rakenduse loojale sobiva algusega nimesid. Reaalne rakendus: &#039;&#039;autocompleter&#039;&#039; tarvis teenuse pakkumine&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2017=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Helistajad===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kristjan Tõnismäe&lt;br /&gt;
Meeskonna koduleht: [[Helistajad]]&lt;br /&gt;
&lt;br /&gt;
Retsentsioon meeskonnale: &lt;br /&gt;
&lt;br /&gt;
===Meeskond: QView===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Semjon Greef&lt;br /&gt;
* Martin Nigul&lt;br /&gt;
* Martin Nõukas&lt;br /&gt;
* Margus Muru&lt;br /&gt;
* Lisandra Noor&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: QView]]&lt;br /&gt;
&lt;br /&gt;
Retsentsioon meeskonnale: [https://wiki.itcollege.ee/index.php/User_talk:Meeskond:_VeebiGurmaanid#M.C3.A4rkused: VeebiGurmaanid]&lt;br /&gt;
&lt;br /&gt;
=== [https://wiki.itcollege.ee/index.php/Meeskond:_Redundant_Rappers Meeskond: Redundant Rappers] ===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kliss&lt;br /&gt;
*Kertu Nurmberg&lt;br /&gt;
*Anneli Asser&lt;br /&gt;
*Mart-Erki Nõumees&lt;br /&gt;
&lt;br /&gt;
Meeskonna [https://wiki.itcollege.ee/index.php/Meeskond:_Redundant_Rappers#XML_.2F_XSD_.2F_XSLT XML/XSD/XSLT].&lt;br /&gt;
&lt;br /&gt;
Meeskonna lõpptoode: [http://enos.itcollege.ee/~tkliss/VRII/ RedRap].&lt;br /&gt;
&lt;br /&gt;
Meeskonna [https://wiki.itcollege.ee/index.php/Meeskond:_Redundant_Rappers#XML_retsensioon_meeskonnale_Sense_Of_Direction retsensioon] XML-i osas meeskonnale Sense Of Direction.&lt;br /&gt;
&lt;br /&gt;
Meeskonna [https://wiki.itcollege.ee/index.php/Meeskond:_Redundant_Rappers#Klientrakenduse_retsensioon_meeskonnale_Bob.27s_Burgers retsensioon] klientrakenduse osas meeskonnale Bob&#039;s Burgers.&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Sense Of Direction===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Ilja Andrejev&lt;br /&gt;
*Aleksandr Babõkin&lt;br /&gt;
*Vladislav Lahtarin&lt;br /&gt;
*Vladislav Kovaltšuk&lt;br /&gt;
Meeskonna koduleht: [[Sense Of Direction]]&amp;lt;br&amp;gt;&lt;br /&gt;
XML/XSD/XSLT osa asub [https://wiki.itcollege.ee/index.php/Sense_Of_Direction#XML siin]&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon XML-failide kohta meeskonnale &amp;quot;Poly&amp;quot; asub [https://wiki.itcollege.ee/index.php/Sense_Of_Direction#Retsensioon_XML-failide_kohta_meeskonnale_.22Poly.22 siin]&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon meeskonna &amp;quot;Bob&#039;s Burgers&amp;quot; veebi- ja klienrakendusele asub [https://wiki.itcollege.ee/index.php/Sense_Of_Direction#.22Bob.27s_Burgers.22_veebiteenuse_ja_klientrakenduse_retsensioon siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RK Meeskond: RK]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Raido Kivinurm&lt;br /&gt;
&lt;br /&gt;
Esimene osa: [https://wiki.itcollege.ee/index.php/RK#XML XML] / [https://wiki.itcollege.ee/index.php/RK#XSD XSD] / [https://wiki.itcollege.ee/index.php/RK#XSLT_HTML XSLT HTML] / [https://wiki.itcollege.ee/index.php/RK#XSLT_XML XSLT XML]&lt;br /&gt;
&amp;lt;BR&amp;gt; [https://wiki.itcollege.ee/index.php/RK#Retsensioonid Retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Team_Echo Meeskond: Echo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Vajak&lt;br /&gt;
* Janno Oolo&lt;br /&gt;
* Mari-Liis Oldja&lt;br /&gt;
* Arti Zirk&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Team_Echo#XML XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Meeskond:_Redundant_Rappers#Retsensioon_Team_Echo_poolt Retsensioon meeskonnale Redundant Rappers]&lt;br /&gt;
&lt;br /&gt;
Kood V1: [https://www.dropbox.com/s/yegi5rn6emdjs4f/VRII_Echo360.zip?dl=0 Echo360]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Bob%27s_Burgers Meeskond: Bob&#039;s Burgers]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Aleksei Kopõlov&lt;br /&gt;
*Sander Perens&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Bob%27s_Burgers#XML_Retsensioon_meeskonnale_VeebiGurmaanid Retsensioon meeskonnale &#039;&#039;&#039;VeebiGurmaanid&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/User:Meeskond:_VeebiGurmaanid Meeskond: VeebiGurmaanid]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Koit Kõrvel&lt;br /&gt;
* Marko Kask&lt;br /&gt;
* Melissa Eenmaa&lt;br /&gt;
* Joosep Koort&lt;br /&gt;
&lt;br /&gt;
Retsentsioon meeskonnale: [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_HelpOut HelpOut]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Muru Meeskond: Muru]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Murdho Savila&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Muru#Retsensioonid Retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Repi Meeskond: Repi]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Renet Pirso&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Blogify Retsensioon: BLOGIFY]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: HelpOut===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mikk Sarapuu&lt;br /&gt;
* Martin Paakspuu&lt;br /&gt;
* Kerdo Kullamäe&lt;br /&gt;
* Marvin Mardiat&lt;br /&gt;
* Piret Pomerants&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Meeskond:_HelpOut Meeskonna koduleht]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid&#039;&#039;&#039;&lt;br /&gt;
* XML/XSLT/XSD retsensioon meeskonnale &#039;&#039;&#039;Falador&#039;&#039;&#039; asub [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_Falador siin]&lt;br /&gt;
&lt;br /&gt;
Teenuse ja kliendi retsensiooni teeb Bomory. In progress...&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/2017_Meeskond_Poly Meeskond: Poly]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kristian Kalm&lt;br /&gt;
* Roland Kontson&lt;br /&gt;
&lt;br /&gt;
=== Meeskond [https://wiki.itcollege.ee/index.php/Meeskond_%22Nope%22: Nope] ===&lt;br /&gt;
* Raido Vell&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Lisette Noor&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meeskonna koduleht:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Meeskond_%22Nope%22: Nope]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML/XSLT/XSD&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Bob%27s_Burgers Bob&#039;s Burgers] &amp;lt;br/&amp;gt;&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Blogify Blogify]&lt;br /&gt;
&lt;br /&gt;
===Meeskond [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab Alt + Tab]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Roots&lt;br /&gt;
* Roland Soosaar&lt;br /&gt;
* Krista Norak&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#Esimene_osa Esimene osa:] [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XML XML] | [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XSD XSD] | [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XSLT_HTML XSLT HTML] | [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XSLT_XML XSLT XML]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#Anal.C3.BC.C3.BCs Analüüs]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Muru Muru]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Kirde_sai Meeskond: Kirde sai]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Teearu&lt;br /&gt;
*Berit Põldoja&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Kirde_sai#XML.2FXSD.2FXSLT XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Proovitud_abielu XML retsensioon Proovitud abielu]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Unnamed Team===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Andreas Kirotar&lt;br /&gt;
*Jaan Kostõgov&lt;br /&gt;
&lt;br /&gt;
Meeskonna koduleht: [[Unnamed Team]]&lt;br /&gt;
 &lt;br /&gt;
Meeskonna retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:2017_Meeskond_Poly Poly]&lt;br /&gt;
&lt;br /&gt;
=== Meeskond [https://wiki.itcollege.ee/index.php/%3F%3F%3F_Profit ??? Profit] ===&lt;br /&gt;
* Aivar Romandi&lt;br /&gt;
* Frank Karl Koppel&lt;br /&gt;
* Aldin Talve&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Purgis Retsensioon meeskonnale Purgis]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Purgis===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Märt Lõhmus&lt;br /&gt;
* Kelli Lukas &lt;br /&gt;
Meeskonna koduleht: [[Purgis]]&amp;lt;br&amp;gt;&lt;br /&gt;
Esimene osa asub [https://wiki.itcollege.ee/index.php/Purgis#XML siin]&lt;br /&gt;
&lt;br /&gt;
XML Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Alt_%2B_Tab  Alt + Tab]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Meeskond:_Falador Falador]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Lugus&lt;br /&gt;
* Taavi Metsvahi&lt;br /&gt;
* Elina Kuldkepp&lt;br /&gt;
Meeskonna koguleht: [[Meeskond: Falador]]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Meeskond:_Falador#XML.2FXSD.2FXSLT XML/XSD/XSLT]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Meeskond:_Falador#Veebiteenus Veebiteenuse analüüs]&amp;lt;br&amp;gt;&lt;br /&gt;
XML retsensioon meeskonnale: [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_QView QView]&amp;lt;br&amp;gt;&lt;br /&gt;
Veebiteenuse analüüsi retsensioon meeskonnale: [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_QView QView]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teenuse repo asub siin: [https://bitbucket.org/ekuldkep/vr2/ Teenus]&amp;lt;br&amp;gt;&lt;br /&gt;
Klientrakenduse repo asub siin: [https://bitbucket.org/ekuldkep/haterclient Klientrakendus]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Blogify Blogify]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Hando Laasmägi&lt;br /&gt;
* Tarvo Tammejuur&lt;br /&gt;
* Cathy Toomast&lt;br /&gt;
* Tõnn Vaher&lt;br /&gt;
&lt;br /&gt;
XML etapi Retsensioon meeskonnale: [https://wiki.itcollege.ee/index.php/Talk:Ott#Retsensioon_XML_kohta_meeskonnalt_Blogify Ott]&lt;br /&gt;
&lt;br /&gt;
LÕPPTOODE:[https://drive.google.com/open?id=0B2jSU1zbUNk8YUxxYlZQMUs3UUU SIIN]&lt;br /&gt;
(teenuse ja kliendi zipid + Käivitusjuhend)&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Proovitud_abielu Proovitud abielu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Elina Kuldkepp&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Proovitud_abielu#XML.2FXSD.2FXSLT XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
XML Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Nope%22: Nope]&lt;br /&gt;
&lt;br /&gt;
=== Meeskond: [https://wiki.itcollege.ee/index.php/Mjart Mjart] ===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Märt Häkkinen&lt;br /&gt;
XML/XSLT/XSD Retsensioon meeskonnale [Proovitud Abielu https://wiki.itcollege.ee/index.php/Talk:Proovitud_abielu]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Ott Ott]===&lt;br /&gt;
Liige:&lt;br /&gt;
*Ott Sõerumäe&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Ott#XML_Retsensioon_meeskonnale_Kirde_sai Kirde sai]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/PageNotFound PageNotFound]===&lt;br /&gt;
&#039;&#039;&#039;Liige:&#039;&#039;&#039;&lt;br /&gt;
*Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid&#039;&#039;&#039;&lt;br /&gt;
*[https://wiki.itcollege.ee/index.php/Talk:Mjart XML-i retsensioon meeskonnale Mjart, meeskond PageNotFound poolt] (kirjutatud 01.05.2017)&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/TahaksLopetada TahaksLopetada]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Naris&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/PhoneBookService PhoneBookService]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Indrek Tamm&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Meeskond:_Falador Sulased]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Osa&lt;br /&gt;
* Taavi Kivimaa&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Meeskond:_Sulased Koduleht]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Sense_Of_Direction Restsensioon XML/XSD/XSLT]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Tudengisündroom===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Marko Saluste&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===Meeskond: CoverMe===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: CoverMe]]&lt;br /&gt;
&lt;br /&gt;
XML failide retsensioon meeskonnale PC KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:Team_PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
XML failide retsensioon meeskonnale PC KartKicker: [https://wiki.itcollege.ee/index.php/Talk:Ticketer Talk:Team_Ticketer]&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse retsensioon meeskonnale SPOT: [https://wiki.itcollege.ee/index.php/Talk:Team_SPOT#Meeskond_CoverMe_retsensioon_meeskonnale_SPOT Talk: Team_SPOT]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Team_SPOT Meeskond: SPOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Pachel&lt;br /&gt;
* Oliver Tiks&lt;br /&gt;
Esitatud tööd leiab meeskonna [https://wiki.itcollege.ee/index.php/Team_SPOT lehelt]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JRT Meeskond: JRT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Riho Uusjärv&lt;br /&gt;
* Jevgeni Gavrilov&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
Retsensioon XML-failide kohta meeskonnale &amp;quot;PC KartKicker&amp;quot; [https://wiki.itcollege.ee/index.php/JRT#Retsensioon_JRT]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retsensioon XML-failide kohta meeskonnale &amp;quot;Ninjas in pyjamas&amp;quot;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/JRT#Retsensioon_meeskonnale_.22Ninjas_in_pyjamas.22] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restsensioon Veebiteenusele meeskonnale &amp;quot;SPOT&amp;quot; [https://wiki.itcollege.ee/index.php/JRT#Retsensioon_meeskonnale_.22SPOT.22]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ticketer Meeskond: Ticketer]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Krista Rüütel&lt;br /&gt;
* Roland Türi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ninjas_in_pyjamas Meeskond: Ninjas in Pyjamas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Anna Linskaja&lt;br /&gt;
* Karen Grigorjan&lt;br /&gt;
* Sergei Hristoforov&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Talupood Meeskond: Talutooted]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Matson&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talupood#XML XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioon:&#039;&#039;&#039;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
[http://enos.itcollege.ee/~ttilk/VR2/Projekt/ Lõpptoode]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioon lõpptootele:&#039;&#039;&#039; &lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:DevHelpVR2 Talk:DevHelpVR2] [TODO]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DevHelpVR Meeskond: DevHelp]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Martin Jääger&lt;br /&gt;
* Kristo Leemets&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML failide retsensioon tiimile Ticketer, 26.03.2017:&#039;&#039;&#039;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Ticketer Talk:Ticketer]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039;&lt;br /&gt;
[http://enos.itcollege.ee/~mjaager/VR2/DevHelp2_final/ Lõpptoode]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekti TFS:&#039;&#039;&#039; &lt;br /&gt;
[https://devhelp.visualstudio.com/DevHelp2 DevHelp2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoote retsensioon:&#039;&#039;&#039;&lt;br /&gt;
[TODO]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/PC_KartKicker Meeskond: PC KartKicker]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Rain Saarmäe&lt;br /&gt;
* Jan Eerik&lt;br /&gt;
XML failide retsensioon meeskonnale DevHelpVR, 27.03.2017: [https://wiki.itcollege.ee/index.php/Talk:DevHelpVR Talk:DevHelpVR] &amp;lt;br&amp;gt;&lt;br /&gt;
XML failide retsensioon meeskonnale Ninjas in pyjamas, 27.03.2017: [https://wiki.itcollege.ee/index.php/Talk:Ninjas_in_pyjamas Talk:Ninjas_in_pyjamas]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/saarmae/VR2_projekt/ Link] lõpptoote Git repositooriumile (ainult teenus).&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:DevHelpVR#L.C3.B5pptoote_retsensioon_meeskonnalt_PC_KartKicker Link] meeskonna DevHelp lõpptoote retsensioonile&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/rent_a_bike Meeskond: rent-A-bike]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Erika Ehmann&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/A$unik Meeskond: A$unik]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Hardi Antsov&lt;br /&gt;
* Juhan Trink&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/Talk:Ticketer Klientrakenduse] retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Ticketer Ticketer].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://wiki.itcollege.ee/index.php/Talk:Team_SPOT Veebiteenuse] retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Team_SPOT Team_SPOT].&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123686</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123686"/>
		<updated>2017-06-14T21:17:53Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Ülidne arvustus==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tehnoloogilise osa arvustus==&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; ===&lt;br /&gt;
 &lt;br /&gt;
==== Domeenimudelid ====&lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse domeenimudelid on kirjeldatud üsna põhjalikult ja meeldib, et mõistlikes kohtades on kasutatud annotatsioone – näiteks piiratud stringi pikkused ja lisatud &#039;&#039;required&#039;&#039; väljad kuhu vaja. Mudeleid, nagu eelpool mainitud, on kokku kümne ringis, mis viitab sellele, et projekt tundub nõudeid arvestades paraja suurusega. Lisaks on leidub eraldi kaust, kus on realiseeritud &#039;&#039;Enum&#039;&#039;’itena erinevad fikseeritud skaalaga väljad. Veel torkab silma, et kasutatakse &#039;&#039;Lazy Loading&#039;&#039;’ut, mis antud rakenduse suuruse juures pole võib-olla kõige vajalikum, sest ei anna üldjuhul efekti Uow ja Repository mustrite kasutuse tõttu. Samuti võib see tulevikus raskendada rakenduse üle viimist ASP.NET Core’i peale, mis seda ei toeta. Natukene häirivad mõned mitu-mitmele seoste tulemusel tekkivate olemite nimetused – näiteks User_DevTeam või User_Project. Võib-olla oleks silmale veidi ilusam neid ilma alakriipsuta kirjutada, kuid see on paljuski isiklik eelistus. Kokkuvõtvalt aga peab mainima, et mudelid tunduvad hästi läbi mõeldud ning siinkohal on etteheiteid teha raske.&lt;br /&gt;
 &lt;br /&gt;
==== Andmebaas ja repositooriumid ====&lt;br /&gt;
 &lt;br /&gt;
Arhitektuuri osas on kasutatud Repository mustrit &#039;&#039;db-context&#039;&#039;&#039;i vastu, samuti Unit of Work mustrit, mis koondab enda alla repositooriumid. Kiita saab seda, et Helpers kataloogis on DbInitializer, mis teeb konkreetset koodi mittetundvale inimesele rakenduse järgiproovimise lihtsaks (ei pea ise dummy data’t genereerima, vaid saab kohemaid sisusse süveneda). Repositooriumite osas torkab silma, et need on enamjaolt tühjad (peale UserRepository), kuid UOW-s registreeritakse need custom repositooriumitena. Loomulikult võib need tuleviku arendusi silmas pidades valmis ära teha, kuid siis pole suurt mõtet neid veel eraldi Dictionary-sse registreerida vaid kasutada UOW-s standardsetena. Iga repositooriumi vastu on kirjutatud eraldi Interface, nii repositooriumid, kui Interface’id kasutavad baasmudelit (vastavalt EFRepository ja IRepository), millest nad pärinevad, mis näitab ka, et tuntakse hästi ka objekt-orienteerituse põhitõdesid.&lt;br /&gt;
  &lt;br /&gt;
==== Äriloogika ====&lt;br /&gt;
 &lt;br /&gt;
Kontrollerid suhtlevad antud juhul teenuse kihiga (&#039;&#039;service layer&#039;&#039;) ja kasutatakse DTO-sid koos Factory mustriga. DTO-d tunduvad kõik domeenimudelitega identsed ja on seega ilmselt valmis tehtud just tulevikku silmas pidades. Kontrollerites on realiseeritud enamjaolt &#039;&#039;CRUD&#039;&#039; meetodid, mis kasutavad DTO-sid, ja väga palju spetsiifilisi lahendusi realiseeritud ei ole. Kontrolleritele võiks vaid nii palju ette heita, et ei kasutata asünkroonset lähenemist, mis teeks rakenduse tulevikus veelgi skaleeritavamaks, kuid mis põhiline, lubaks rakendust paindlikumalt kasutada. Samas, nii repositooriumid kui kontrollerid on õiges kohas ja õigesti üles ehitatud ning kõik tundub ilusasti töötavat. Ainus, mida saaks ära märkida, on osade kontrollerite puhul vea korral 404 veateate mitte tagastamine. Kasutajate haldus kasutab &#039;&#039;Entity Framework&#039;&#039;-i enda &#039;&#039;ApplicationUser&#039;&#039;’it, seega aine baas-repositooriumis välja pakutud &#039;&#039;Custom Identity&#039;&#039; lahendust ei ole siinkohal realiseeritud (mis ei olnud ka ise-enesest eraldi nõue). &lt;br /&gt;
 &lt;br /&gt;
==== Kokkuvõte ====&lt;br /&gt;
 &lt;br /&gt;
Teenuse juures torkab silma, et meeskond tunneb hästi arhitektuurilisi võtteid, kuidas veebirakendusi loogiliselt üles ehitada. Kuigi rakendus praeguses mahus kõiki neid kihte veel ei vaja, annab see võimaluse tulevikus teenust lihtsasti skaleerida, kuna kihid on juba algusest saati ilusasti paigas. Sellest annab ka tunnistust see, et näiteks DTO-de ja domeenimudelite väljad hetkel kattuvad, kuid tulevikus on lihtsasti võimalik teha andmebaasis muudatusi ja täiendusi ilma neid kliendile kohe välja näitamata. Kood on enam-vähem korralikult kommenteeritud, kuid mõndades kohtades jäi silma pikk doctype kommentaaride rida, mis oli kirjutatud Eesti keeles. Kuna Visual Studio genereerib uut rakendust tehes ka palju ingliskeelseid kommentaare, võiks kaaluda ühtse stiili kasutamist ning vältida eestikeelset teksti koodi vahel. Kokkuvõtvalt tuleb meeskonda kiita tubli töö eest. Teenus on väga korralikult üles ehitatud ning järgib paljusid mustreid, mis on täna tõsiseltvõetavate rakenduste tunnuseks. Kuigi sellise mahuga rakenduse võiks kirjutada vabalt ka ilma UOW vahekihita, näitab selle kasutamine teatavat vilumust ning teeb teenuse juures tulevikus muudatuste tegemise lihtsamaks. Arvestades, et meeskonnas oli vaid kaks liiget, väärib see projekt kindlasti maksimumpunkte!&lt;br /&gt;
&lt;br /&gt;
=== Klientrakendus ===&lt;br /&gt;
&lt;br /&gt;
==== Arhitektuur ==== &lt;br /&gt;
&lt;br /&gt;
Klientrakendus on realiseeritud &#039;&#039;WPF application&#039;&#039;’ina ning asub samas solution’is. Klientrakendus kasutab samu domeenimudeleid ning samuti on olemas Enum’ite kaust fikseeritud skaalaga väljade jaoks. Nii nagu teenuse osas, häirivad veidi silma alakriipsuga deklareeritud väljad (nt. User_UserStoryStart), kuid see on jällegi puhtalt stiili küsimus. Klientrakenduse domeenimudelid suhtlevad veebiteenuse API-ga tokenite abil, mis initsialiseeritakse konstruktoris. Samuti on olemas vaatemudelid, mis pärinevad baas vaatemudelist BaseVM, mis on põhimõtteliselt &#039;&#039;event handler&#039;&#039;. Vaated näevad välja nagu nad out of the box on - eristuvat disaini ei ole siinkohal märgata. Samas on see arusaadav, kuna projekti maht oli niigi suur ja põhifookus lasus funktsionaalsuse realiseerimisel. Eraldi on olemas teenuse kiht (&#039;&#039;service layer&#039;&#039;), mille ülesandeks on andmete edastamine API vastu. Iga domeenimudeli jaoks on eraldi teenusekihi funktsionaalsus, mis pärineb baas &#039;&#039;service&#039;&#039;’ist. Mõne vaatemudeli puhul jäi silma, et see kasutab väga palju teenusekihi klasse (näiteks DevTeamVM kasutab viite service’it). Siinkohal oleks võinud kaaluda teha lisaabstraktsioon, mis koondaks enda alla service-id. Idee poolest võiks see olla nagu UOW (Unit of Work), mida saaks süstida vaatemudelitesse, et need võiksid kasutada kõiki vajaminevaid teenusekihi klasse. Teisalt ei ole projekti maht niivõrd suur ja see võib vabalt jääda ka tulevikuks.&lt;br /&gt;
&lt;br /&gt;
==== Funktsionaalsus ====&lt;br /&gt;
 &lt;br /&gt;
Rakendust avades kuvatakse kõigepealt sisselogimise aken, kust on konto puudumisel võimalik kohe ka uus kasutaja registreerida. Peale registreerimist võiks kuvada lisaakna, millega kinnitada kasutajale, et registreerimine tõepoolest õnnestus. Praegu suunatakse lihtsalt tagasi sisselogimise aknasse. Peale sisselogimist avaneb “põhiaken”, kus saab kasutada juba põhifunktsionaalsust - siduda kasutajat projektide ja arendusmeeskondadega, projektidele lisada iteratsiooni ning iteratsioonidele kasutajalugusid. Nii projekte, kasutajalugusid kui iteratsioone saab sealjuures eraldiseisvalt kustutada ning ülemkategooria kustutamisel kaovad ka alamüksused (cascade delete). Siin tuleb selgelt välja, et domeenimudelid on läbimõeldud ning lisatud vajalikud väljad. Samas ei ole “surnud” välju, mida kuskil ei kasutata ja mis niisama objekti küljes on. Lisaks on võimalik vaadata statistikat ning muuhulgas jälgitakse ka kasutajate sisselogimiste arvu (teatavasti oli sisselogimiste arvu piiramine ka üks projekti nõuetest).&lt;br /&gt;
 &lt;br /&gt;
==== Kokkuvõte ====&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on korralikult kirjutatud ning arvestades kogu projektimahtu, ei ole sellele palju ette heita. Disaini osas oleks võinud mõelda klienti realiseerida siiski veebirakendusena, kasutades näiteks &#039;&#039;AngularJS&#039;&#039;-i veebiraamistikuna ja näiteks &#039;&#039;Bootstrap&#039;&#039; raamistiku elemente. Samas võib omast kogemusest öelda, et kindlasti ei ole see ajasäästlikum tee, kui tehnoloogiad hästi ei valda (arvestades, et aine raames &#039;&#039;Angular&#039;&#039; raamistikust väga midagi rääkida ei jõutud). Selle tulemusena oleks saanud disaini ka veidi parema teha, kuid kõige tähtsam on siiski funktsionaalsuse realiseerimine, mis õnnestus väga hästi ja mille eest tuleb meeskonda kiita. Ükski lahendus ei tundu poolik, ning kõik on suures plaanis läbi mõeldud. Siit jääb kuvama ka tõsiasi, et see projekt on tegelikult edasiarendus C# aines kirjutatud projektile ning võib arvata, et seetõttu oli ka andmebaasi struktuuri ülesehitamine selle võrra lihtsam. Mõte ise on samuti hea. Kui meeskonnal tekiks tahtmine asja päriselt realiseerida, oleks nüüd lihtne võtta teenus ning teha sellele lisaks otsa korralik veebirakendus, mis näeb ilus välja.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt saaks on nimekiri pikk, kuid hästi on läbimõeldud funktsionaalsus ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klient rakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123685</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123685"/>
		<updated>2017-06-14T21:15:35Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Ülidne arvustus==&lt;br /&gt;
===Andmemudel, olemid===&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
===Kasutatav tehnoloogia ja veebiteenuse olemasolu===&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
===Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika===&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
===Piirangute olemasolu pöördumiste arvu osas ning nende haldust===&lt;br /&gt;
Rakenduse kasutamise käigus ei suutnud ühtegi piirangut tuvastada. Kuigi see oli küll õppejõu poolt nõuetes välja toodud, arvame, et puhtalt funktsionaalsust ja mahtu arvestades oleks see osa koormuse päris suureks ajanud. Eriti arvestades asjaolu, et projektimeeskond oli vaid kaheliikmeline. Küll aga teeksime siinkohal soovituse edasise suhtes, kui rakendust soovitakse ärilistel eesmärkidel realiseerida, tuleks erinevad piirangud ehk hinnapakettidega siduda. Või teisalt, kui eesmärgiks on müüa antud rakendust SaaS pilveteenusena, tuleks ehk hinnapakettidesse sisse arvata ka skaleeritavus ja maksva kliendi teenust mitte häirida.&lt;br /&gt;
&lt;br /&gt;
===Kasutusjuhend===&lt;br /&gt;
Väga tore oli lugeda asjalikku kasutusjuhendit, mis andis kindla arusaama näiteks rollidest ja võimalustest, mida rakendus teha võimaldab. Kuigi rakendus ise on ka esimesel kasutusel valdkonnaga tuttavale kasutajale arusaadav, siis näiteks kasutaja registreerimisel oli abiks juhendi märkus projekti lisamise ligipääsude osas. Nimelt vaikimisi registreerides uue kasutaja rollina &amp;quot;Arendaja&amp;quot;, ei saa ühtegi tegevust teha ilma, et administraator oleks eelnevalt mõned projektid juba süsteemi lisanud ning arendaja(d) sellega sidunud. Siinkohal ka soovitus, et kasutaja informeerimiseks võiks presenteerida seda peale esimest sisselogimist.&lt;br /&gt;
Kokkuvõtvalt tuleks mainida, et kuigi kasutusjuhendis olid visuaalidena välja toodud kõik vaated, siis täienduseks oleks tore täpsemalt ka osad kasutusjuhud lahti kirjutada, et harida kasutajat tööriista optimaalsemalt kasutama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tehnoloogilise osa arvustus==&lt;br /&gt;
&lt;br /&gt;
=== Veebiteenus ===&lt;br /&gt;
 &lt;br /&gt;
==== Domeenimudelid ====&lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse domeenimudelid on kirjeldatud üsna põhjalikult ja meeldib, et mõistlikes kohtades on kasutatud annotatsioone – näiteks piiratud stringi pikkused ja lisatud &#039;&#039;required&#039;&#039; väljad kuhu vaja. Mudeleid, nagu eelpool mainitud, on kokku kümne ringis, mis viitab sellele, et projekt tundub nõudeid arvestades paraja suurusega. Lisaks on leidub eraldi kaust, kus on realiseeritud &#039;&#039;Enum&#039;&#039;’itena erinevad fikseeritud skaalaga väljad. Veel torkab silma, et kasutatakse &#039;&#039;Lazy Loading&#039;&#039;’ut, mis antud rakenduse suuruse juures pole võib-olla kõige vajalikum, sest ei anna üldjuhul efekti Uow ja Repository mustrite kasutuse tõttu. Samuti võib see tulevikus raskendada rakenduse üle viimist ASP.NET Core’i peale, mis seda ei toeta. Natukene häirivad mõned mitu-mitmele seoste tulemusel tekkivate olemite nimetused – näiteks User_DevTeam või User_Project. Võib-olla oleks silmale veidi ilusam neid ilma alakriipsuta kirjutada, kuid see on paljuski isiklik eelistus. Kokkuvõtvalt aga peab mainima, et mudelid tunduvad hästi läbi mõeldud ning siinkohal on etteheiteid teha raske.&lt;br /&gt;
 &lt;br /&gt;
==== Andmebaas ja repositooriumid ====&lt;br /&gt;
 &lt;br /&gt;
Arhitektuuri osas on kasutatud Repository mustrit &#039;&#039;db-context&#039;&#039;&#039;i vastu, samuti Unit of Work mustrit, mis koondab enda alla repositooriumid. Kiita saab seda, et Helpers kataloogis on DbInitializer, mis teeb konkreetset koodi mittetundvale inimesele rakenduse järgiproovimise lihtsaks (ei pea ise dummy data’t genereerima, vaid saab kohemaid sisusse süveneda). Repositooriumite osas torkab silma, et need on enamjaolt tühjad (peale UserRepository), kuid UOW-s registreeritakse need custom repositooriumitena. Loomulikult võib need tuleviku arendusi silmas pidades valmis ära teha, kuid siis pole suurt mõtet neid veel eraldi Dictionary-sse registreerida vaid kasutada UOW-s standardsetena. Iga repositooriumi vastu on kirjutatud eraldi Interface, nii repositooriumid, kui Interface’id kasutavad baasmudelit (vastavalt EFRepository ja IRepository), millest nad pärinevad, mis näitab ka, et tuntakse hästi ka objekt-orienteerituse põhitõdesid.&lt;br /&gt;
  &lt;br /&gt;
==== Äriloogika ====&lt;br /&gt;
 &lt;br /&gt;
Kontrollerid suhtlevad antud juhul teenuse kihiga (&#039;&#039;service layer&#039;&#039;) ja kasutatakse DTO-sid koos Factory mustriga. DTO-d tunduvad kõik domeenimudelitega identsed ja on seega ilmselt valmis tehtud just tulevikku silmas pidades. Kontrollerites on realiseeritud enamjaolt &#039;&#039;CRUD&#039;&#039; meetodid, mis kasutavad DTO-sid, ja väga palju spetsiifilisi lahendusi realiseeritud ei ole. Kontrolleritele võiks vaid nii palju ette heita, et ei kasutata asünkroonset lähenemist, mis teeks rakenduse tulevikus veelgi skaleeritavamaks, kuid mis põhiline, lubaks rakendust paindlikumalt kasutada. Samas, nii repositooriumid kui kontrollerid on õiges kohas ja õigesti üles ehitatud ning kõik tundub ilusasti töötavat. Ainus, mida saaks ära märkida, on osade kontrollerite puhul vea korral 404 veateate mitte tagastamine. Kasutajate haldus kasutab &#039;&#039;Entity Framework&#039;&#039;-i enda &#039;&#039;ApplicationUser&#039;&#039;’it, seega aine baas-repositooriumis välja pakutud &#039;&#039;Custom Identity&#039;&#039; lahendust ei ole siinkohal realiseeritud (mis ei olnud ka ise-enesest eraldi nõue). &lt;br /&gt;
 &lt;br /&gt;
==== Kokkuvõte ====&lt;br /&gt;
 &lt;br /&gt;
Teenuse juures torkab silma, et meeskond tunneb hästi arhitektuurilisi võtteid, kuidas veebirakendusi loogiliselt üles ehitada. Kuigi rakendus praeguses mahus kõiki neid kihte veel ei vaja, annab see võimaluse tulevikus teenust lihtsasti skaleerida, kuna kihid on juba algusest saati ilusasti paigas. Sellest annab ka tunnistust see, et näiteks DTO-de ja domeenimudelite väljad hetkel kattuvad, kuid tulevikus on lihtsasti võimalik teha andmebaasis muudatusi ja täiendusi ilma neid kliendile kohe välja näitamata. Kood on enam-vähem korralikult kommenteeritud, kuid mõndades kohtades jäi silma pikk doctype kommentaaride rida, mis oli kirjutatud Eesti keeles. Kuna Visual Studio genereerib uut rakendust tehes ka palju ingliskeelseid kommentaare, võiks kaaluda ühtse stiili kasutamist ning vältida eestikeelset teksti koodi vahel. Kokkuvõtvalt tuleb meeskonda kiita tubli töö eest. Teenus on väga korralikult üles ehitatud ning järgib paljusid mustreid, mis on täna tõsiseltvõetavate rakenduste tunnuseks. Kuigi sellise mahuga rakenduse võiks kirjutada vabalt ka ilma UOW vahekihita, näitab selle kasutamine teatavat vilumust ning teeb teenuse juures tulevikus muudatuste tegemise lihtsamaks. Arvestades, et meeskonnas oli vaid kaks liiget, väärib see projekt kindlasti maksimumpunkte!&lt;br /&gt;
&lt;br /&gt;
=== Klientrakendus ===&lt;br /&gt;
&lt;br /&gt;
==== Arhitektuur ==== &lt;br /&gt;
&lt;br /&gt;
Klientrakendus on realiseeritud &#039;&#039;WPF application&#039;&#039;’ina ning asub samas solution’is. Klientrakendus kasutab samu domeenimudeleid ning samuti on olemas Enum’ite kaust fikseeritud skaalaga väljade jaoks. Nii nagu teenuse osas, häirivad veidi silma alakriipsuga deklareeritud väljad (nt. User_UserStoryStart), kuid see on jällegi puhtalt stiili küsimus. Klientrakenduse domeenimudelid suhtlevad veebiteenuse API-ga tokenite abil, mis initsialiseeritakse konstruktoris. Samuti on olemas vaatemudelid, mis pärinevad baas vaatemudelist BaseVM, mis on põhimõtteliselt &#039;&#039;event handler&#039;&#039;. Vaated näevad välja nagu nad out of the box on - eristuvat disaini ei ole siinkohal märgata. Samas on see arusaadav, kuna projekti maht oli niigi suur ja põhifookus lasus funktsionaalsuse realiseerimisel. Eraldi on olemas teenuse kiht (&#039;&#039;service layer&#039;&#039;), mille ülesandeks on andmete edastamine API vastu. Iga domeenimudeli jaoks on eraldi teenusekihi funktsionaalsus, mis pärineb baas &#039;&#039;service&#039;&#039;’ist. Mõne vaatemudeli puhul jäi silma, et see kasutab väga palju teenusekihi klasse (näiteks DevTeamVM kasutab viite service’it). Siinkohal oleks võinud kaaluda teha lisaabstraktsioon, mis koondaks enda alla service-id. Idee poolest võiks see olla nagu UOW (Unit of Work), mida saaks süstida vaatemudelitesse, et need võiksid kasutada kõiki vajaminevaid teenusekihi klasse. Teisalt ei ole projekti maht niivõrd suur ja see võib vabalt jääda ka tulevikuks.&lt;br /&gt;
&lt;br /&gt;
==== Funktsionaalsus ====&lt;br /&gt;
 &lt;br /&gt;
Rakendust avades kuvatakse kõigepealt sisselogimise aken, kust on konto puudumisel võimalik kohe ka uus kasutaja registreerida. Peale registreerimist võiks kuvada lisaakna, millega kinnitada kasutajale, et registreerimine tõepoolest õnnestus. Praegu suunatakse lihtsalt tagasi sisselogimise aknasse. Peale sisselogimist avaneb “põhiaken”, kus saab kasutada juba põhifunktsionaalsust - siduda kasutajat projektide ja arendusmeeskondadega, projektidele lisada iteratsiooni ning iteratsioonidele kasutajalugusid. Nii projekte, kasutajalugusid kui iteratsioone saab sealjuures eraldiseisvalt kustutada ning ülemkategooria kustutamisel kaovad ka alamüksused (cascade delete). Siin tuleb selgelt välja, et domeenimudelid on läbimõeldud ning lisatud vajalikud väljad. Samas ei ole “surnud” välju, mida kuskil ei kasutata ja mis niisama objekti küljes on. Lisaks on võimalik vaadata statistikat ning muuhulgas jälgitakse ka kasutajate sisselogimiste arvu (teatavasti oli sisselogimiste arvu piiramine ka üks projekti nõuetest).&lt;br /&gt;
 &lt;br /&gt;
==== Kokkuvõte ====&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on korralikult kirjutatud ning arvestades kogu projektimahtu, ei ole sellele palju ette heita. Disaini osas oleks võinud mõelda klienti realiseerida siiski veebirakendusena, kasutades näiteks &#039;&#039;AngularJS&#039;&#039;-i veebiraamistikuna ja näiteks &#039;&#039;Bootstrap&#039;&#039; raamistiku elemente. Samas võib omast kogemusest öelda, et kindlasti ei ole see ajasäästlikum tee, kui tehnoloogiad hästi ei valda (arvestades, et aine raames &#039;&#039;Angular&#039;&#039; raamistikust väga midagi rääkida ei jõutud). Selle tulemusena oleks saanud disaini ka veidi parema teha, kuid kõige tähtsam on siiski funktsionaalsuse realiseerimine, mis õnnestus väga hästi ja mille eest tuleb meeskonda kiita. Ükski lahendus ei tundu poolik, ning kõik on suures plaanis läbi mõeldud. Siit jääb kuvama ka tõsiasi, et see projekt on tegelikult edasiarendus C# aines kirjutatud projektile ning võib arvata, et seetõttu oli ka andmebaasi struktuuri ülesehitamine selle võrra lihtsam. Mõte ise on samuti hea. Kui meeskonnal tekiks tahtmine asja päriselt realiseerida, oleks nüüd lihtne võtta teenus ning teha sellele lisaks otsa korralik veebirakendus, mis näeb ilus välja.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lõppsõna==&lt;br /&gt;
Kokkuvõtvalt võib väita, et tegemist on ühe igati eeskujuliku projektiga, arvestades funktsionaalsust, andmemudeleid ja seoseid, mustrite kasutust ja koodi stiili. Parenduste osas kindlasti rohkelt mõtteainet ka eelpool välja toodud, aga mõned asjad, mida edasiarenduse käigus kindlasti kaaluda tuleks on nn &#039;&#039;Lazy loading&#039;&#039;&#039;u kasutus domeenimudelite juures, kontrollerite osas veahalduse lisamine ning klientrakenduse juures teenusekihi optimeerimist. Kuid need on pelgalt soovitused.&lt;br /&gt;
Positiivse külje pealt saaks on nimekiri pikk, kuid hästi on läbimõeldud funktsionaalsus ja andmemudelid, kasutatud on edukalt erinevaid arendusmustreid, koodi stiil on hästi loetav ning kommenteeritud. Ja arvestades, et klient rakendus on küll vaikedisainiga, on see kasutajale juba esimesest kokkupuutest arusaadav.&lt;br /&gt;
Meie hinnang projektimeeskonnale ja projektile on 100/100 (boonuspunkte võiks lisada ka varase valmimistähtaja eest).&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123655</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123655"/>
		<updated>2017-06-14T18:07:15Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Andmemudel, olemid==&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
==Kasutatav tehnoloogia ja veebiteenuse olemasolu==&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
==Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus, statistika==&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Nõuetekohaselt salvestatakse statistikat kasutaja tegevuste kohta, mis kokkuvõttes on kindlasti hea nii kasutajale endale oma protsesside optimeerimiseks kui ka eelkõige rakenduse arendusmeeskonnale erinevate tegevuste optimiseerimiseks.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
==Piirangute olemasolu pöördumiste arvu osas ning nende haldust==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kasutusjuhendi olemasolu==&lt;br /&gt;
&lt;br /&gt;
==Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pealkiri 13&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Lõpptoote retsensioon meeskonnalt [https://wiki.itcollege.ee/index.php/PC_KartKicker PC KartKicker] (Broneering)=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123654</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123654"/>
		<updated>2017-06-14T18:03:19Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse ja klientrakenduse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
9. Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus&lt;br /&gt;
&lt;br /&gt;
==Andmemudel, olemid==&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
==Kasutatav tehnoloogia ja veebiteenuse olemasolu==&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
==Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus==&lt;br /&gt;
Teenus on ülesehtitatud kasutades Asp.Net enda Identity moodulit, mistõttu toetab see mitmekasutaja funktsionaalsust ja kasutajate hallatavust. Võib näha, et esialgne andmemudel oli planeeritud kasutama iseseisvat kasutajate andmemudelit ja nii on see ka teostatud. Küll aga on lisandunud seos AspNetUsers tabelile, kui kasutaja registreeritakse ja hilisemate mõningate teenuste puhul. Parendusettepanekuna, nagu eelpool mainitud, võiks selle tulevikus viia ühtse mudeli peale, oleks kokkuvõttes lihtsam koodi hallata. Kontrolleris kasutatakse teenusetarbijate autentimist, mistõttu on raskendatud juurdepääsu mitteomavate kasutajate süsteemi sisenemine. Lisaks on rakendatud ka autoriseerimist, mis omakorda piirab juurdepääsu omavatel süsteemi kasutajatel üksteise sessioonide kuulamise ja andmelekke tekkimist. Iga päringu tegemiseks kasutatakse sisselogimisel saadud tokenit, mis võimaldab eelpool toodut rakendada.&lt;br /&gt;
Küll aga leidsime ühe vea, kus kõigil kasutajatel on võimalik näha kõiki sisestatud projekte, see aga ei oleks ka ettevõttesiseselt ehk alati otstarbekas, ja tasuks kindlasti üle vaadata ning muuta  kui soovitakse rakendust ka SaaS mudeli alusel müüja.&lt;br /&gt;
&lt;br /&gt;
==Kasutusstatistika üle arve pidamist==&lt;br /&gt;
&lt;br /&gt;
==Piirangute olemasolu pöördumiste arvu osas ning nende haldust==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kasutusjuhendi olemasolu==&lt;br /&gt;
&lt;br /&gt;
==Klientrakenduse tehnoloogia, ülesehitus ja kasutusmugavus==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pealkiri 13&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Lõpptoote retsensioon meeskonnalt [https://wiki.itcollege.ee/index.php/PC_KartKicker PC KartKicker] (Broneering)=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123653</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123653"/>
		<updated>2017-06-14T17:43:48Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
==Andmemudel, olemid==&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
==Kasutatav tehnoloogia ja veebiteenuse olemasolu==&lt;br /&gt;
Projekt on ülesehitatud kasutades ASP.NET MVC Web API tehnoloogiat nii, nagu kirjas ka õppejõu poolt antud projekti nõuetes. Rakenduse ülesehitus on hajutatud, mis tähendab, et andmekihid on üksteisest eraldatud ja kogu andmevoog on hästi jälgitav ning lihtsasti muudetav. Eraldi asuvad mudelid, äriloogika kiht, teenused ning kontrollerid ja klientrakendus.&lt;br /&gt;
Kontrollerite ülesehitus on loogiline - iga ärilise funktsionaalsuse kohta on oma kontroller - eriti jääb silma ja peab siin ära märkima kommentaarid, mis aitavad selgemalt aru saada kontrolleri taustast.&lt;br /&gt;
Andmevoog liigub nagu raamatus :), kontrollerist teenusesse ja sealt edasi kasutatakse Unit of Work ja Repository mustreid, mis aitab kindlasti jõudlusele kaasa.&lt;br /&gt;
Kokkuvõtvalt on veebiteenus hästi ülesehitatud, kuid silma jäi ja välja võiks tuua ehk selle, et mitte kõik kontrollerid ei tagasta vea korral 404 veateadet. &lt;br /&gt;
&lt;br /&gt;
==Kasutajate tuvastamine, haldus, mitmekasutaja funktsionaalsus==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pealkiri 13&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Lõpptoote retsensioon meeskonnalt [https://wiki.itcollege.ee/index.php/PC_KartKicker PC KartKicker] (Broneering)=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123652</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123652"/>
		<updated>2017-06-14T17:22:00Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Retsensioon projektile DevHelpVR=&lt;br /&gt;
&lt;br /&gt;
==Sissejuhatus==&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
==Andmemudel, olemid==&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10 (esialgses analüüsidokumendis saime neid kokku 16). &lt;br /&gt;
Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
Kolmanda soovitusena võiks mainida ka seda, et tegelikult saaks edukalt ära kasutada ka Identity-ga kaasa tulevaid olemeid näiteks rollide ja kasutajate kirjeldamiseks.&lt;br /&gt;
&lt;br /&gt;
Välja võib tuua seda, et kõik olemid ja seosed on hästi läbimõeldud, kasutatud on piisavalt annotatsioone ja kõik viitetüüpi olemi atribuudid on sobivalt piiratud (eelkõige string muutujad).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tase 1 [https://wiki.itcollege.ee/index.php/PC_KartKicker Link]=&lt;br /&gt;
==Tase 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pealkiri 13&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Lõpptoote retsensioon meeskonnalt [https://wiki.itcollege.ee/index.php/PC_KartKicker PC KartKicker] (Broneering)=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123651</id>
		<title>Talk:DevHelpVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelpVR&amp;diff=123651"/>
		<updated>2017-06-14T17:12:59Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Retsensioon projektile DevHelpVR&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Sissejuhatus=&lt;br /&gt;
Retsensiooni eesmärgiks oli võrrelda püstitatud ülesannet lõpptulemusega ning analüüsida esmalt veebiteenuse poolt, kasutatud andmemudeleid, mustreid ning koodi jälgitavust ehk visuaalset poolt. Teiseks tuli analüüsida ka kliendirakendust, mis eesmärgipäraselt peaks suhtlema loodud veebiteenusega. &lt;br /&gt;
Retsensiooni käigus hindasime veebiteenuse osas vastavalt järgmiseid nüansse:&lt;br /&gt;
1. Andmebaasi olemite arv&lt;br /&gt;
2. Kastutatav tehnoloogia (WCF või ASP.NET MVC Web API)&lt;br /&gt;
3. Veebiteenuse olemasolu&lt;br /&gt;
4. Mitmekasutaja funktsionaalsuse olemasolu&lt;br /&gt;
5. Kasutajate tuvastamist ja haldamist&lt;br /&gt;
6. Kasutusstatistika üle arve pidamist&lt;br /&gt;
7. Piirangute olemasolu pöördumiste arvu osas ning nende haldust&lt;br /&gt;
8. Kasutusjuhendi olemasolu&lt;br /&gt;
&lt;br /&gt;
==Andmemudel, olemid==&lt;br /&gt;
Projekti eesmärgiks oli luua rakendus, mis aitaks arendajal oma töid paremini planeerida ja omada ülevaadet käimasolevatest ning järgmisena algavatest ülesannetest.&lt;br /&gt;
Projekti andmemudel on ilusti üles ehitatud, kuid võrreldes esialgu planeerituga esineb erinevus olemite koguarvus, samas on põhifunktsionaalsus kenasti olemas. Andmebaasi olemite arv, ilma Identity olemiteta, on 10. Analüüsi käigus ei suutnud tuvastada ühtegi suurt viga, küll aga saaksime teha mõned soovitused. Nimelt enamik olemeid, milles esineb nn algus ja lõppaeg, võiks lõppaja väli olla pigem valikuline, kuna alati ei pruugi projektil, meeskonnal või muul olemil olla teada lõppaeg selle objekti sisestamisel - ehk et see võib selguda alles peale mõningast analüüsi. Lisaks, tõenäoliselt tähelepanuta jäänud, on UserStory olemi Storypoints attribuudil annotatsioon [Required]. Seda aga tegelikult vaja pole, kuna int on väärtustüüpi muutuja ja nõuab vaikimisi väärtust.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=XML ülesannete retsensioon meeskonnalt [https://wiki.itcollege.ee/index.php/PC_KartKicker PC KartKicker]=&lt;br /&gt;
==XML fail==&lt;br /&gt;
Näidisfail valideerub ning vastab struktuuri keerukuskriteeriumitele - on vähemalt neli loogilist dimensiooni, kahel dimensioonil (iterations ja userstory) on kasutatud ID-st informatiivsemaid atribuute.&lt;br /&gt;
&lt;br /&gt;
XML fail on loogiliselt struktureeritud ja kergesti arusaadav, seda ka vaatamata kommentaaride puudumisele. Elementide ja atribuutide nimed on loogilised ja järgivad ühtset stiili.&lt;br /&gt;
Andmete paigutus atribuutidesse ja elementidesse tundub üldjoontes mõistlik, aga mina isiklikult oleks erinevates kohtades kasutatud &#039;name&#039; elemendi asemel selle info pannud atribuudiks.&lt;br /&gt;
&lt;br /&gt;
==XML schema==&lt;br /&gt;
Näidisfail vastab schema tingimustele. Andmetüübid vastavad andmete sisule ja eeldatavale kasutusele, aga nt. kuna identifikaatorid on üldjuhul positiivse väärtusega, siis võiks &#039;id&#039; andmetüüp olla integer asemel unsignedInt.&lt;br /&gt;
Üritasin erinevaid kavalaid sigadusi korraldada XML failis ja iga kord oli Visual Studio kohe jaol tänu XSD failile, seega on XSD põhjalikult koostatud. Lisaks oleks olnud hea näha kommentaarides XSD valikute seletust äriloogika vaatepunktist.&lt;br /&gt;
&lt;br /&gt;
==Transformatsioonid==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; HTML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Transformatsioonis on kasutatud mitut &#039;foreach&#039; tsüklit. Arvutusi ja tingimuste kontrolli transformatsioon ei sisalda. Transformatsiooni tulemusel tekib funktsionaalse kujundusega ja hea loetavusega HTML fail. XSLT fail valideerub. &lt;br /&gt;
Väljundiks olev HTML annab W3C validaatoris ühe vea ja kolm hoiatust:&lt;br /&gt;
&lt;br /&gt;
1. viga: Line 1, Column 1: no document type declaration; implying &amp;quot;&amp;lt;!DOCTYPE HTML SYSTEM&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. hoiatus: Unable to Determine Parse Mode!&lt;br /&gt;
&lt;br /&gt;
2. hoiatus:  No DOCTYPE found! Checking with default HTML 4.01 Transitional Document Type.&lt;br /&gt;
&lt;br /&gt;
3. hoiatus: Byte-Order Mark found in UTF-8 File.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; XML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Transformatsioonis on kasutatud parameetreid, ühte &#039;foreach&#039; tsüklit ning sisaldab mitmeid arvutusi ja boonusena ka sorteerimist. XSLT fail valideerub.&lt;br /&gt;
Väljundiks olev XML läbis W3C validaatori vigadeta.&lt;br /&gt;
&lt;br /&gt;
=Lõpptoote retsensioon meeskonnalt [https://wiki.itcollege.ee/index.php/PC_KartKicker PC KartKicker] (Broneering)=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120229</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120229"/>
		<updated>2017-04-17T16:35:19Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Veebiteenus=&lt;br /&gt;
&lt;br /&gt;
==Idee==&lt;br /&gt;
Tegemist on online talutoodete poega. Rakenduse eesmärgiks on võimaldada ühelt poolt kasutajal sooritada talutoodete tellimusi ühest või mitmest talust ning teisalt taluomanikel müüa ja hallata müügilaos olevaid tooteid ning tellimusi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tavakasutajal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Sisselogimine, et tellimust esitada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Taluomanikul ehk tootjal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rakendus==&lt;br /&gt;
Rakenduses kasutatavad tehnoloogiad:&lt;br /&gt;
* ASP.NET MVC Web API&lt;br /&gt;
* Entity Framework 6.x&lt;br /&gt;
* MSSQL&lt;br /&gt;
* JSON veebiteenused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andmemudel==&lt;br /&gt;
Vajalik andmemudel rakenduse toimimiseks:&lt;br /&gt;
[[https://my.vertabelo.com/doc/gNWPrQXbTzGUklJEDj6T2yEW3j2UfW5G Vertabelo]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
File:talupood.png|Andmebaasi skeem&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Andmemudel koosneb järgnevatest tabelitest:&lt;br /&gt;
&lt;br /&gt;
1. Talu &lt;br /&gt;
* Tabel hoiab endas andmeid tooteid müüvate talude kohta.&lt;br /&gt;
2. Talu_toode &lt;br /&gt;
* Tabel hoiab endas iga talu toodete nimekirja.&lt;br /&gt;
3. Talu_kasutaja&lt;br /&gt;
* Tabel hoiab endas seoseid talude ja kasutajate vahel.&lt;br /&gt;
* Kasutajal võib olla mitu hallatavat talu.&lt;br /&gt;
* Ühel talul on üks kasutaja.&lt;br /&gt;
4. Kasutaja&lt;br /&gt;
* Tabel hoiab endas erinevate kasutajate andmeid.&lt;br /&gt;
5. Toode&lt;br /&gt;
* Tabel hoiab endas erinevate unikaalsete toodete nimekirja.&lt;br /&gt;
6. Tellimus_kasutaja&lt;br /&gt;
* Tabel hoiab endas tellimuse teinud kasutaja andmeid juhul, kui tellimust ei esitanud anonüümne kasutaja (sisselogimata kasutaja).&lt;br /&gt;
7. Tellimus&lt;br /&gt;
* Tabel hoiab endas tellimuste nimekirja ning ajalugu.&lt;br /&gt;
8. Tellimus_toode&lt;br /&gt;
* Tabel hoiab endas konkreetse tellimusega seotud toote andmeid.&lt;br /&gt;
&lt;br /&gt;
==Funktsionaalsus==&lt;br /&gt;
&lt;br /&gt;
===Põhifunktsionaalsus===&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
* Sisselogimine, ülal mainitud tegevuste sooritamiseks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lisafunktsionaalsus===&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Tellimuse vormistamine külalisena&lt;br /&gt;
* Tegevuste logimine&lt;br /&gt;
* Kasutusstatistika&lt;br /&gt;
&lt;br /&gt;
===Kasutajalood===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Registreeritud ja registreerimata ostjad=====&lt;br /&gt;
&lt;br /&gt;
Toodete sirvimine:&lt;br /&gt;
*Kasutajal on võimalik tooteid otsida talude ja toodete järgi.&lt;br /&gt;
*Neis vaadetes ei kuvata tooteid, millel laoseis puudub.&lt;br /&gt;
*Nimekiri kuvatakse galeriina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete ostukorvi lisamine:&lt;br /&gt;
*Toodete ostukorvi lisamiseks peab kasutaja olema toodete nimekirja lehelt toote valima. &lt;br /&gt;
*Kasutajal on võimalus osta ka mitu sama tüüpi toodet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ostukorvi haldamine:&lt;br /&gt;
*Ostukorvis kuvatakse varem ostukorvi lisatud tooted ja valitud kogused.&lt;br /&gt;
*Koguseid saab vajadusel suurendada/vähendada või toodet ostukorvist eemaldada.&lt;br /&gt;
*Ostukorvi tellimuse vormistamiseks, peab klient ostukorvi sisu kinnitama.&lt;br /&gt;
*Selle tulemusel koostatakse tellimused taludele.&lt;br /&gt;
*Ostukorvi on võimalik puhastada, vajutades &amp;quot;Tühjenda&amp;quot; nuppu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Müüjad (talupidajad)=====&lt;br /&gt;
&lt;br /&gt;
Talude haldamine:&lt;br /&gt;
*Talusid on võimalik lisada ja muuta.&lt;br /&gt;
*Andmete sisestamise järgselt toimub andmete valideerimine ja selle õnnestumise korral andmed salvestatakse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete haldamine:&lt;br /&gt;
*Tooteid saab lisada.&lt;br /&gt;
*Igale tootele saab määrata sobivad ühikud ja muud parameetrid.&lt;br /&gt;
*Tooteandmete salvestamisel valideeritakse andmed ning selle õnnestumisel andmed salvestatakse.&lt;br /&gt;
*Toote laoseisu muutmiseks tuleb avada vastava toote leht ning uuendada kogust ja tegevus salvestada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tellimuste haldamine:&lt;br /&gt;
*Tellimuste haldamiseks tuleb avada &amp;quot;Tellimused&amp;quot; lehekülg.&lt;br /&gt;
*Tellimuste nimekirjas kuvatakse tellimused koos andmetega.&lt;br /&gt;
*Tellimuste vaatamiseks tuleb konkreetne tellimus avada.&lt;br /&gt;
*Tellimuse lehel kuvatakse tellimusega seotud toodete andmed ning tellija andmed.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120228</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120228"/>
		<updated>2017-04-17T16:32:24Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Andmemudel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenus=&lt;br /&gt;
&lt;br /&gt;
==Idee==&lt;br /&gt;
Tegemist on online talutoodete poega. Rakenduse eesmärgiks on võimaldada ühelt poolt kasutajal sooritada talutoodete tellimusi ühest või mitmest talust ning teisalt taluomanikel müüa ja hallata müügilaos olevaid tooteid ning tellimusi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tavakasutajal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Sisselogimine, et tellimust esitada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Taluomanikul ehk tootjal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rakendus==&lt;br /&gt;
Rakenduses kasutatavad tehnoloogiad:&lt;br /&gt;
* ASP.NET MVC Web API&lt;br /&gt;
* Entity Framework 6.x&lt;br /&gt;
* MSSQL&lt;br /&gt;
* JSON veebiteenused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andmemudel==&lt;br /&gt;
Vajalik andmemudel rakenduse toimimiseks:&lt;br /&gt;
[[https://my.vertabelo.com/doc/gNWPrQXbTzGUklJEDj6T2yEW3j2UfW5G Vertabelo]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=&amp;quot;350&amp;quot;&amp;gt;&lt;br /&gt;
File:talupood.png|Andmebaasi skeem&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Andmemudel koosneb järgnevatest tabelitest:&lt;br /&gt;
&lt;br /&gt;
1. Talu &lt;br /&gt;
* Tabel hoiab endas andmeid tooteid müüvate talude kohta.&lt;br /&gt;
2. Talu_toode &lt;br /&gt;
* Tabel hoiab endas iga talu toodete nimekirja.&lt;br /&gt;
3. Talu_kasutaja&lt;br /&gt;
* Tabel hoiab endas seoseid talude ja kasutajate vahel.&lt;br /&gt;
* Kasutajal võib olla mitu hallatavat talu.&lt;br /&gt;
* Ühel talul on üks kasutaja.&lt;br /&gt;
4. Kasutaja&lt;br /&gt;
* Tabel hoiab endas erinevate kasutajate andmeid.&lt;br /&gt;
5. Toode&lt;br /&gt;
* Tabel hoiab endas erinevate unikaalsete toodete nimekirja.&lt;br /&gt;
6. Tellimus_kasutaja&lt;br /&gt;
* Tabel hoiab endas tellimuse teinud kasutaja andmeid juhul, kui tellimust ei esitanud anonüümne kasutaja (sisselogimata kasutaja).&lt;br /&gt;
7. Tellimus&lt;br /&gt;
* Tabel hoiab endas tellimuste nimekirja ning ajalugu.&lt;br /&gt;
8. Tellimus_toode&lt;br /&gt;
* Tabel hoiab endas konkreetse tellimusega seotud toote andmeid.&lt;br /&gt;
&lt;br /&gt;
==Funktsionaalsus==&lt;br /&gt;
&lt;br /&gt;
===Põhifunktsionaalsus===&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
* Sisselogimine, ülal mainitud tegevuste sooritamiseks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lisafunktsionaalsus===&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Tellimuse vormistamine külalisena&lt;br /&gt;
* Tegevuste logimine&lt;br /&gt;
* Kasutusstatistika&lt;br /&gt;
&lt;br /&gt;
===Kasutajalood===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Registreeritud ja registreerimata ostjad=====&lt;br /&gt;
&lt;br /&gt;
Toodete sirvimine:&lt;br /&gt;
*Kasutajal on võimalik tooteid otsida talude ja toodete järgi.&lt;br /&gt;
*Neis vaadetes ei kuvata tooteid, millel laoseis puudub.&lt;br /&gt;
*Nimekiri kuvatakse galeriina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete ostukorvi lisamine:&lt;br /&gt;
*Toodete ostukorvi lisamiseks peab kasutaja olema toodete nimekirja lehelt toote valima. &lt;br /&gt;
*Kasutajal on võimalus osta ka mitu sama tüüpi toodet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ostukorvi haldamine:&lt;br /&gt;
*Ostukorvis kuvatakse varem ostukorvi lisatud tooted ja valitud kogused.&lt;br /&gt;
*Koguseid saab vajadusel suurendada/vähendada või toodet ostukorvist eemaldada.&lt;br /&gt;
*Ostukorvi tellimuse vormistamiseks, peab klient ostukorvi sisu kinnitama.&lt;br /&gt;
*Selle tulemusel koostatakse tellimused taludele.&lt;br /&gt;
*Ostukorvi on võimalik puhastada, vajutades &amp;quot;Tühjenda&amp;quot; nuppu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Müüjad (talupidajad)=====&lt;br /&gt;
&lt;br /&gt;
Talude haldamine:&lt;br /&gt;
*Talusid on võimalik lisada ja muuta.&lt;br /&gt;
*Andmete sisestamise järgselt toimub andmete valideerimine ja selle õnnestumise korral andmed salvestatakse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete haldamine:&lt;br /&gt;
*Tooteid saab lisada.&lt;br /&gt;
*Igale tootele saab määrata sobivad ühikud ja muud parameetrid.&lt;br /&gt;
*Tooteandmete salvestamisel valideeritakse andmed ning selle õnnestumisel andmed salvestatakse.&lt;br /&gt;
*Toote laoseisu muutmiseks tuleb avada vastava toote leht ning uuendada kogust ja tegevus salvestada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tellimuste haldamine:&lt;br /&gt;
*Tellimuste haldamiseks tuleb avada &amp;quot;Tellimused&amp;quot; lehekülg.&lt;br /&gt;
*Tellimuste nimekirjas kuvatakse tellimused koos andmetega.&lt;br /&gt;
*Tellimuste vaatamiseks tuleb konkreetne tellimus avada.&lt;br /&gt;
*Tellimuse lehel kuvatakse tellimusega seotud toodete andmed ning tellija andmed.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120227</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120227"/>
		<updated>2017-04-17T16:32:06Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Andmemudel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenus=&lt;br /&gt;
&lt;br /&gt;
==Idee==&lt;br /&gt;
Tegemist on online talutoodete poega. Rakenduse eesmärgiks on võimaldada ühelt poolt kasutajal sooritada talutoodete tellimusi ühest või mitmest talust ning teisalt taluomanikel müüa ja hallata müügilaos olevaid tooteid ning tellimusi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tavakasutajal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Sisselogimine, et tellimust esitada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Taluomanikul ehk tootjal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rakendus==&lt;br /&gt;
Rakenduses kasutatavad tehnoloogiad:&lt;br /&gt;
* ASP.NET MVC Web API&lt;br /&gt;
* Entity Framework 6.x&lt;br /&gt;
* MSSQL&lt;br /&gt;
* JSON veebiteenused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andmemudel==&lt;br /&gt;
Vajalik andmemudel rakenduse toimimiseks:&lt;br /&gt;
[[https://my.vertabelo.com/doc/gNWPrQXbTzGUklJEDj6T2yEW3j2UfW5G Vertabelo]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:talupood.png|Andmebaasi skeem&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Andmemudel koosneb järgnevatest tabelitest:&lt;br /&gt;
&lt;br /&gt;
1. Talu &lt;br /&gt;
* Tabel hoiab endas andmeid tooteid müüvate talude kohta.&lt;br /&gt;
2. Talu_toode &lt;br /&gt;
* Tabel hoiab endas iga talu toodete nimekirja.&lt;br /&gt;
3. Talu_kasutaja&lt;br /&gt;
* Tabel hoiab endas seoseid talude ja kasutajate vahel.&lt;br /&gt;
* Kasutajal võib olla mitu hallatavat talu.&lt;br /&gt;
* Ühel talul on üks kasutaja.&lt;br /&gt;
4. Kasutaja&lt;br /&gt;
* Tabel hoiab endas erinevate kasutajate andmeid.&lt;br /&gt;
5. Toode&lt;br /&gt;
* Tabel hoiab endas erinevate unikaalsete toodete nimekirja.&lt;br /&gt;
6. Tellimus_kasutaja&lt;br /&gt;
* Tabel hoiab endas tellimuse teinud kasutaja andmeid juhul, kui tellimust ei esitanud anonüümne kasutaja (sisselogimata kasutaja).&lt;br /&gt;
7. Tellimus&lt;br /&gt;
* Tabel hoiab endas tellimuste nimekirja ning ajalugu.&lt;br /&gt;
8. Tellimus_toode&lt;br /&gt;
* Tabel hoiab endas konkreetse tellimusega seotud toote andmeid.&lt;br /&gt;
&lt;br /&gt;
==Funktsionaalsus==&lt;br /&gt;
&lt;br /&gt;
===Põhifunktsionaalsus===&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
* Sisselogimine, ülal mainitud tegevuste sooritamiseks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lisafunktsionaalsus===&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Tellimuse vormistamine külalisena&lt;br /&gt;
* Tegevuste logimine&lt;br /&gt;
* Kasutusstatistika&lt;br /&gt;
&lt;br /&gt;
===Kasutajalood===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Registreeritud ja registreerimata ostjad=====&lt;br /&gt;
&lt;br /&gt;
Toodete sirvimine:&lt;br /&gt;
*Kasutajal on võimalik tooteid otsida talude ja toodete järgi.&lt;br /&gt;
*Neis vaadetes ei kuvata tooteid, millel laoseis puudub.&lt;br /&gt;
*Nimekiri kuvatakse galeriina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete ostukorvi lisamine:&lt;br /&gt;
*Toodete ostukorvi lisamiseks peab kasutaja olema toodete nimekirja lehelt toote valima. &lt;br /&gt;
*Kasutajal on võimalus osta ka mitu sama tüüpi toodet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ostukorvi haldamine:&lt;br /&gt;
*Ostukorvis kuvatakse varem ostukorvi lisatud tooted ja valitud kogused.&lt;br /&gt;
*Koguseid saab vajadusel suurendada/vähendada või toodet ostukorvist eemaldada.&lt;br /&gt;
*Ostukorvi tellimuse vormistamiseks, peab klient ostukorvi sisu kinnitama.&lt;br /&gt;
*Selle tulemusel koostatakse tellimused taludele.&lt;br /&gt;
*Ostukorvi on võimalik puhastada, vajutades &amp;quot;Tühjenda&amp;quot; nuppu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Müüjad (talupidajad)=====&lt;br /&gt;
&lt;br /&gt;
Talude haldamine:&lt;br /&gt;
*Talusid on võimalik lisada ja muuta.&lt;br /&gt;
*Andmete sisestamise järgselt toimub andmete valideerimine ja selle õnnestumise korral andmed salvestatakse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete haldamine:&lt;br /&gt;
*Tooteid saab lisada.&lt;br /&gt;
*Igale tootele saab määrata sobivad ühikud ja muud parameetrid.&lt;br /&gt;
*Tooteandmete salvestamisel valideeritakse andmed ning selle õnnestumisel andmed salvestatakse.&lt;br /&gt;
*Toote laoseisu muutmiseks tuleb avada vastava toote leht ning uuendada kogust ja tegevus salvestada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tellimuste haldamine:&lt;br /&gt;
*Tellimuste haldamiseks tuleb avada &amp;quot;Tellimused&amp;quot; lehekülg.&lt;br /&gt;
*Tellimuste nimekirjas kuvatakse tellimused koos andmetega.&lt;br /&gt;
*Tellimuste vaatamiseks tuleb konkreetne tellimus avada.&lt;br /&gt;
*Tellimuse lehel kuvatakse tellimusega seotud toodete andmed ning tellija andmed.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=File:Talupood.png&amp;diff=120226</id>
		<title>File:Talupood.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=File:Talupood.png&amp;diff=120226"/>
		<updated>2017-04-17T16:31:29Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120225</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120225"/>
		<updated>2017-04-17T16:30:56Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Andmemudel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenus=&lt;br /&gt;
&lt;br /&gt;
==Idee==&lt;br /&gt;
Tegemist on online talutoodete poega. Rakenduse eesmärgiks on võimaldada ühelt poolt kasutajal sooritada talutoodete tellimusi ühest või mitmest talust ning teisalt taluomanikel müüa ja hallata müügilaos olevaid tooteid ning tellimusi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tavakasutajal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Sisselogimine, et tellimust esitada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Taluomanikul ehk tootjal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rakendus==&lt;br /&gt;
Rakenduses kasutatavad tehnoloogiad:&lt;br /&gt;
* ASP.NET MVC Web API&lt;br /&gt;
* Entity Framework 6.x&lt;br /&gt;
* MSSQL&lt;br /&gt;
* JSON veebiteenused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andmemudel==&lt;br /&gt;
Vajalik andmemudel rakenduse toimimiseks:&lt;br /&gt;
[[https://my.vertabelo.com/doc/gNWPrQXbTzGUklJEDj6T2yEW3j2UfW5G Vertabelo]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:Agraardb.png|Andmebaasi skeem&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Andmemudel koosneb järgnevatest tabelitest:&lt;br /&gt;
&lt;br /&gt;
1. Talu &lt;br /&gt;
* Tabel hoiab endas andmeid tooteid müüvate talude kohta.&lt;br /&gt;
2. Talu_toode &lt;br /&gt;
* Tabel hoiab endas iga talu toodete nimekirja.&lt;br /&gt;
3. Talu_kasutaja&lt;br /&gt;
* Tabel hoiab endas seoseid talude ja kasutajate vahel.&lt;br /&gt;
* Kasutajal võib olla mitu hallatavat talu.&lt;br /&gt;
* Ühel talul on üks kasutaja.&lt;br /&gt;
4. Kasutaja&lt;br /&gt;
* Tabel hoiab endas erinevate kasutajate andmeid.&lt;br /&gt;
5. Toode&lt;br /&gt;
* Tabel hoiab endas erinevate unikaalsete toodete nimekirja.&lt;br /&gt;
6. Tellimus_kasutaja&lt;br /&gt;
* Tabel hoiab endas tellimuse teinud kasutaja andmeid juhul, kui tellimust ei esitanud anonüümne kasutaja (sisselogimata kasutaja).&lt;br /&gt;
7. Tellimus&lt;br /&gt;
* Tabel hoiab endas tellimuste nimekirja ning ajalugu.&lt;br /&gt;
8. Tellimus_toode&lt;br /&gt;
* Tabel hoiab endas konkreetse tellimusega seotud toote andmeid.&lt;br /&gt;
&lt;br /&gt;
==Funktsionaalsus==&lt;br /&gt;
&lt;br /&gt;
===Põhifunktsionaalsus===&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
* Sisselogimine, ülal mainitud tegevuste sooritamiseks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lisafunktsionaalsus===&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Tellimuse vormistamine külalisena&lt;br /&gt;
* Tegevuste logimine&lt;br /&gt;
* Kasutusstatistika&lt;br /&gt;
&lt;br /&gt;
===Kasutajalood===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Registreeritud ja registreerimata ostjad=====&lt;br /&gt;
&lt;br /&gt;
Toodete sirvimine:&lt;br /&gt;
*Kasutajal on võimalik tooteid otsida talude ja toodete järgi.&lt;br /&gt;
*Neis vaadetes ei kuvata tooteid, millel laoseis puudub.&lt;br /&gt;
*Nimekiri kuvatakse galeriina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete ostukorvi lisamine:&lt;br /&gt;
*Toodete ostukorvi lisamiseks peab kasutaja olema toodete nimekirja lehelt toote valima. &lt;br /&gt;
*Kasutajal on võimalus osta ka mitu sama tüüpi toodet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ostukorvi haldamine:&lt;br /&gt;
*Ostukorvis kuvatakse varem ostukorvi lisatud tooted ja valitud kogused.&lt;br /&gt;
*Koguseid saab vajadusel suurendada/vähendada või toodet ostukorvist eemaldada.&lt;br /&gt;
*Ostukorvi tellimuse vormistamiseks, peab klient ostukorvi sisu kinnitama.&lt;br /&gt;
*Selle tulemusel koostatakse tellimused taludele.&lt;br /&gt;
*Ostukorvi on võimalik puhastada, vajutades &amp;quot;Tühjenda&amp;quot; nuppu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Müüjad (talupidajad)=====&lt;br /&gt;
&lt;br /&gt;
Talude haldamine:&lt;br /&gt;
*Talusid on võimalik lisada ja muuta.&lt;br /&gt;
*Andmete sisestamise järgselt toimub andmete valideerimine ja selle õnnestumise korral andmed salvestatakse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete haldamine:&lt;br /&gt;
*Tooteid saab lisada.&lt;br /&gt;
*Igale tootele saab määrata sobivad ühikud ja muud parameetrid.&lt;br /&gt;
*Tooteandmete salvestamisel valideeritakse andmed ning selle õnnestumisel andmed salvestatakse.&lt;br /&gt;
*Toote laoseisu muutmiseks tuleb avada vastava toote leht ning uuendada kogust ja tegevus salvestada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tellimuste haldamine:&lt;br /&gt;
*Tellimuste haldamiseks tuleb avada &amp;quot;Tellimused&amp;quot; lehekülg.&lt;br /&gt;
*Tellimuste nimekirjas kuvatakse tellimused koos andmetega.&lt;br /&gt;
*Tellimuste vaatamiseks tuleb konkreetne tellimus avada.&lt;br /&gt;
*Tellimuse lehel kuvatakse tellimusega seotud toodete andmed ning tellija andmed.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120224</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120224"/>
		<updated>2017-04-17T16:20:40Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Lisafunktsionaalsus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenus=&lt;br /&gt;
&lt;br /&gt;
==Idee==&lt;br /&gt;
Tegemist on online talutoodete poega. Rakenduse eesmärgiks on võimaldada ühelt poolt kasutajal sooritada talutoodete tellimusi ühest või mitmest talust ning teisalt taluomanikel müüa ja hallata müügilaos olevaid tooteid ning tellimusi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tavakasutajal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Sisselogimine, et tellimust esitada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Taluomanikul ehk tootjal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rakendus==&lt;br /&gt;
Rakenduses kasutatavad tehnoloogiad:&lt;br /&gt;
* ASP.NET MVC Web API&lt;br /&gt;
* Entity Framework 6.x&lt;br /&gt;
* MSSQL&lt;br /&gt;
* JSON veebiteenused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andmemudel==&lt;br /&gt;
Vajalik andmemudel rakenduse toimimiseks:&lt;br /&gt;
[[https://my.vertabelo.com/doc/gNWPrQXbTzGUklJEDj6T2yEW3j2UfW5G Vertabelo]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:Agraardb.png|Andmebaasi skeem&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Andmemudel koosneb järgnevatest tabelitest:&lt;br /&gt;
&lt;br /&gt;
1. Talu &lt;br /&gt;
* Tabel hoiab endas andmeid tooteid müüvate talude kohta.&lt;br /&gt;
2. Talu_toode &lt;br /&gt;
* Tabel hoiab endas iga talu toodete nimekirja.&lt;br /&gt;
3. Talu_kasutaja&lt;br /&gt;
* Tabel hoiab endas seoseid talude ja kasutajate vahel.&lt;br /&gt;
* Kasutajal võib olla mitu hallatavat talu.&lt;br /&gt;
* Ühel talul on üks kasutaja.&lt;br /&gt;
4. Kasutaja&lt;br /&gt;
* Tabel hoiab endas erinevate kasutajate andmeid.&lt;br /&gt;
5. Toode&lt;br /&gt;
* Tabel hoiab endas erinevate unikaalsete toodete nimekirja.&lt;br /&gt;
6. Tellimus_kasutaja&lt;br /&gt;
* Tabel hoiab endas tellimuse teinud kasutaja andmeid juhul, kui tellimust ei esitanud anonüümne kasutaja (sisselogimata kasutaja).&lt;br /&gt;
7. Tellimus&lt;br /&gt;
* Tabel hoiab endas tellimuste nimekirja ning ajalugu.&lt;br /&gt;
8. Tellimus_toode&lt;br /&gt;
* Tabel hoiab endas konkreetse tellimusega seotud toote andmeid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktsionaalsus==&lt;br /&gt;
&lt;br /&gt;
===Põhifunktsionaalsus===&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
* Sisselogimine, ülal mainitud tegevuste sooritamiseks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lisafunktsionaalsus===&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Tellimuse vormistamine külalisena&lt;br /&gt;
* Tegevuste logimine&lt;br /&gt;
* Kasutusstatistika&lt;br /&gt;
&lt;br /&gt;
===Kasutajalood===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Registreeritud ja registreerimata ostjad=====&lt;br /&gt;
&lt;br /&gt;
Toodete sirvimine:&lt;br /&gt;
*Kasutajal on võimalik tooteid otsida talude ja toodete järgi.&lt;br /&gt;
*Neis vaadetes ei kuvata tooteid, millel laoseis puudub.&lt;br /&gt;
*Nimekiri kuvatakse galeriina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete ostukorvi lisamine:&lt;br /&gt;
*Toodete ostukorvi lisamiseks peab kasutaja olema toodete nimekirja lehelt toote valima. &lt;br /&gt;
*Kasutajal on võimalus osta ka mitu sama tüüpi toodet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ostukorvi haldamine:&lt;br /&gt;
*Ostukorvis kuvatakse varem ostukorvi lisatud tooted ja valitud kogused.&lt;br /&gt;
*Koguseid saab vajadusel suurendada/vähendada või toodet ostukorvist eemaldada.&lt;br /&gt;
*Ostukorvi tellimuse vormistamiseks, peab klient ostukorvi sisu kinnitama.&lt;br /&gt;
*Selle tulemusel koostatakse tellimused taludele.&lt;br /&gt;
*Ostukorvi on võimalik puhastada, vajutades &amp;quot;Tühjenda&amp;quot; nuppu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Müüjad (talupidajad)=====&lt;br /&gt;
&lt;br /&gt;
Talude haldamine:&lt;br /&gt;
*Talusid on võimalik lisada ja muuta.&lt;br /&gt;
*Andmete sisestamise järgselt toimub andmete valideerimine ja selle õnnestumise korral andmed salvestatakse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete haldamine:&lt;br /&gt;
*Tooteid saab lisada.&lt;br /&gt;
*Igale tootele saab määrata sobivad ühikud ja muud parameetrid.&lt;br /&gt;
*Tooteandmete salvestamisel valideeritakse andmed ning selle õnnestumisel andmed salvestatakse.&lt;br /&gt;
*Toote laoseisu muutmiseks tuleb avada vastava toote leht ning uuendada kogust ja tegevus salvestada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tellimuste haldamine:&lt;br /&gt;
*Tellimuste haldamiseks tuleb avada &amp;quot;Tellimused&amp;quot; lehekülg.&lt;br /&gt;
*Tellimuste nimekirjas kuvatakse tellimused koos andmetega.&lt;br /&gt;
*Tellimuste vaatamiseks tuleb konkreetne tellimus avada.&lt;br /&gt;
*Tellimuse lehel kuvatakse tellimusega seotud toodete andmed ning tellija andmed.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120223</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120223"/>
		<updated>2017-04-17T16:17:59Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Veebiteenus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenus=&lt;br /&gt;
&lt;br /&gt;
==Idee==&lt;br /&gt;
Tegemist on online talutoodete poega. Rakenduse eesmärgiks on võimaldada ühelt poolt kasutajal sooritada talutoodete tellimusi ühest või mitmest talust ning teisalt taluomanikel müüa ja hallata müügilaos olevaid tooteid ning tellimusi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tavakasutajal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Sisselogimine, et tellimust esitada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Taluomanikul ehk tootjal on võimalus teostada järgnevaid tegevusi:&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Rakendus==&lt;br /&gt;
Rakenduses kasutatavad tehnoloogiad:&lt;br /&gt;
* ASP.NET MVC Web API&lt;br /&gt;
* Entity Framework 6.x&lt;br /&gt;
* MSSQL&lt;br /&gt;
* JSON veebiteenused&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Andmemudel==&lt;br /&gt;
Vajalik andmemudel rakenduse toimimiseks:&lt;br /&gt;
[[https://my.vertabelo.com/doc/gNWPrQXbTzGUklJEDj6T2yEW3j2UfW5G Vertabelo]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:Agraardb.png|Andmebaasi skeem&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Andmemudel koosneb järgnevatest tabelitest:&lt;br /&gt;
&lt;br /&gt;
1. Talu &lt;br /&gt;
* Tabel hoiab endas andmeid tooteid müüvate talude kohta.&lt;br /&gt;
2. Talu_toode &lt;br /&gt;
* Tabel hoiab endas iga talu toodete nimekirja.&lt;br /&gt;
3. Talu_kasutaja&lt;br /&gt;
* Tabel hoiab endas seoseid talude ja kasutajate vahel.&lt;br /&gt;
* Kasutajal võib olla mitu hallatavat talu.&lt;br /&gt;
* Ühel talul on üks kasutaja.&lt;br /&gt;
4. Kasutaja&lt;br /&gt;
* Tabel hoiab endas erinevate kasutajate andmeid.&lt;br /&gt;
5. Toode&lt;br /&gt;
* Tabel hoiab endas erinevate unikaalsete toodete nimekirja.&lt;br /&gt;
6. Tellimus_kasutaja&lt;br /&gt;
* Tabel hoiab endas tellimuse teinud kasutaja andmeid juhul, kui tellimust ei esitanud anonüümne kasutaja (sisselogimata kasutaja).&lt;br /&gt;
7. Tellimus&lt;br /&gt;
* Tabel hoiab endas tellimuste nimekirja ning ajalugu.&lt;br /&gt;
8. Tellimus_toode&lt;br /&gt;
* Tabel hoiab endas konkreetse tellimusega seotud toote andmeid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktsionaalsus==&lt;br /&gt;
&lt;br /&gt;
===Põhifunktsionaalsus===&lt;br /&gt;
* Toodete nimekirja sirvimine tootest lähtuvalt&lt;br /&gt;
* Toodete nimekirja sirvimine talust lähtuvalt&lt;br /&gt;
* Ostukorvi koostamine erinevate toodete lisamise teel&lt;br /&gt;
* Ostukorvi vaatamine ja muutmine&lt;br /&gt;
* Ostukorvi tellimuseks muutmine&lt;br /&gt;
* Toodete lisamine&lt;br /&gt;
* Toodete koguste haldamine&lt;br /&gt;
* Tellimuste vaatamine&lt;br /&gt;
* Talude haldamine&lt;br /&gt;
* Sisselogimine, ülal mainitud tegevuste sooritamiseks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lisafunktsionaalsus===&lt;br /&gt;
* Kasutajakonto loomine&lt;br /&gt;
* Sisselogimine kliendina&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Kasutajalood===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Registreeritud ja registreerimata ostjad=====&lt;br /&gt;
&lt;br /&gt;
Toodete sirvimine:&lt;br /&gt;
*Kasutajal on võimalik tooteid otsida talude ja toodete järgi.&lt;br /&gt;
*Neis vaadetes ei kuvata tooteid, millel laoseis puudub.&lt;br /&gt;
*Nimekiri kuvatakse galeriina.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete ostukorvi lisamine:&lt;br /&gt;
*Toodete ostukorvi lisamiseks peab kasutaja olema toodete nimekirja lehelt toote valima. &lt;br /&gt;
*Kasutajal on võimalus osta ka mitu sama tüüpi toodet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ostukorvi haldamine:&lt;br /&gt;
*Ostukorvis kuvatakse varem ostukorvi lisatud tooted ja valitud kogused.&lt;br /&gt;
*Koguseid saab vajadusel suurendada/vähendada või toodet ostukorvist eemaldada.&lt;br /&gt;
*Ostukorvi tellimuse vormistamiseks, peab klient ostukorvi sisu kinnitama.&lt;br /&gt;
*Selle tulemusel koostatakse tellimused taludele.&lt;br /&gt;
*Ostukorvi on võimalik puhastada, vajutades &amp;quot;Tühjenda&amp;quot; nuppu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Müüjad (talupidajad)=====&lt;br /&gt;
&lt;br /&gt;
Talude haldamine:&lt;br /&gt;
*Talusid on võimalik lisada ja muuta.&lt;br /&gt;
*Andmete sisestamise järgselt toimub andmete valideerimine ja selle õnnestumise korral andmed salvestatakse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Toodete haldamine:&lt;br /&gt;
*Tooteid saab lisada.&lt;br /&gt;
*Igale tootele saab määrata sobivad ühikud ja muud parameetrid.&lt;br /&gt;
*Tooteandmete salvestamisel valideeritakse andmed ning selle õnnestumisel andmed salvestatakse.&lt;br /&gt;
*Toote laoseisu muutmiseks tuleb avada vastava toote leht ning uuendada kogust ja tegevus salvestada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tellimuste haldamine:&lt;br /&gt;
*Tellimuste haldamiseks tuleb avada &amp;quot;Tellimused&amp;quot; lehekülg.&lt;br /&gt;
*Tellimuste nimekirjas kuvatakse tellimused koos andmetega.&lt;br /&gt;
*Tellimuste vaatamiseks tuleb konkreetne tellimus avada.&lt;br /&gt;
*Tellimuse lehel kuvatakse tellimusega seotud toodete andmed ning tellija andmed.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120222</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=120222"/>
		<updated>2017-04-17T15:46:57Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenus=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017&amp;diff=119894</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017&amp;diff=119894"/>
		<updated>2017-04-06T17:58:07Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Kaugõpe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2017=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*SOAP veebiteenuse puhul eeldatakse WCF tehnoloogia kasutamist. Vanema põlvkonna ASP.NET veebiteenuse loomine ei ole lubatud, kuna seda ei toeta ka Microsoft enam tänasel päeval.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendused (soovitavalt vähemalt kaks)endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
Ühte projektimeeskonda kuulub 3..4 tudengit ning ühel teemal teostab projekti üks või mitu meeskonda. 1,2 ja viie liikmelised meeskonnad tuleks õppejõuga eraldi kooskõlastada.&lt;br /&gt;
&lt;br /&gt;
Töö käiku kajastatakse  http://wiki.itcollege.ee keskkonnas. Wikilehe täitmise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;20. märts 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;27. märts 2017&#039;&#039;&#039;.&lt;br /&gt;
** &#039;&#039;&#039;Meeskonnad on loonud omale enda wiki lehe, kuhu kirjeldavad meeskonna ja panevad nad üles oma tööd. Lisaks hakkavad kogunema ka sinna teiste gruppide poolt kirjutatavad retsensioonid. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;17.aprill 2017&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;08. juuni 2017&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--** Veebiteenus tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;08. juuni 2017&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--** Klientrakendused tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne&#039;&#039;&#039;&lt;br /&gt;
** Meeskonnatöö kokkuvõttev aruanne peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 8.mai 2011&lt;br /&gt;
** Arvamused Meeskonnatöö kokkuvõtva aruande ja esitluse kohta tuleb esitada hiljemalt päev enne eksamit&lt;br /&gt;
** &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne ja töö lõplik tulemus&#039;&#039;&#039; tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
Maksimumtulemuse saavutamiseks peab projekt olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub  arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/6):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilrakendused &lt;br /&gt;
* AngularJS klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning minimaalselt kaks sobivat XSL transformatsiooni faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. Transformatsioonid peavad sisaldama midagi enamat, kui ainult üks for-each klausel. Transformatsiooni käigus peaks kasutama vajadusel parameetreid ning kindlasti ka erinevaid tingimuste kontrolle.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
Käesoleva ülesande käigus peab looma meeskonna ning selle wiki lehekülje&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
Klientrakendus mõnele olemasolevale veebiteenusele, võib olla teostatud veebirakendusena, Silverlight, WPF või vormirakendusena.&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
Retsensioon on üliõpilase iseseisva teadustöö kriitilise analüüsi põhjal koostatud argumenteeritud hinnang. Retsensioonis tuleb hinnata töö vastavust esitatud tingimustele, programmikoodi loetavust ning kommenteeritust, dokumentatsiooni ja kirjeldada puudusi. Retsensioonide põhjal on meeskondadel õigus oma projekte parandada enne määratud esitamistähtaja kättejõudmist.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
=Teemad 2017 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
===Nimede pakkumise teenus===&lt;br /&gt;
Mõte selles, et luua nimede baas, mille abil pakkuda rakenduse loojale sobiva algusega nimesid. Reaalne rakendus: &#039;&#039;autocompleter&#039;&#039; tarvis teenuse pakkumine&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2017=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===Meeskond: QView===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Semjon Greef&lt;br /&gt;
* Martin Nigul&lt;br /&gt;
* Martin Nõukas&lt;br /&gt;
* Margus Muru&lt;br /&gt;
* Lisandra Noor&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: QView]]&lt;br /&gt;
&lt;br /&gt;
Retsentsioon meeskonnale: [https://wiki.itcollege.ee/index.php/User_talk:Meeskond:_VeebiGurmaanid#M.C3.A4rkused: VeebiGurmaanid]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Redundant Rappers===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kliss&lt;br /&gt;
*Kertu Nurmberg&lt;br /&gt;
*Anneli Asser&lt;br /&gt;
*Mart-Erki Nõumees&lt;br /&gt;
&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: Redundant Rappers]]&lt;br /&gt;
&lt;br /&gt;
Meeskonna XML/XSD/XSLT : [https://wiki.itcollege.ee/index.php/Meeskond:_Redundant_Rappers#XML_.2F_XSD_.2F_XSLT]&lt;br /&gt;
&lt;br /&gt;
Meeskonna retsensioon meeskonnale Sense Of Direction: [https://wiki.itcollege.ee/index.php/Talk:Sense_Of_Direction]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Sense Of Direction===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Ilja Andrejev&lt;br /&gt;
*Aleksandr Babõkin&lt;br /&gt;
*Vladislav Lahtarin&lt;br /&gt;
*Vladislav Kovaltšuk&lt;br /&gt;
Meeskonna koduleht: [[Sense Of Direction]]&amp;lt;br&amp;gt;&lt;br /&gt;
XML/XSD/XSLT osa asub [https://wiki.itcollege.ee/index.php/Sense_Of_Direction#XML siin]&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon XML-failide kohta meeskonnale &amp;quot;Poly&amp;quot; [https://wiki.itcollege.ee/index.php/Sense_Of_Direction#Retsensioon_XML-failide_kohta_meeskonnale_.22Poly.22 siin]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RK Meeskond: RK]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Raido Kivinurm&lt;br /&gt;
&lt;br /&gt;
Esimene osa: [https://wiki.itcollege.ee/index.php/RK#XML XML] / [https://wiki.itcollege.ee/index.php/RK#XSD XSD] / [https://wiki.itcollege.ee/index.php/RK#XSLT_HTML XSLT HTML] / [https://wiki.itcollege.ee/index.php/RK#XSLT_XML XSLT XML]&lt;br /&gt;
&amp;lt;BR&amp;gt; [https://wiki.itcollege.ee/index.php/RK#Retsensioonid Retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Team_Echo Meeskond: Echo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Vajak&lt;br /&gt;
* Janno Oolo&lt;br /&gt;
* Mari-Liis Oldja&lt;br /&gt;
* Arti Zirk&lt;br /&gt;
* Joosep Voolma&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Team_Echo#XML XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Meeskond:_Redundant_Rappers#Retsensioon_Team_Echo_poolt Retsensioon meeskonnale Redundant Rappers]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Bob%27s_Burgers Meeskond: Bob&#039;s Burgers]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Aleksei Kopõlov&lt;br /&gt;
*Sander Perens&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Bob%27s_Burgers#XML_Retsensioon_meeskonnale_VeebiGurmaanid Retsensioon meeskonnale &#039;&#039;&#039;VeebiGurmaanid&#039;&#039;&#039;]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/User:Meeskond:_VeebiGurmaanid Meeskond: VeebiGurmaanid]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Koit Kõrvel&lt;br /&gt;
* Marko Kask&lt;br /&gt;
* Melissa Eenmaa&lt;br /&gt;
* Joosep Koort&lt;br /&gt;
&lt;br /&gt;
Retsentsioon meeskonnale: [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_HelpOut HelpOut]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Muru Meeskond: Muru]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Murdho Savila&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Muru#Retsensioonid Retsensioonid]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Repi Meeskond: Repi]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Renet Pirso&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Blogify Retsensioon: BLOGIFY]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: HelpOut===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mikk Sarapuu&lt;br /&gt;
* Martin Paakspuu&lt;br /&gt;
* Kerdo Kullamäe&lt;br /&gt;
* Marvin Mardiat&lt;br /&gt;
* Piret Pomerants&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Meeskond:_HelpOut Meeskonna koduleht]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioonid&#039;&#039;&#039;&lt;br /&gt;
* XML/XSLT/XSD retsensioon meeskonnale &#039;&#039;&#039;Falador&#039;&#039;&#039; asub [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_Falador siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/2017_Meeskond_Poly Meeskond: Poly]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kristian Kalm&lt;br /&gt;
* Roland Kontson&lt;br /&gt;
&lt;br /&gt;
=== Meeskond [https://wiki.itcollege.ee/index.php/Meeskond_%22Nope%22: Nope] ===&lt;br /&gt;
* Raido Vell&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Lisette Noor&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meeskonna koduleht:&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Meeskond_%22Nope%22: Nope]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML/XSLT/XSD&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Bob%27s_Burgers Bob&#039;s Burgers] &amp;lt;br/&amp;gt;&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Blogify Blogify]&lt;br /&gt;
&lt;br /&gt;
===Meeskond [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab Alt + Tab]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Roots&lt;br /&gt;
* Roland Soosaar&lt;br /&gt;
* Krista Norak&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#Esimene_osa Esimene osa:] [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XML XML] | [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XSD XSD] | [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XSLT_HTML XSLT HTML] | [https://wiki.itcollege.ee/index.php/Alt_%2B_Tab#XSLT_XML XSLT XML]&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Muru Muru]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Kirde_sai Meeskond: Kirde sai]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Teearu&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Kirde_sai#XML.2FXSD.2FXSLT XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Unnamed Team===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Andreas Kirotar&lt;br /&gt;
*Jaan Kostõgov&lt;br /&gt;
&lt;br /&gt;
Meeskonna koduleht: [[Unnamed Team]]&lt;br /&gt;
 &lt;br /&gt;
Meeskonna retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:2017_Meeskond_Poly Poly]&lt;br /&gt;
&lt;br /&gt;
=== Meeskond [https://wiki.itcollege.ee/index.php/%3F%3F%3F_Profit ??? Profit] ===&lt;br /&gt;
* Aivar Romandi&lt;br /&gt;
* Frank Karl Koppel&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Purgis Retsensioon meeskonnale Purgis]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Purgis===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Märt Lõhmus&lt;br /&gt;
* Kelli Lukas &lt;br /&gt;
Meeskonna koduleht: [[Purgis]]&amp;lt;br&amp;gt;&lt;br /&gt;
Esimene osa asub [https://wiki.itcollege.ee/index.php/Purgis#XML siin]&lt;br /&gt;
&lt;br /&gt;
XML Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Alt_%2B_Tab  Alt + Tab]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Meeskond:_Falador Falador]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Lugus&lt;br /&gt;
* Taavi Metsvahi&lt;br /&gt;
Meeskonna koguleht: [[Meeskond: Falador]]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Meeskond:_Falador#XML.2FXSD.2FXSLT XML/XSD/XSLT]&amp;lt;br&amp;gt;&lt;br /&gt;
Retsensioon meeskonnale: [https://wiki.itcollege.ee/index.php/Talk:Meeskond:_QView QView]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Blogify Blogify]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Hando Laasmägi&lt;br /&gt;
* Tarvo Tammejuur&lt;br /&gt;
* Cathy Toomast&lt;br /&gt;
* Tõnn Vaher&lt;br /&gt;
&lt;br /&gt;
XML etapi Retsensioon meeskonnale: [https://wiki.itcollege.ee/index.php/Talk:Ott#Retsensioon_XML_kohta_meeskonnalt_Blogify Ott]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Proovitud_abielu Proovitud abielu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Berit Põldoja&lt;br /&gt;
*Elina Kuldkepp&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Proovitud_abielu#XML.2FXSD.2FXSLT XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
XML Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Talk:Meeskond_%22Nope%22: Nope]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meeskond: [https://wiki.itcollege.ee/index.php/Mjart Mjart] ===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Märt Häkkinen&lt;br /&gt;
XML/XSLT/XSD Retsensioon meeskonnale [Proovitud Abielu https://wiki.itcollege.ee/index.php/Talk:Proovitud_abielu]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: [https://wiki.itcollege.ee/index.php/Ott Ott]===&lt;br /&gt;
Liige:&lt;br /&gt;
*Ott Sõerumäe&lt;br /&gt;
Retsensioon meeskonnale [https://wiki.itcollege.ee/index.php/Ott#XML_Retsensioon_meeskonnale_Kirde_sai Kirde sai]&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===Meeskond: CoverMe===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: CoverMe]]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Team_SPOT Meeskond: SPOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Pachel&lt;br /&gt;
* Oliver Tiks&lt;br /&gt;
Esitatud tööd:&lt;br /&gt;
# [https://wiki.itcollege.ee/index.php/Team_SPOT#XML_.2F_XSD_.2F_XSLT XML/XSD/XSLT] + [https://wiki.itcollege.ee/index.php/Talk:JRT retsensioon meeskonnale JRT]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JRT Meeskond: JRT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Riho Uusjärv&lt;br /&gt;
* Jevgeni Gavrilov&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
Retsensioon XML-failide kohta meeskonnale &amp;quot;PC KartKicker&amp;quot; [https://wiki.itcollege.ee/index.php/JRT#Retsensioon_JRT]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retsensioon XML-failide kohta meeskonnale &amp;quot;Ninjas in pyjamas&amp;quot;&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/JRT#Retsensioon_meeskonnale_.22Ninjas_in_pyjamas.22] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ticketer Meeskond: Ticketer]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Krista Rüütel&lt;br /&gt;
* Roland Türi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ninjas_in_pyjamas Meeskond: Ninjas in Pyjamas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Anna Linskaja&lt;br /&gt;
* Karen Grigorjan&lt;br /&gt;
* Sergei Hristoforov&lt;br /&gt;
* Artyom Likhachev&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Talupood Meeskond: Talutooted]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Matson&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talupood#XML XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
Retsensioon: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DevHelpVR Meeskond: DevHelp]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Martin Jääger&lt;br /&gt;
* Kristo Leemets&lt;br /&gt;
&lt;br /&gt;
XML failide retsensioon tiimile Ticketer, 26.03.2017: [https://wiki.itcollege.ee/index.php/Talk:Ticketer Talk:Ticketer]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/YAWS Meeskond: Yet Another Weather Station]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/PC_KartKicker Meeskond: PC KartKicker]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Rain Saarmäe&lt;br /&gt;
* Jan Eerik&lt;br /&gt;
XML failide retsensioon meeskonnale DevHelpVR, 27.03.2017: [https://wiki.itcollege.ee/index.php/Talk:DevHelpVR Talk:DevHelpVR] &amp;lt;br&amp;gt;&lt;br /&gt;
XML failide retsensioon meeskonnale DevHelpVR, 27.03.2017: [https://wiki.itcollege.ee/index.php/Talk:Ninjas_in_pyjamas Talk:Ninjas_in_pyjamas]&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119893</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119893"/>
		<updated>2017-04-06T17:56:07Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonnale KartKicker: [https://wiki.itcollege.ee/index.php/Talk:PC_KartKicker Talk:PC_KartKicker]&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:PC_KartKicker&amp;diff=119891</id>
		<title>Talk:PC KartKicker</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:PC_KartKicker&amp;diff=119891"/>
		<updated>2017-04-06T17:52:11Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Retsensioonid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Retsensioon meeskonnalt [https://wiki.itcollege.ee/index.php/Talupood]=&lt;br /&gt;
==XML ja XSD fail==&lt;br /&gt;
Näidisfail valideerib ning struktuur vastab osaliselt etteantud kriteeriumidele&lt;br /&gt;
&lt;br /&gt;
1. On vähemalt neli loogilist dimensiooni - leidsime viis&lt;br /&gt;
&lt;br /&gt;
2. Valdavalt on kõik andmed defineeritud atribuutide väärtustena - raskesti loetav XML fail.&lt;br /&gt;
&lt;br /&gt;
3. ID-sid pole kasutatud. Kasutatud on liigselt palju atribuute. Identifitseerimiseks saab põhimõtteliselt kasutada ainult name atribuuti. &lt;br /&gt;
Ülejäänud atribuudid on üleliigsed ja võiksid olla XML-elemendid.&lt;br /&gt;
&lt;br /&gt;
4. Identifitseerimiseks võiks kasutada ikkagi numbrilisi väärtuseid ja vähemalt üks element peaks olema unikaalne, sest nii oleks tagatud loogilisem ja veakindlam andmevahetus. Samuti vastaks selline identifitseerimine andmebaasi Primary Key väärtustamise põhimõttele. &lt;br /&gt;
&lt;br /&gt;
5. Elemente &amp;lt;case&amp;gt;, &amp;lt;cpu&amp;gt; jne (kõik ülejäänud ka) saab nt name ja teiste tema sees olevate atribuutidega lisada piiramatul arvul, ilma et viga tekiks.&lt;br /&gt;
&lt;br /&gt;
6. Nimetuste kasutamine atribuutides ja XML-elementides on ühtlase stiiliga.&lt;br /&gt;
&lt;br /&gt;
7. Transformatsioone on esitatud kaks, aga kumbki sisaldab vaid üht for-each klauslit, mistõttu ei vasta see nõuetele.&lt;br /&gt;
&lt;br /&gt;
8. Tingimuste kontrolli pole transformatsioonides kasutatud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transformatsioonid==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; HTML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Väljundiks olev HTML annab W3C validaatoris mitu viga: &lt;br /&gt;
&lt;br /&gt;
1. XML -&amp;gt; HTML lühike ja ikka vigu täis!!!!&lt;br /&gt;
&lt;br /&gt;
2. Puudub dokumendi tüübi deklaratsioon (&amp;lt;!DOCTYPE HTML SYSTEM&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
3. Head elemendis on sees H1 element, mis kindlasti seal ei peaks asuma. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; XML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pole esitatud, seega selles osas ei vasta töö esitatud tingimustele.&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119088</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119088"/>
		<updated>2017-03-20T16:47:34Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* HTML LAYOUT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:Tellimus.PNG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=File:Tellimus.PNG&amp;diff=119087</id>
		<title>File:Tellimus.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=File:Tellimus.PNG&amp;diff=119087"/>
		<updated>2017-03-20T16:46:17Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119085</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119085"/>
		<updated>2017-03-20T16:39:17Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* XSLT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Kuupäev&amp;quot; select=&amp;quot;Andmed/Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Märkus&amp;quot; select=&amp;quot;Andmed/Märkus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Kuupäev:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Kuupäev&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;2&amp;quot; &amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;Märkused:  &amp;lt;/xsl:text&amp;gt; &lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Märkus&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Soodustus&amp;quot; select =&amp;quot;Andmed/Soodustus&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Soodustus&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number(($Soodustus div 100) * $Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * (1 - ($Soodustus div 100)) * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:html_layout.JPG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119084</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119084"/>
		<updated>2017-03-20T16:38:10Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* XML schema (XSD) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:integer&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;4&amp;quot;  style=&amp;quot;text-align:left;vertical-align:top&amp;quot; &amp;gt;Märkused:&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:html_layout.JPG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119081</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119081"/>
		<updated>2017-03-20T16:35:50Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* XML schema (XSD) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Märkus&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;4&amp;quot;  style=&amp;quot;text-align:left;vertical-align:top&amp;quot; &amp;gt;Märkused:&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:html_layout.JPG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119080</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=119080"/>
		<updated>2017-03-20T16:34:59Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;25&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;10&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;Ostukorvid&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Andmed&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kuupäev&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Kasutaja&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;KasutajaNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Külaline&amp;quot; type=&amp;quot;xs:boolean&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Aadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Telefon&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:extension base=&amp;quot;xs:unsignedInt&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:attribute name=&amp;quot;Tüüp&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:extension&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;Soodustus&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveSaaja&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;ArveAadress&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;Tooted&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;Toode&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:choice maxOccurs=&amp;quot;unbounded&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Talu&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:element name=&amp;quot;TaluNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                                &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                                &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                              &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                            &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TellitavKogus&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;Yhik&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                            &amp;lt;xs:element name=&amp;quot;TooteYhikuHind&amp;quot; type=&amp;quot;xs:decimal&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;/xs:choice&amp;gt;&lt;br /&gt;
                        &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;TooteNimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;Id&amp;quot; type=&amp;quot;xs:int&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;link href=&amp;quot;mystyle.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;Ostukorvid/Ostukorv&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h1&amp;gt;&lt;br /&gt;
            Tellimus nr:&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/h1&amp;gt;&lt;br /&gt;
          &amp;lt;h3&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;true&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;KÜLALINE &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:when test=&amp;quot;Andmed/Kasutaja/@Külaline = &#039;false&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;REG KASUTAJA &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;ADMIN&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
          &amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;table id=&amp;quot;table1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Tellija&amp;quot; select=&amp;quot;Andmed/ArveSaaja&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Aadress&amp;quot; select=&amp;quot;Andmed/ArveAadress&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Isik&amp;quot; select=&amp;quot;Andmed/Kasutaja/KasutajaNimi&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Telefon&amp;quot; select=&amp;quot;Andmed/Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
                Tellija:&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Tellija&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Aadress:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Aadress&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kontaktisik:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Isik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:text&amp;gt;, Tel:  &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;$Telefon&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;h2&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
          &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Temp Kogusumma arvutamiseks --&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:variable name=&amp;quot;Summa&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;SummaTemp&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;number&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;TellitavKogus * TooteYhikuHind&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/number&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:value-of select=&amp;quot;sum(msxsl:node-set($SummaTemp)/number)&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th colspan=&amp;quot;7&amp;quot; bgcolor=&amp;quot;#848484&amp;quot;&amp;gt;Valitud tooted&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Nr&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Talu&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kaup&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Ühik&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Kogus&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Hind&amp;lt;/th&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;Summa&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;Tooted/Toode&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:sort select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Talu/TaluNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@TooteNimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;Yhik&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;kg&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:when test=&amp;quot;Yhik = &#039;tk&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;                  &lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;format-number(TellitavKogus * TooteYhikuHind, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td colspan=&amp;quot;5&amp;quot; rowspan=&amp;quot;4&amp;quot;  style=&amp;quot;text-align:left;vertical-align:top&amp;quot; &amp;gt;Märkused:&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Summa&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;20%:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 0.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Kokku:&amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;format-number($Summa * 1.2, &#039;0.00&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== HTML LAYOUT ===&lt;br /&gt;
[[Image:html_layout.JPG|1000px]]&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=118890</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=118890"/>
		<updated>2017-03-19T22:50:17Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;Ostukorvid&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;17.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Kalle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;33333333&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Kalle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Tallinn, Raja 4c&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;Lisa info tellimuse kohta&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;1&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Peeter&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Tallinn, Raja 4c&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;work&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Peeter&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Peetriküla&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;2&amp;quot; TooteNimi=&amp;quot;Tomat&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;tk&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;    &lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
  &amp;lt;Ostukorv Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Andmed&amp;gt;&lt;br /&gt;
      &amp;lt;Kuupäev&amp;gt;18.03.2017&amp;lt;/Kuupäev&amp;gt;&lt;br /&gt;
      &amp;lt;Kasutaja Id=&amp;quot;2&amp;quot; Külaline=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;KasutajaNimi&amp;gt;Malle&amp;lt;/KasutajaNimi&amp;gt;&lt;br /&gt;
      &amp;lt;/Kasutaja&amp;gt;&lt;br /&gt;
      &amp;lt;Aadress&amp;gt;Pärnu, Raja 4&amp;lt;/Aadress&amp;gt;&lt;br /&gt;
      &amp;lt;Telefon Tüüp=&amp;quot;home&amp;quot;&amp;gt;555555555&amp;lt;/Telefon&amp;gt;&lt;br /&gt;
      &amp;lt;Soodustus&amp;gt;0.1&amp;lt;/Soodustus&amp;gt;&lt;br /&gt;
      &amp;lt;ArveSaaja&amp;gt;Malle&amp;lt;/ArveSaaja&amp;gt;&lt;br /&gt;
      &amp;lt;ArveAadress&amp;gt;Pärnu, Raja 4&amp;lt;/ArveAadress&amp;gt;&lt;br /&gt;
      &amp;lt;Märkus&amp;gt;&amp;lt;/Märkus&amp;gt;&lt;br /&gt;
    &amp;lt;/Andmed&amp;gt;&lt;br /&gt;
    &amp;lt;Tooted&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;1&amp;quot; TooteNimi=&amp;quot;Kartul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Juhani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;10.5&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;1.0&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
      &amp;lt;Toode Id=&amp;quot;4&amp;quot; TooteNimi=&amp;quot;Sibul&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Jaani&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;2&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;0.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
          &amp;lt;Toode Id=&amp;quot;5&amp;quot; TooteNimi=&amp;quot;Liha&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Talu Id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;TaluNimi&amp;gt;Nöpri&amp;lt;/TaluNimi&amp;gt;&lt;br /&gt;
        &amp;lt;/Talu&amp;gt;&lt;br /&gt;
        &amp;lt;TellitavKogus&amp;gt;1&amp;lt;/TellitavKogus&amp;gt;&lt;br /&gt;
        &amp;lt;Yhik&amp;gt;kg&amp;lt;/Yhik&amp;gt;&lt;br /&gt;
        &amp;lt;TooteYhikuHind&amp;gt;2.5&amp;lt;/TooteYhikuHind&amp;gt;&lt;br /&gt;
      &amp;lt;/Toode&amp;gt;&lt;br /&gt;
    &amp;lt;/Tooted&amp;gt;&lt;br /&gt;
  &amp;lt;/Ostukorv&amp;gt;&lt;br /&gt;
&amp;lt;/Ostukorvid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Teema===&lt;br /&gt;
===XML===&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
===XSLT 1===&lt;br /&gt;
===XSLT 2===&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017&amp;diff=118786</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017&amp;diff=118786"/>
		<updated>2017-03-19T15:11:06Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Võrgurakendused II: hajussüsteemide ehitamine]]&lt;br /&gt;
__NOINDEX__&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2017=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML(SOAP) või Rest veebiteenusel ja sellele klientrakenduse loomise abil ning süvendada meeskonnatööoskust. &lt;br /&gt;
*SOAP veebiteenuse puhul eeldatakse WCF tehnoloogia kasutamist. Vanema põlvkonna ASP.NET veebiteenuse loomine ei ole lubatud, kuna seda ei toeta ka Microsoft enam tänasel päeval.&lt;br /&gt;
*REST teenuste loomisel tuleks kasutada ASP.NET Web API võimalusi.&lt;br /&gt;
&lt;br /&gt;
Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendused (soovitavalt vähemalt kaks)endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
Ühte projektimeeskonda kuulub 3..4 tudengit ning ühel teemal teostab projekti üks või mitu meeskonda. 1,2 ja viie liikmelised meeskonnad tuleks õppejõuga eraldi kooskõlastada.&lt;br /&gt;
&lt;br /&gt;
Töö käiku kajastatakse  http://wiki.itcollege.ee keskkonnas. Wikilehe täitmise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;20. märts 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;27. märts 2017&#039;&#039;&#039;.&lt;br /&gt;
** &#039;&#039;&#039;Meeskonnad on loonud omale enda wiki lehe, kuhu kirjeldavad meeskonna ja panevad nad üles oma tööd. Lisaks hakkavad kogunema ka sinna teiste gruppide poolt kirjutatavad retsensioonid. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;17.aprill 2017&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;08. juuni 2017&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--** Veebiteenus tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2017#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2017&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;08. juuni 2017&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--** Klientrakendused tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne&#039;&#039;&#039;&lt;br /&gt;
** Meeskonnatöö kokkuvõttev aruanne peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 8.mai 2011&lt;br /&gt;
** Arvamused Meeskonnatöö kokkuvõtva aruande ja esitluse kohta tuleb esitada hiljemalt päev enne eksamit&lt;br /&gt;
** &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne ja töö lõplik tulemus&#039;&#039;&#039; tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
Maksimumtulemuse saavutamiseks peab projekt olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub  arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/6):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilrakendused &lt;br /&gt;
* AngularJS klientrakendus&lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning minimaalselt kaks sobivat XSL transformatsiooni faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. Transformatsioonid peavad sisaldama midagi enamat, kui ainult üks for-each klausel. Transformatsiooni käigus peaks kasutama vajadusel parameetreid ning kindlasti ka erinevaid tingimuste kontrolle.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
Käesoleva ülesande käigus peab looma meeskonna ning selle wiki lehekülje&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramist ja piirangute haldamist.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus peab toetama mitme kasutaja võimalust.&lt;br /&gt;
&lt;br /&gt;
Loodav veebiteenus tuleb luua kasutades &#039;&#039;Windows Communication Foundation&#039;&#039; või ASP.NET MVC  Web API tehnoloogiat&lt;br /&gt;
&lt;br /&gt;
Andmebaasis peab olema vähemalt 9 olemit ehk andmebaas on eeldus,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
Klientrakendus mõnele olemasolevale veebiteenusele, võib olla teostatud veebirakendusena, Silverlight, WPF või vormirakendusena.&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
Retsensioon on üliõpilase iseseisva teadustöö kriitilise analüüsi põhjal koostatud argumenteeritud hinnang. Retsensioonis tuleb hinnata töö vastavust esitatud tingimustele, programmikoodi loetavust ning kommenteeritust, dokumentatsiooni ja kirjeldada puudusi. Retsensioonide põhjal on meeskondadel õigus oma projekte parandada enne määratud esitamistähtaja kättejõudmist.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee või (+372 53 469 734)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
=Teemad 2017 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
NB! XML andmefail ja veebiteenus ei pea olema omavahel seotud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
===Nimede pakkumise teenus===&lt;br /&gt;
Mõte selles, et luua nimede baas, mille abil pakkuda rakenduse loojale sobiva algusega nimesid. Reaalne rakendus: &#039;&#039;autocompleter&#039;&#039; tarvis teenuse pakkumine&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus administraatoril nimesid muuta/kustutada&lt;br /&gt;
* meeste ja naiste nimed peavad olema süsteemis eristatavad&lt;br /&gt;
* luua võimalus, mis võimaldab kuvada populaarseid nimesid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* luua võimalus, et nimi lisatakse baasi alles siis, kui administraatori õigustega inimene on selleks vastava loa andnud&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutajaid on võimalik lisada gruppidesse&lt;br /&gt;
* kasutajal on võimalik lisada vajalike kontaktandmete liike&lt;br /&gt;
* kasutajatel on võimalik jagada omavahel kontakte ja kontaktide grupper&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
* kasutaja saab RSS vooge vaadata eraldi või grupeeritult&lt;br /&gt;
* vooge peab puhverdama, kuna voogude lugemine võtab enamasti üsna palju aega &lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2017=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===Meeskond: QView===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Semjon Greef&lt;br /&gt;
* Martin Nigul&lt;br /&gt;
* Martin Nõukas&lt;br /&gt;
* Margus Muru&lt;br /&gt;
* Lisandra Noor&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: QView]]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Redundant Rappers===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kliss&lt;br /&gt;
*Kertu Nurmberg&lt;br /&gt;
*Anneli Asser&lt;br /&gt;
*Mart-Erki Nõumees&lt;br /&gt;
&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: Redundant Rappers]]&lt;br /&gt;
&lt;br /&gt;
Meeskonna XML/XSD/XSLT : [https://wiki.itcollege.ee/index.php/Meeskond:_Redundant_Rappers#XML_.2F_XSD_.2F_XSLT]&lt;br /&gt;
&lt;br /&gt;
Meeskonna retsensioon meeskonnale Sense Of Direction: [https://wiki.itcollege.ee/index.php/Talk:Sense_Of_Direction]&lt;br /&gt;
&lt;br /&gt;
===Meeskond: Sense Of Direction===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Ilja Andrejev&lt;br /&gt;
*Aleksandr Babõkin&lt;br /&gt;
*Vladislav Lahtarin&lt;br /&gt;
*Vladislav Kovaltšuk&lt;br /&gt;
Meeskonna koduleht: [[Sense Of Direction]]&amp;lt;br&amp;gt;&lt;br /&gt;
XML/XSD/XSLT osa asub [https://wiki.itcollege.ee/index.php/Sense_Of_Direction#XML siin]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RK Meeskond: RK]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Raido Kivinurm&lt;br /&gt;
&lt;br /&gt;
Esimene osa: [https://wiki.itcollege.ee/index.php/RK#XML XML] / [https://wiki.itcollege.ee/index.php/RK#XSD XSD] / [https://wiki.itcollege.ee/index.php/RK#XSLT_HTML XSLT HTML] / [https://wiki.itcollege.ee/index.php/RK#XSLT_XML XSLT XML]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Team_Echo Meeskond: Echo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Vajak&lt;br /&gt;
* Janno Oolo&lt;br /&gt;
* Mari-Liis Oldja&lt;br /&gt;
* Arti Zirk&lt;br /&gt;
* Joosep Voolma&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Team_Echo#XML XML/XSD/XSLT]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.itcollege.ee/index.php/Talk:Meeskond:_Redundant_Rappers#Retsensioon_Team_Echo_poolt Retsensioon meeskonnale Redundant Rappers]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Bob%27s_Burgers Meeskond: Bob&#039;s Burgers]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Aleksei Kopõlov&lt;br /&gt;
*Sander Perens&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/User:Meeskond:_VeebiGurmaanid Meeskond: VeebiGurmaanid]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Koit Kõrvel&lt;br /&gt;
* Marko Kask&lt;br /&gt;
* Melissa Eenmaa&lt;br /&gt;
* Joosep Koort&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Muru Meeskond: Muru]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Murdho Savila&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Repi Meeskond: Repi]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Renet Pirso&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===Meeskond: CoverMe===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
Meeskonna koduleht: [[Meeskond: CoverMe]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Team_SPOT Meeskond: SPOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Pachel&lt;br /&gt;
* Oliver Tiks&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JRT Meeskond: JRT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Riho Uusjärv&lt;br /&gt;
* Jevgeni Gavrilov&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ticketer Meeskond: Ticketer]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Krista Rüütel&lt;br /&gt;
* Roland Türi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ninjas_in_pyjamas Meeskond: Ninjas in Pyjamas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Anna Linskaja&lt;br /&gt;
* Karen Grigorjan&lt;br /&gt;
* Sergei Hristoforov&lt;br /&gt;
* Artyom Likhachev&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Talupood Meeskond: Talutooted]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mihkel Matson&lt;br /&gt;
* Taavi Tilk&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=118785</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=118785"/>
		<updated>2017-03-19T15:08:43Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Mihkel Matson &amp;lt;br&amp;gt;&lt;br /&gt;
Taavi Tilk &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Idee =&lt;br /&gt;
Jätkame C# aines alustatud ideed, milleks oli talutoodete tellimise keskkond (sarnane epoele).&lt;br /&gt;
Idee täpsemalt on pakkuda kvaliteetseid ja värskeid talude saadusi otse tootjalt läbi selleks ettenähtud veebirakenduse. Klient saab veebilehel valida tooteid, vormistada tellimusi ning talunik omalt poolt hallata tooteid, tellimusi ja kliente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Projekt =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===Teema===&lt;br /&gt;
===XML===&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
===XSLT 1===&lt;br /&gt;
===XSLT 2===&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=118784</id>
		<title>Talupood</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talupood&amp;diff=118784"/>
		<updated>2017-03-19T15:04:23Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: Created page with &amp;quot;Meeskond: Talupood&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Meeskond: Talupood&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117538</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117538"/>
		<updated>2017-01-31T21:43:28Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Meeskond: Agraarbeib */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esialgne eesmärk ning sellele vastavus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tänane rakendus vastab kenasti etteantud nõuetele, on olemas kasutajate lisamine, projektide ja iteratsioonide haldamine ning kasutajalugude genereerimine. Kasutusel on andmebaas ning Entity Framework, tegemist WPF rakendusega. Esialgne funktsionaalsus on peaaegu täielikult kaetud, ainsad puudused tunduvad olevat kasutajate grupeerimine ning kliendipõhine filtreerimine. Kasutusel on ka logimine ehk logitakse maha päringuid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. Peab ära mainima, et kood on üllatavalt hästi kommenteeritud, mis annab kõrvaltvaatajale hea lisandväärtuse ja aitab ehk mõningaid kasutatud nüansse ja põhimõtteid paremini mõista.&lt;br /&gt;
Edukalt on kasutatud OOP-i päriluse omadust ning kasutajavaadete poolelt bindingut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Analüüsi käigus selgus, et osaliselt puuduvad sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid ükshaaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teha uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte ükshaaval ning projekti loetavus ühtlasem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soovitused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Soovitaks BusinessObject folderi ja domain folderi luua eraldi projektidesse, samuti ka teenused. Kui näiteks tuleks nüüd luua veebirakendus ka veel, siis ei peaks eraldi neid kihte (DAL, Domain, BLL) looma hakkama.&lt;br /&gt;
Soovitatav on ka kasutaja sisendi filtreerimine ehk erinevate väljade kontroll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik andmebaasistruktuur projekti töökindluse ja paindlikkuse. Puudusena saame siis ainult ära märkida kontrollide puudumise andmete sisestamisel. Lisaks eelnevatele soovitustele, oleks ehk kasutajakogemuse poolelt võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis ning veidi selgem kasutajaliides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117534</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117534"/>
		<updated>2017-01-31T21:41:11Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esialgne eesmärk ning sellele vastavus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tänane rakendus vastab kenasti etteantud nõuetele, on olemas kasutajate lisamine, projektide ja iteratsioonide haldamine ning kasutajalugude genereerimine. Kasutusel on andmebaas ning Entity Framework, tegemist WPF rakendusega. Esialgne funktsionaalsus on peaaegu täielikult kaetud, ainsad puudused tunduvad olevat kasutajate grupeerimine ning kliendipõhine filtreerimine. Kasutusel on ka logimine ehk logitakse maha päringuid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. Peab ära mainima, et kood on üllatavalt hästi kommenteeritud, mis annab kõrvaltvaatajale hea lisandväärtuse ja aitab ehk mõningaid kasutatud nüansse ja põhimõtteid paremini mõista.&lt;br /&gt;
Edukalt on kasutatud OOP-i päriluse omadust ning kasutajavaadete poolelt bindingut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Analüüsi käigus selgus, et osaliselt puuduvad sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid ükshaaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teha uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte ükshaaval ning projekti loetavus ühtlasem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soovitused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Soovitaks BusinessObject folderi ja domain folderi luua eraldi projektidesse, samuti ka teenused. Kui näiteks tuleks nüüd luua veebirakendus ka veel, siis ei peaks eraldi neid kihte (DAL, Domain, BLL) looma hakkama.&lt;br /&gt;
Soovitatav on ka kasutaja sisendi filtreerimine ehk erinevate väljade kontroll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117528</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117528"/>
		<updated>2017-01-31T21:35:13Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Meeskond: Agraarbeib */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esialgne eesmärk ning sellele vastavus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tänane rakendus vastab kenasti etteantud nõuetele, on olemas kasutajate lisamine, projektide ja iteratsioonide haldamine ning kasutajalugude genereerimine. Kasutusel on andmebaas ning Entity Framework, tegemist WPF rakendusega. Esialgne funktsionaalsus on peaaegu täielikult kaetud, ainsad puudused tunduvad olevat kasutajate grupeerimine ning kliendipõhine filtreerimine. Kasutusel on ka logimine ehk logitakse maha päringuid. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. Peab ära mainima, et kood on üllatavalt hästi kommenteeritud, mis annab kõrvaltvaatajale hea lisandväärtuse ja aitab ehk mõningaid kasutatud nüansse ja põhimõtteid paremini mõista.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soovitused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Soovitaks BusinessObject folderi ja domain folderi luua eraldi projektidesse, samuti ka teenused. Kui näiteks tuleks nüüd luua veebirakendus ka veel, siis ei peaks eraldi neid kihte (DAL, Domain, BLL) looma hakkama.&lt;br /&gt;
Soovitatav on ka kasutaja sisendi filtreerimine ehk erinevate väljade kontroll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117521</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117521"/>
		<updated>2017-01-31T21:32:06Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esialgne eesmärk ning sellele vastavus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tänane rakendus vastab kenasti etteantud nõuetele, on olemas kasutajate lisamine, projektide ja iteratsioonide haldamine ning kasutajalugude genereerimine. Kasutusel on andmebaas ning Entity Framework, tegemist WPF rakendusega. Esialgne funktsionaalsus on peaaegu täielikult kaetud, ainsad puudused tunduvad olevat kasutajate grupeerimine ning kliendipõhine filtreerimine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eeesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. &lt;br /&gt;
Kasutusel on ka logimine ehk logitakse maha päringuid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soovitused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Soovitaks BusinessObject folderi ja domain folderi luua eraldi projektidesse, samuti ka teenused. Kui näiteks tuleks nüüd luua veebirakendus ka veel, siis ei peaks eraldi neid kihte (DAL, Domain, BLL) looma hakkama.&lt;br /&gt;
Soovitatav on ka kasutaja sisendi filtreerimine ehk erinevate väljade kontroll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117520</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117520"/>
		<updated>2017-01-31T21:30:29Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esialgne eesmärk ning sellele vastavus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tänane rakendus vastab kenasti etteantud nõuetele, on olemas kasutajate lisamine, projektide ja iteratsioonide haldamine ning kasutajalugude genereerimine. Kasutusel on andmebaas ning Entity Framework, tegemist WPF rakendusega. Esialgne funktsionaalsus on peaaegu täielikult kaetud, ainsad puudused tunduvad olevat kasutajate grupeerimine ning kliendipõhine filtreerimine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eeesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. &lt;br /&gt;
Kasutusel on ka logimine ehk logitakse maha päringuid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soovitused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Soovitaks BusinessObject folderi ja domain folderi luua eraldi projektidesse, samuti ka teenused. Kui näiteks tuleks nüüd luua veebirakendus ka veel, siis ei peaks eraldi neid kihte (DAL, Domain, BLL) looma hakkama.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117515</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117515"/>
		<updated>2017-01-31T21:12:57Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esialgne eesmärk ning sellele vastavus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eeesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117514</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117514"/>
		<updated>2017-01-31T21:11:26Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
Kasutusjuhendi osas võiksid autorid seda täiendada, lisades juurde konreetsete tegevuste eesmärke ja lahtrite vajalikkust. See annab kasutajale parema ülevaate, teisalt ka juhtnöörid arendajatele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eeesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117513</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117513"/>
		<updated>2017-01-31T21:07:42Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate kihtide vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on  eeesmärgipäraselt nimetatud, lähtudes kasutusotstarbest ja seetõtu hõlbustavad koodi lugemist. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117512</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117512"/>
		<updated>2017-01-31T21:05:42Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate folderite vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on kasutamise eeesmärgi päraselt nimetatud ja seetõtu hõlbustavad koodi lugemist. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117511</id>
		<title>Talk:DevHelp</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:DevHelp&amp;diff=117511"/>
		<updated>2017-01-31T21:05:10Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Meeskond: Agraarbeib===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sissejuhatus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Käesolev retsensioon on koostatud &#039;&#039;&#039;DevHelp&#039;&#039;&#039; meeskonna C# projektitööle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rakenduse kasutamise esmamulje&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retsenseeritava rakenduse kujul on kasutusjuhendi kohaselt tegemist tarkvaraprojektide arenduse planeerimise abivahendiga. Olles analüüsinud nii kasutajaliidest kui koodi, võib väita, et korrektsem oleks seda kutsuda ehk tarkvaraprojektide haldamise tööriistaks. Siiski peab möönma, et projekti tänane versioon sisaldab endas esialgset prototüüpi.&lt;br /&gt;
Üldiselt on rakendus sihipäraselt kasutatav. Loodud on piisval hulgal kasutajaliidese funktsionaalsust, näiteks peites ja tuues uuesti nähtavale nuppe, mis peavad olema kasutatavad alles peale mingeid konkreetseid tegevusi (nt esimese projekti lisamisel tekib alles siis &amp;quot;Kustuta projekt&amp;quot;, kui projekt on lisatud). Mugavuse osas võiks kasutajatele näiteks kuupäeva valimisel kasutada Datepicker elemente (Lisa iteratsioon, &amp;quot;Algus&amp;quot; ja &amp;quot;Lõpp&amp;quot; textBox), kuid samas võis see olla ka taotluslik, et süsteemi ja ülesehitust testida.&lt;br /&gt;
Kiitma peaks meeskonda hoolikate ja õigete Bindingute kasutamise eest, lisaks on kasutatud edukalt ka OOP-i üht põhielementi ehk pärilust (nt base.NotifyPropertyChanged(&amp;quot;Users&amp;quot;);).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi head omadused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on ülesehitatud kasutades database first lähenemist. Projekt on loogiliselt jaotatud erinevate folderite vahel jälgides MVVM mustrit. Kood on selgelt ja arusaadavalt kirja pandud. Objektide, meetodite, propertite nimed on kasutamise eeesmärgi päraselt nimetatud ja seetõtu hõlbustavad koodi lugemist. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Koodi puudused&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Koodi on vähe kommenteeritud. Puudub osaliselt sisestuse kontrollid. Samuti tekkis viga viimase projekti kustutamisel ja andmebaasi muudatuse salvestamisel.&lt;br /&gt;
Päringute tegemisel antakse meetodisse kõik propertid üks haaval (nt  AddNewUser(string username, string password, string firstname, string lastname, string email, string phonenumber), selle asemel oleks võinud teba uue objeti UserBo ja anda see AddNewUser siis nt nii AddNewUser(UserBo newUser). Nii oleks antud terve objekt kaasa koos kõigi parameetritega, mitte üks haaval. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Projekt on hästi tehtud. Tugev eeltöö on varasemalt tehtud ja seetõttu tagab põhjalik database struktuur projekti töökindluse ja paindlikkuse. Puudusena siis ainult kontrollide puudumine andmete sisestamisel. Oleks võinud lisada projekti ka Window elemente, et katsetada erinevate windowide ja page käitumist ühes projektis. Oleks tagatud parem UI keskkond. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseeris meeskond Agraarbeib&lt;br /&gt;
&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaia Runthal&lt;br /&gt;
* Marianne Trubetskoi&lt;br /&gt;
* Taavi Tilk&lt;br /&gt;
* Mihkel Matson&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96337</id>
		<title>User:Mmatson</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96337"/>
		<updated>2015-11-02T20:54:12Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Küsimus 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I020 aine arvestustöö =&lt;br /&gt;
&lt;br /&gt;
Nimi: &amp;lt;b&amp;gt;Mihkel Matson&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Grupp: DK14 kaugõpe&lt;br /&gt;
&lt;br /&gt;
==Essee==&lt;br /&gt;
&lt;br /&gt;
Ainet deklareerides just kuigi suuri ootuseid ei tekkinud. Mind valdas pigem tunne, et tegemist on ainega, mis tuleb lihtsalt ära teha. Tunne eelkõige seepärast, et kõrgharidustee on kord juba läbitud, küll telekommunikatsiooni valdkonnas. Kusagil sisemuses peitis end ehk mõte, et võibolla saab vajalikku infot õppekava ja eeskirjade kohta. Järgnevalt püüangi välja tuua, mis tegelikult juhtus ja mida ma sellest õppisin.&lt;br /&gt;
&lt;br /&gt;
Tuleb tunnistada, et sissejuhatav loeng oli selles aines ka ainus, milles ise kohapeal viibisin. Ühest küljest on see kaugõppe eelis või tegelikult EIK eelis, teisalt ka suurim puudus, kuna süsteemid veel nõnda intelligentsed pole, et suudaks küsimustele vastata. Selles loengus sai esiteks ülevaate EIK-st, erialast ja mida antud õppekava kokkuvõttes annab. Teiseks oli küllaltki palju infot ka üliõpilasesindusest ning selle funktsioonist ja meelde jäi ka võimalus astuda robootikaringi. Tänaseks veel osavõtnud pole, kuid plaan on seda teha.&lt;br /&gt;
Olulised märksõnad, nagu ka teistes ülikoolides, on punase joone päev ja see, et kogu info on kättesaadav elektroonselt Õppeinfosüsteemist(ÕIS). Mis kõige olulisem, tuleb täita vähemalt 27EAP ja õpi võimalikult vara ja palju. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/2548034a-9251-4b0a-9349-6aa3d3bbf493 Sissejuhatav loeng]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teises loengus oli põnev kuulda IT-s naisena töötamisest ja läbilöömisest. Tiina Seeman tõi näiteid IT juhtimise köögipoolelt, andes näiteid ja võrdlusi erinevate meeskondade kooslusest ja nende edukast juhtimisest. Hea näitena olid väljatoodud projektide põhilised läbikukkumise põhjused – üks kõige olulisem on lõppkasutaja kaasatus. Igapäeva tööst võin samamoodi sellele paralleeli tuua, et kaasamine on oluline. Aga oluline on siin ka optimaalne kaasatus. Kaasamine aitab näiteks arendajal mõista, mis on lõppkasutaja tegelik vajadus ja vastupidi saab infot, millised on piirangud või aeganõudvad tegevused. Õppisin seda, et kordamine on tarkuse ema ja järgnevad mõisted on projektis kokku seotud kolmnurgana – aeg, skoop, raha, kvaliteet. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/e2cded4a-d03a-4ed5-95e9-de354ce58f36 IT projektide juhtimine ]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kolmandas loengus rääkis Elar Lang õppimisest üldiselt. Hea näitena oli välja toodud õppimine Polütehnikumis ja EIK-s. Oluline on, et õppekavad ja –ained oleksid päevakohased, muidu puudub seos tänapäevaga ja raske on leida motivatsiooni, et õppida vananenud õppekava järgi. Ma usun, et see on tänapäeval muutumas, kuid veel paljud gümnaasiumid kasutavad nn “tuupimise” meetodit. Siit jäi meelde ka vaatenurk, et kool on vaid sisukord – mis olemuselt võiks olla tõene hüpotees. Antud loengust õppisin seda, et tuleb keskenduda võimalustele ja mitte probleemidele ning tuleb õppida õppima ja panna paika eesmärk.&lt;br /&gt;
Üks õpetlik nüanss, mida kindlasti proovin rakendada, on teha koolist nn projekt ja lisada see kõik ühte dokumenti. See annab ülevaate tehtud asjadest, motiveerib ning innustab ja hoiab eesmärgi silme ees. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Õppimisest. Omast kogemusest.]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neljas loeng oli minu jaoks mõneti tagasivaade, kuna Taavi Tuisk rääkis oma kogemustest süsteemiadministraatorina. Tagasivaade seetõttu, et olen ka ise ca 5 aastat tegelenud varasemalt süsteemide administreerimisega, küll rohkem telekommunikatsiooni valdkonnas, aga äratundmist oli palju. Olulisem selle positsiooni juures hea stressitaluvus pingelistes olukordades ning samuti hea suhtlemisoskus ning IT poolelt tuleb koostööd teha just arendajatel ja süsteemihalduritel, see toob efektiivsuse. Mida meelde jätta – kliendi andmeid ära puutu! &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Millega tegeleb süsteemihaldur]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viiendas loengus räägiti testimisest. Kert Suvi lükkas ümber müüdi, et testimine on kulukas, tuues näiteks palgad ja tunnihinnad, mis võrreldavad arendajate ja analüütikutega. Enim köitis mind testimise kirjeldamine, kus toodi välja testimise eri tahud ja võimalused - näiteks hiireklikkide automatiseerimine ja rahvusvaheline testimine. Testimise vajadusest saan aru ka täna, olles projektijuhi rollis, kuid tutvustav loeng veel suurt innustust ei andnud. Samas õppisin, et arendajana tuleb kindlasti palju rõhku panna kvaliteetsele ja testitud koodile. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/00379be2-bb86-4935-9b4f-aad720ee4cc0?ec=true Testimine ja tarkvara kvaliteet]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kuues loeng oli huvitav ja võttis kokku kõik eelnevad teemad, aga lisas ka nüansi projektijuhtimisest ja arendaja kõrvaltegevustest. Põnev oli slaid võimalikest töökohtadest peale IT arendaja õppekava edukat läbimist ja hea ülevaate sai konsultatsiooniäri finantsmudelist, mis tegelikult polegi nii &amp;quot;roosiline&amp;quot; kui arvata võiks. Kõlama jäi fakt, et tarkvara kui teenusena müük on tõenäoliselt kasumlikum kui arendustundide müük - selle näiteks võib tuua võrdluse Transferwise ja Nortal. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/45c455bb-ef01-4f3e-a722-5ba40ecbe8ee?ec=true Kuidas tarkvaraarenduse maailmas ellu jääda]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seitsmes loeng oli võrreldes eelmistega ehk kõige huvitavam. Nimelt Tanel Unt kirjeldas enda ettevõtluskogemust. Esimese ettevõtte lõi ta alaealisena, kuid selle skoop oli liiga suur ja tuli esimene läbikukkumine. Mida antud loengust õppida, oli see, et peale esimest ebaõnnestumist, tuleb uue projektiga juba varakult mõõdikud paika panna ja aru saada, mil on aeg lõpetada. Motiveeriva tõuke andis siin esitaja teekond praeguse ettevõtte arenduseni, et kõike seda saab teha ka põhitöö kõrvalt. Jäi kõlama mõte, et oluline on tahtmine ja varane alustamine.&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/95e9f82e-debe-4f6c-833a-5dabb639600d?ec=true Oma IT ettevõte -- GPS asukohamääramisteenuse Navirec näitel]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaheksas loeng rääkis andmeanalüüsi erinevatest tahkudest ja võimalustest ja pani tõsiselt kuulama. Andmeanalüüs ise tundub väliselt väga ilus ja kahtlemata vajalik, kuid taustsüsteem seal taga tundub keeruline. Selles osas oleks soovinud reaalset näidet või näiteid näha. Need esitaja sõnul pealiskaudsed näited, andsid hea ülevaate, mida kõike ka suhteliselt väheste andmete või ka täiesti uue toote turule toomisel teha saab. Ja mis põhiline, IT äri saab teha ka Hiiumaal :). &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/f0d2dfac-5f77-47e6-8e60-abe8d9b9679d?ec=true Andmekaevandamine ja analüütika ning muud põnevat]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtvalt olid kõik loenguvideod ja slaidid väga harivad ning maailmapilti avardavad. Kui kursuse alguses arvasin, et aine tuleb lihtsalt ära teha, siis tegelikult andis see väga palju juurde ja tutvustas erinevaid valdkondi ning nende plusse ja miinuseid. Veelgi enam, iga loeng andis oma mõttetera, mida edaspidi järgida püüan.&lt;br /&gt;
Siinkohal tahaksin välja tuua ka kõige motiveerivamad loengud ja esitajad – Elar Lang ning Oliver Kadak/ Oleg Bogdanov.&lt;br /&gt;
Usun, et kuigi läbitud on TTÜ telekommunikatsiooni eriala, siis otsus EIK-sse arendust õppima tulla, on ainuõige ning soov sellega jätkata kindlasti süvenes.&lt;br /&gt;
&lt;br /&gt;
==Õpingukorralduse küsimused==&lt;br /&gt;
&lt;br /&gt;
===Küsimus 1===&lt;br /&gt;
Kukkusid eksamil läbi. Kaua on võimalik eksamit järele teha? Kellega kokku leppida, et kordussooritust teha? Kuidas toimub kordussooritusele registreerimine? Mis on tähtajad? Kui palju maksab, kui oled riigi finantseeritaval (RF) õppekohalkohal? Kui palju maksab, kui oled tasulisel (OF) õppekohal?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Eksamid peavad olema sooritatud vastava eksamisessiooni lõpupäevaks.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.1]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritus tuleb kokku leppida õppejõuga. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamid Õppekorralduse eeskiri 5.3.7]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritusele registreerimine toimub läbi ÕIS-i.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.8.1]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritust on võimalik teha ülejärgmise semestri punase joone päevani. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.13]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kui oled riigi finantseeritval(RF) õppekohal, siis tasu eksami kordussoorituse eest ei võeta, kui tasulisel(OF), siis 20 EUR. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.7]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/finantsinfo/pangarekvisiidid/ Teenuste tasumäärad 2015/2016 õppeaastal]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Küsimus 2===&lt;br /&gt;
Millised võimalused on minna akadeemilisele puhkusele esimesel õppeaastal? Mis tegevused tuleb selleks teha? Kui pikk on maksimaalne puhkuse aeg? Kuidas toimub puhkuse lõpetamine? Kas puhkuse ajal saab deklareerida õppeaineid? Kas saab teha järele eksameid ja arvestusi?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Esimesel aastal on lubatud akadeemilisele puhkusele minna järgmistel juhtudel: tervislikel põhjustel; aja- või asendusteenistuse läbimiseks; lapse hooldamiseks. Loetletud juhtudel võib seda teha mistahes ajal õppeaasta vältel. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.3]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Maksimaalne puhkuse aeg on 3 aastat, juhul kui põhjuseks lapse hooldamine (ehk lapse sünnist 3 aastaseks saamiseni). &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.3.3]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse taotlemine ja lõpetamine toimub avalduse esitamisega rektori nimele. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.2]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse ajal saab deklareerida aineid, esitades kirjaliku taotluse õppeosakonda hiljemalt semestri punase joone päevaks. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.6]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse ajal on teatud juhtudel võimalik järele teha eksameid ja arvestusi.  &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.6 ja 6.1.5]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Küsimus 3===&lt;br /&gt;
Kui mitme EAP ulatuses tuleb õppekulud osaliselt hüvitada aasta lõpuks, kui esimese semestri lõpuks on olemas X EAPd ja teise semestri lõpuks Y EAPd? Kui suur on teile esitatav arve? X ja Y väärtused võtke allpool olevast tabelist selliselt, et X väärtus vastab teie üliõpilaskoodi eelviimasele numbrile ja Y üliõpilaskoodi viimasele numbrile. (X = 23 EAP ja Y = 23EAP)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1EAP osalise hüvitamise väärtus 50€. Esimese semestri lõpuks tuleb tasuda (27-23)*50 = 200€. Kevadsemestri lõpul lisandub (27+27-46)*50 = 400€. Kokku tuleb esimese aasta lõpuks kokku 12EAP(600€), kuid kuna arved esitatakse järgmise semestri jooksul, siis esimene aasta tuleb reaalselt hüvitada 200€. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/korgharidusreform-kkk/#Teine KKK]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Erialatutvustus 2015 kaugõpe]]&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96336</id>
		<title>User:Mmatson</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96336"/>
		<updated>2015-11-02T20:53:54Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: /* Küsimus 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I020 aine arvestustöö =&lt;br /&gt;
&lt;br /&gt;
Nimi: &amp;lt;b&amp;gt;Mihkel Matson&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Grupp: DK14 kaugõpe&lt;br /&gt;
&lt;br /&gt;
==Essee==&lt;br /&gt;
&lt;br /&gt;
Ainet deklareerides just kuigi suuri ootuseid ei tekkinud. Mind valdas pigem tunne, et tegemist on ainega, mis tuleb lihtsalt ära teha. Tunne eelkõige seepärast, et kõrgharidustee on kord juba läbitud, küll telekommunikatsiooni valdkonnas. Kusagil sisemuses peitis end ehk mõte, et võibolla saab vajalikku infot õppekava ja eeskirjade kohta. Järgnevalt püüangi välja tuua, mis tegelikult juhtus ja mida ma sellest õppisin.&lt;br /&gt;
&lt;br /&gt;
Tuleb tunnistada, et sissejuhatav loeng oli selles aines ka ainus, milles ise kohapeal viibisin. Ühest küljest on see kaugõppe eelis või tegelikult EIK eelis, teisalt ka suurim puudus, kuna süsteemid veel nõnda intelligentsed pole, et suudaks küsimustele vastata. Selles loengus sai esiteks ülevaate EIK-st, erialast ja mida antud õppekava kokkuvõttes annab. Teiseks oli küllaltki palju infot ka üliõpilasesindusest ning selle funktsioonist ja meelde jäi ka võimalus astuda robootikaringi. Tänaseks veel osavõtnud pole, kuid plaan on seda teha.&lt;br /&gt;
Olulised märksõnad, nagu ka teistes ülikoolides, on punase joone päev ja see, et kogu info on kättesaadav elektroonselt Õppeinfosüsteemist(ÕIS). Mis kõige olulisem, tuleb täita vähemalt 27EAP ja õpi võimalikult vara ja palju. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/2548034a-9251-4b0a-9349-6aa3d3bbf493 Sissejuhatav loeng]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teises loengus oli põnev kuulda IT-s naisena töötamisest ja läbilöömisest. Tiina Seeman tõi näiteid IT juhtimise köögipoolelt, andes näiteid ja võrdlusi erinevate meeskondade kooslusest ja nende edukast juhtimisest. Hea näitena olid väljatoodud projektide põhilised läbikukkumise põhjused – üks kõige olulisem on lõppkasutaja kaasatus. Igapäeva tööst võin samamoodi sellele paralleeli tuua, et kaasamine on oluline. Aga oluline on siin ka optimaalne kaasatus. Kaasamine aitab näiteks arendajal mõista, mis on lõppkasutaja tegelik vajadus ja vastupidi saab infot, millised on piirangud või aeganõudvad tegevused. Õppisin seda, et kordamine on tarkuse ema ja järgnevad mõisted on projektis kokku seotud kolmnurgana – aeg, skoop, raha, kvaliteet. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/e2cded4a-d03a-4ed5-95e9-de354ce58f36 IT projektide juhtimine ]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kolmandas loengus rääkis Elar Lang õppimisest üldiselt. Hea näitena oli välja toodud õppimine Polütehnikumis ja EIK-s. Oluline on, et õppekavad ja –ained oleksid päevakohased, muidu puudub seos tänapäevaga ja raske on leida motivatsiooni, et õppida vananenud õppekava järgi. Ma usun, et see on tänapäeval muutumas, kuid veel paljud gümnaasiumid kasutavad nn “tuupimise” meetodit. Siit jäi meelde ka vaatenurk, et kool on vaid sisukord – mis olemuselt võiks olla tõene hüpotees. Antud loengust õppisin seda, et tuleb keskenduda võimalustele ja mitte probleemidele ning tuleb õppida õppima ja panna paika eesmärk.&lt;br /&gt;
Üks õpetlik nüanss, mida kindlasti proovin rakendada, on teha koolist nn projekt ja lisada see kõik ühte dokumenti. See annab ülevaate tehtud asjadest, motiveerib ning innustab ja hoiab eesmärgi silme ees. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Õppimisest. Omast kogemusest.]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neljas loeng oli minu jaoks mõneti tagasivaade, kuna Taavi Tuisk rääkis oma kogemustest süsteemiadministraatorina. Tagasivaade seetõttu, et olen ka ise ca 5 aastat tegelenud varasemalt süsteemide administreerimisega, küll rohkem telekommunikatsiooni valdkonnas, aga äratundmist oli palju. Olulisem selle positsiooni juures hea stressitaluvus pingelistes olukordades ning samuti hea suhtlemisoskus ning IT poolelt tuleb koostööd teha just arendajatel ja süsteemihalduritel, see toob efektiivsuse. Mida meelde jätta – kliendi andmeid ära puutu! &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Millega tegeleb süsteemihaldur]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viiendas loengus räägiti testimisest. Kert Suvi lükkas ümber müüdi, et testimine on kulukas, tuues näiteks palgad ja tunnihinnad, mis võrreldavad arendajate ja analüütikutega. Enim köitis mind testimise kirjeldamine, kus toodi välja testimise eri tahud ja võimalused - näiteks hiireklikkide automatiseerimine ja rahvusvaheline testimine. Testimise vajadusest saan aru ka täna, olles projektijuhi rollis, kuid tutvustav loeng veel suurt innustust ei andnud. Samas õppisin, et arendajana tuleb kindlasti palju rõhku panna kvaliteetsele ja testitud koodile. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/00379be2-bb86-4935-9b4f-aad720ee4cc0?ec=true Testimine ja tarkvara kvaliteet]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kuues loeng oli huvitav ja võttis kokku kõik eelnevad teemad, aga lisas ka nüansi projektijuhtimisest ja arendaja kõrvaltegevustest. Põnev oli slaid võimalikest töökohtadest peale IT arendaja õppekava edukat läbimist ja hea ülevaate sai konsultatsiooniäri finantsmudelist, mis tegelikult polegi nii &amp;quot;roosiline&amp;quot; kui arvata võiks. Kõlama jäi fakt, et tarkvara kui teenusena müük on tõenäoliselt kasumlikum kui arendustundide müük - selle näiteks võib tuua võrdluse Transferwise ja Nortal. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/45c455bb-ef01-4f3e-a722-5ba40ecbe8ee?ec=true Kuidas tarkvaraarenduse maailmas ellu jääda]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seitsmes loeng oli võrreldes eelmistega ehk kõige huvitavam. Nimelt Tanel Unt kirjeldas enda ettevõtluskogemust. Esimese ettevõtte lõi ta alaealisena, kuid selle skoop oli liiga suur ja tuli esimene läbikukkumine. Mida antud loengust õppida, oli see, et peale esimest ebaõnnestumist, tuleb uue projektiga juba varakult mõõdikud paika panna ja aru saada, mil on aeg lõpetada. Motiveeriva tõuke andis siin esitaja teekond praeguse ettevõtte arenduseni, et kõike seda saab teha ka põhitöö kõrvalt. Jäi kõlama mõte, et oluline on tahtmine ja varane alustamine.&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/95e9f82e-debe-4f6c-833a-5dabb639600d?ec=true Oma IT ettevõte -- GPS asukohamääramisteenuse Navirec näitel]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaheksas loeng rääkis andmeanalüüsi erinevatest tahkudest ja võimalustest ja pani tõsiselt kuulama. Andmeanalüüs ise tundub väliselt väga ilus ja kahtlemata vajalik, kuid taustsüsteem seal taga tundub keeruline. Selles osas oleks soovinud reaalset näidet või näiteid näha. Need esitaja sõnul pealiskaudsed näited, andsid hea ülevaate, mida kõike ka suhteliselt väheste andmete või ka täiesti uue toote turule toomisel teha saab. Ja mis põhiline, IT äri saab teha ka Hiiumaal :). &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/f0d2dfac-5f77-47e6-8e60-abe8d9b9679d?ec=true Andmekaevandamine ja analüütika ning muud põnevat]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtvalt olid kõik loenguvideod ja slaidid väga harivad ning maailmapilti avardavad. Kui kursuse alguses arvasin, et aine tuleb lihtsalt ära teha, siis tegelikult andis see väga palju juurde ja tutvustas erinevaid valdkondi ning nende plusse ja miinuseid. Veelgi enam, iga loeng andis oma mõttetera, mida edaspidi järgida püüan.&lt;br /&gt;
Siinkohal tahaksin välja tuua ka kõige motiveerivamad loengud ja esitajad – Elar Lang ning Oliver Kadak/ Oleg Bogdanov.&lt;br /&gt;
Usun, et kuigi läbitud on TTÜ telekommunikatsiooni eriala, siis otsus EIK-sse arendust õppima tulla, on ainuõige ning soov sellega jätkata kindlasti süvenes.&lt;br /&gt;
&lt;br /&gt;
==Õpingukorralduse küsimused==&lt;br /&gt;
&lt;br /&gt;
===Küsimus 1===&lt;br /&gt;
Kukkusid eksamil läbi. Kaua on võimalik eksamit järele teha? Kellega kokku leppida, et kordussooritust teha? Kuidas toimub kordussooritusele registreerimine? Mis on tähtajad? Kui palju maksab, kui oled riigi finantseeritaval (RF) õppekohalkohal? Kui palju maksab, kui oled tasulisel (OF) õppekohal?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Eksamid peavad olema sooritatud vastava eksamisessiooni lõpupäevaks.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.1]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritus tuleb kokku leppida õppejõuga. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamid Õppekorralduse eeskiri 5.3.7]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritusele registreerimine toimub läbi ÕIS-i.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.8.1]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritust on võimalik teha ülejärgmise semestri punase joone päevani. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.13]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kui oled riigi finantseeritval(RF) õppekohal, siis tasu eksami kordussoorituse eest ei võeta, kui tasulisel(OF), siis 20 EUR. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.7]&amp;lt;/ref&amp;gt;, &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/finantsinfo/pangarekvisiidid/ Teenuste tasumäärad 2015/2016 õppeaastal]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Küsimus 2===&lt;br /&gt;
Millised võimalused on minna akadeemilisele puhkusele esimesel õppeaastal? Mis tegevused tuleb selleks teha? Kui pikk on maksimaalne puhkuse aeg? Kuidas toimub puhkuse lõpetamine? Kas puhkuse ajal saab deklareerida õppeaineid? Kas saab teha järele eksameid ja arvestusi?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Esimesel aastal on lubatud akadeemilisele puhkusele minna järgmistel juhtudel: tervislikel põhjustel; aja- või asendusteenistuse läbimiseks; lapse hooldamiseks. Loetletud juhtudel võib seda teha mistahes ajal õppeaasta vältel. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.3]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Maksimaalne puhkuse aeg on 3 aastat, juhul kui põhjuseks lapse hooldamine (ehk lapse sünnist 3 aastaseks saamiseni). &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.3.3]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse taotlemine ja lõpetamine toimub avalduse esitamisega rektori nimele. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.2]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse ajal saab deklareerida aineid, esitades kirjaliku taotluse õppeosakonda hiljemalt semestri punase joone päevaks. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.6]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse ajal on teatud juhtudel võimalik järele teha eksameid ja arvestusi.  &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.6 ja 6.1.5]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Küsimus 3===&lt;br /&gt;
Kui mitme EAP ulatuses tuleb õppekulud osaliselt hüvitada aasta lõpuks, kui esimese semestri lõpuks on olemas X EAPd ja teise semestri lõpuks Y EAPd? Kui suur on teile esitatav arve? X ja Y väärtused võtke allpool olevast tabelist selliselt, et X väärtus vastab teie üliõpilaskoodi eelviimasele numbrile ja Y üliõpilaskoodi viimasele numbrile. (X = 23 EAP ja Y = 23EAP)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1EAP osalise hüvitamise väärtus 50€. Esimese semestri lõpuks tuleb tasuda (27-23)*50 = 200€. Kevadsemestri lõpul lisandub (27+27-46)*50 = 400€. Kokku tuleb esimese aasta lõpuks kokku 12EAP(600€), kuid kuna arved esitatakse järgmise semestri jooksul, siis esimene aasta tuleb reaalselt hüvitada 200€. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/korgharidusreform-kkk/#Teine KKK]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Erialatutvustus 2015 kaugõpe]]&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96334</id>
		<title>User:Mmatson</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96334"/>
		<updated>2015-11-02T20:50:10Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I020 aine arvestustöö =&lt;br /&gt;
&lt;br /&gt;
Nimi: &amp;lt;b&amp;gt;Mihkel Matson&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Grupp: DK14 kaugõpe&lt;br /&gt;
&lt;br /&gt;
==Essee==&lt;br /&gt;
&lt;br /&gt;
Ainet deklareerides just kuigi suuri ootuseid ei tekkinud. Mind valdas pigem tunne, et tegemist on ainega, mis tuleb lihtsalt ära teha. Tunne eelkõige seepärast, et kõrgharidustee on kord juba läbitud, küll telekommunikatsiooni valdkonnas. Kusagil sisemuses peitis end ehk mõte, et võibolla saab vajalikku infot õppekava ja eeskirjade kohta. Järgnevalt püüangi välja tuua, mis tegelikult juhtus ja mida ma sellest õppisin.&lt;br /&gt;
&lt;br /&gt;
Tuleb tunnistada, et sissejuhatav loeng oli selles aines ka ainus, milles ise kohapeal viibisin. Ühest küljest on see kaugõppe eelis või tegelikult EIK eelis, teisalt ka suurim puudus, kuna süsteemid veel nõnda intelligentsed pole, et suudaks küsimustele vastata. Selles loengus sai esiteks ülevaate EIK-st, erialast ja mida antud õppekava kokkuvõttes annab. Teiseks oli küllaltki palju infot ka üliõpilasesindusest ning selle funktsioonist ja meelde jäi ka võimalus astuda robootikaringi. Tänaseks veel osavõtnud pole, kuid plaan on seda teha.&lt;br /&gt;
Olulised märksõnad, nagu ka teistes ülikoolides, on punase joone päev ja see, et kogu info on kättesaadav elektroonselt Õppeinfosüsteemist(ÕIS). Mis kõige olulisem, tuleb täita vähemalt 27EAP ja õpi võimalikult vara ja palju. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/2548034a-9251-4b0a-9349-6aa3d3bbf493 Sissejuhatav loeng]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teises loengus oli põnev kuulda IT-s naisena töötamisest ja läbilöömisest. Tiina Seeman tõi näiteid IT juhtimise köögipoolelt, andes näiteid ja võrdlusi erinevate meeskondade kooslusest ja nende edukast juhtimisest. Hea näitena olid väljatoodud projektide põhilised läbikukkumise põhjused – üks kõige olulisem on lõppkasutaja kaasatus. Igapäeva tööst võin samamoodi sellele paralleeli tuua, et kaasamine on oluline. Aga oluline on siin ka optimaalne kaasatus. Kaasamine aitab näiteks arendajal mõista, mis on lõppkasutaja tegelik vajadus ja vastupidi saab infot, millised on piirangud või aeganõudvad tegevused. Õppisin seda, et kordamine on tarkuse ema ja järgnevad mõisted on projektis kokku seotud kolmnurgana – aeg, skoop, raha, kvaliteet. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/e2cded4a-d03a-4ed5-95e9-de354ce58f36 IT projektide juhtimine ]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kolmandas loengus rääkis Elar Lang õppimisest üldiselt. Hea näitena oli välja toodud õppimine Polütehnikumis ja EIK-s. Oluline on, et õppekavad ja –ained oleksid päevakohased, muidu puudub seos tänapäevaga ja raske on leida motivatsiooni, et õppida vananenud õppekava järgi. Ma usun, et see on tänapäeval muutumas, kuid veel paljud gümnaasiumid kasutavad nn “tuupimise” meetodit. Siit jäi meelde ka vaatenurk, et kool on vaid sisukord – mis olemuselt võiks olla tõene hüpotees. Antud loengust õppisin seda, et tuleb keskenduda võimalustele ja mitte probleemidele ning tuleb õppida õppima ja panna paika eesmärk.&lt;br /&gt;
Üks õpetlik nüanss, mida kindlasti proovin rakendada, on teha koolist nn projekt ja lisada see kõik ühte dokumenti. See annab ülevaate tehtud asjadest, motiveerib ning innustab ja hoiab eesmärgi silme ees. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Õppimisest. Omast kogemusest.]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neljas loeng oli minu jaoks mõneti tagasivaade, kuna Taavi Tuisk rääkis oma kogemustest süsteemiadministraatorina. Tagasivaade seetõttu, et olen ka ise ca 5 aastat tegelenud varasemalt süsteemide administreerimisega, küll rohkem telekommunikatsiooni valdkonnas, aga äratundmist oli palju. Olulisem selle positsiooni juures hea stressitaluvus pingelistes olukordades ning samuti hea suhtlemisoskus ning IT poolelt tuleb koostööd teha just arendajatel ja süsteemihalduritel, see toob efektiivsuse. Mida meelde jätta – kliendi andmeid ära puutu! &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Millega tegeleb süsteemihaldur]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viiendas loengus räägiti testimisest. Kert Suvi lükkas ümber müüdi, et testimine on kulukas, tuues näiteks palgad ja tunnihinnad, mis võrreldavad arendajate ja analüütikutega. Enim köitis mind testimise kirjeldamine, kus toodi välja testimise eri tahud ja võimalused - näiteks hiireklikkide automatiseerimine ja rahvusvaheline testimine. Testimise vajadusest saan aru ka täna, olles projektijuhi rollis, kuid tutvustav loeng veel suurt innustust ei andnud. Samas õppisin, et arendajana tuleb kindlasti palju rõhku panna kvaliteetsele ja testitud koodile. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/00379be2-bb86-4935-9b4f-aad720ee4cc0?ec=true Testimine ja tarkvara kvaliteet]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kuues loeng oli huvitav ja võttis kokku kõik eelnevad teemad, aga lisas ka nüansi projektijuhtimisest ja arendaja kõrvaltegevustest. Põnev oli slaid võimalikest töökohtadest peale IT arendaja õppekava edukat läbimist ja hea ülevaate sai konsultatsiooniäri finantsmudelist, mis tegelikult polegi nii &amp;quot;roosiline&amp;quot; kui arvata võiks. Kõlama jäi fakt, et tarkvara kui teenusena müük on tõenäoliselt kasumlikum kui arendustundide müük - selle näiteks võib tuua võrdluse Transferwise ja Nortal. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/45c455bb-ef01-4f3e-a722-5ba40ecbe8ee?ec=true Kuidas tarkvaraarenduse maailmas ellu jääda]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seitsmes loeng oli võrreldes eelmistega ehk kõige huvitavam. Nimelt Tanel Unt kirjeldas enda ettevõtluskogemust. Esimese ettevõtte lõi ta alaealisena, kuid selle skoop oli liiga suur ja tuli esimene läbikukkumine. Mida antud loengust õppida, oli see, et peale esimest ebaõnnestumist, tuleb uue projektiga juba varakult mõõdikud paika panna ja aru saada, mil on aeg lõpetada. Motiveeriva tõuke andis siin esitaja teekond praeguse ettevõtte arenduseni, et kõike seda saab teha ka põhitöö kõrvalt. Jäi kõlama mõte, et oluline on tahtmine ja varane alustamine.&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/95e9f82e-debe-4f6c-833a-5dabb639600d?ec=true Oma IT ettevõte -- GPS asukohamääramisteenuse Navirec näitel]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaheksas loeng rääkis andmeanalüüsi erinevatest tahkudest ja võimalustest ja pani tõsiselt kuulama. Andmeanalüüs ise tundub väliselt väga ilus ja kahtlemata vajalik, kuid taustsüsteem seal taga tundub keeruline. Selles osas oleks soovinud reaalset näidet või näiteid näha. Need esitaja sõnul pealiskaudsed näited, andsid hea ülevaate, mida kõike ka suhteliselt väheste andmete või ka täiesti uue toote turule toomisel teha saab. Ja mis põhiline, IT äri saab teha ka Hiiumaal :). &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/f0d2dfac-5f77-47e6-8e60-abe8d9b9679d?ec=true Andmekaevandamine ja analüütika ning muud põnevat]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtvalt olid kõik loenguvideod ja slaidid väga harivad ning maailmapilti avardavad. Kui kursuse alguses arvasin, et aine tuleb lihtsalt ära teha, siis tegelikult andis see väga palju juurde ja tutvustas erinevaid valdkondi ning nende plusse ja miinuseid. Veelgi enam, iga loeng andis oma mõttetera, mida edaspidi järgida püüan.&lt;br /&gt;
Siinkohal tahaksin välja tuua ka kõige motiveerivamad loengud ja esitajad – Elar Lang ning Oliver Kadak/ Oleg Bogdanov.&lt;br /&gt;
Usun, et kuigi läbitud on TTÜ telekommunikatsiooni eriala, siis otsus EIK-sse arendust õppima tulla, on ainuõige ning soov sellega jätkata kindlasti süvenes.&lt;br /&gt;
&lt;br /&gt;
==Õpingukorralduse küsimused==&lt;br /&gt;
&lt;br /&gt;
===Küsimus 1===&lt;br /&gt;
Kukkusid eksamil läbi. Kaua on võimalik eksamit järele teha? Kellega kokku leppida, et kordussooritust teha? Kuidas toimub kordussooritusele registreerimine? Mis on tähtajad? Kui palju maksab, kui oled riigi finantseeritaval (RF) õppekohalkohal? Kui palju maksab, kui oled tasulisel (OF) õppekohal?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus&lt;br /&gt;
Eksamid peavad olema sooritatud vastava eksamisessiooni lõpupäevaks.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.1]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritus tuleb kokku leppida õppejõuga. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamid Õppekorralduse eeskiri 5.3.7]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritusele registreerimine toimub läbi ÕIS-i.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.8.1]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kordussooritust on võimalik teha ülejärgmise semestri punase joone päevani. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.13]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Kui oled riigi finantseeritval(RF) õppekohal, siis tasu eksami kordussoorituse eest ei võeta, kui tasulisel(OF), siis 20 EUR. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.7]&amp;lt;/ref&amp;gt;, &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/finantsinfo/pangarekvisiidid/ Teenuste tasumäärad 2015/2016 õppeaastal]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Küsimus 2===&lt;br /&gt;
Millised võimalused on minna akadeemilisele puhkusele esimesel õppeaastal? Mis tegevused tuleb selleks teha? Kui pikk on maksimaalne puhkuse aeg? Kuidas toimub puhkuse lõpetamine? Kas puhkuse ajal saab deklareerida õppeaineid? Kas saab teha järele eksameid ja arvestusi?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Esimesel aastal on lubatud akadeemilisele puhkusele minna järgmistel juhtudel: tervislikel põhjustel; aja- või asendusteenistuse läbimiseks; lapse hooldamiseks. Loetletud juhtudel võib seda teha mistahes ajal õppeaasta vältel. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.3]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Maksimaalne puhkuse aeg on 3 aastat, juhul kui põhjuseks lapse hooldamine (ehk lapse sünnist 3 aastaseks saamiseni). &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.3.3]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse taotlemine ja lõpetamine toimub avalduse esitamisega rektori nimele. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.2]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse ajal saab deklareerida aineid, esitades kirjaliku taotluse õppeosakonda hiljemalt semestri punase joone päevaks. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.6]&amp;lt;/ref&amp;gt;&lt;br /&gt;
Puhkuse ajal on teatud juhtudel võimalik järele teha eksameid ja arvestusi.  &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#opingutepeatamine Akadeemiline puhkus 6.1.6 ja 6.1.5]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Küsimus 3===&lt;br /&gt;
Kui mitme EAP ulatuses tuleb õppekulud osaliselt hüvitada aasta lõpuks, kui esimese semestri lõpuks on olemas X EAPd ja teise semestri lõpuks Y EAPd? Kui suur on teile esitatav arve? X ja Y väärtused võtke allpool olevast tabelist selliselt, et X väärtus vastab teie üliõpilaskoodi eelviimasele numbrile ja Y üliõpilaskoodi viimasele numbrile. (X = 23 EAP ja Y = 23EAP)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1EAP osalise hüvitamise väärtus 50€. Esimese semestri lõpuks tuleb tasuda (27-23)*50 = 200€. Kevadsemestri lõpul lisandub (27+27-46)*50 = 400€. Kokku tuleb esimese aasta lõpuks kokku 12EAP(600€), kuid kuna arved esitatakse järgmise semestri jooksul, siis esimene aasta tuleb reaalselt hüvitada 200€. &amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/korgharidusreform-kkk/#Teine KKK]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Erialatutvustus 2015 kaugõpe]]&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96289</id>
		<title>User:Mmatson</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Mmatson&amp;diff=96289"/>
		<updated>2015-11-02T14:57:07Z</updated>

		<summary type="html">&lt;p&gt;Mmatson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= I020 aine arvestustöö =&lt;br /&gt;
&lt;br /&gt;
Nimi: &amp;lt;b&amp;gt;Mihkel Matson&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Grupp: DK14 kaugõpe&lt;br /&gt;
&lt;br /&gt;
==Essee==&lt;br /&gt;
&lt;br /&gt;
Ainet deklareerides just kuigi suuri ootuseid ei tekkinud. Mind valdas pigem tunne, et tegemist on ainega, mis tuleb lihtsalt ära teha. Tunne eelkõige seepärast, et kõrgharidustee on kord juba läbitud, küll telekommunikatsiooni valdkonnas. Kusagil sisemuses peitis end ehk mõte, et võibolla saab vajalikku infot õppekava ja eeskirjade kohta. Järgnevalt püüangi välja tuua, mis tegelikult juhtus ja mida ma sellest õppisin.&lt;br /&gt;
&lt;br /&gt;
Tuleb tunnistada, et sissejuhatav loeng oli selles aines ka ainus, milles ise kohapeal viibisin. Ühest küljest on see kaugõppe eelis või tegelikult EIK eelis, teisalt ka suurim puudus, kuna süsteemid veel nõnda intelligentsed pole, et suudaks küsimustele vastata. Selles loengus sai esiteks ülevaate EIK-st, erialast ja mida antud õppekava kokkuvõttes annab. Teiseks oli küllaltki palju infot ka üliõpilasesindusest ning selle funktsioonist ja meelde jäi ka võimalus astuda robootikaringi. Tänaseks veel osavõtnud pole, kuid plaan on seda teha.&lt;br /&gt;
Olulised märksõnad, nagu ka teistes ülikoolides, on punase joone päev ja see, et kogu info on kättesaadav elektroonselt Õppeinfosüsteemist(ÕIS). Mis kõige olulisem, tuleb täita vähemalt 27EAP ja õpi võimalikult vara ja palju. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/2548034a-9251-4b0a-9349-6aa3d3bbf493 Sissejuhatav loeng]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teises loengus oli põnev kuulda IT-s naisena töötamisest ja läbilöömisest. Tiina Seeman tõi näiteid IT juhtimise köögipoolelt, andes näiteid ja võrdlusi erinevate meeskondade kooslusest ja nende edukast juhtimisest. Hea näitena olid väljatoodud projektide põhilised läbikukkumise põhjused – üks kõige olulisem on lõppkasutaja kaasatus. Igapäeva tööst võin samamoodi sellele paralleeli tuua, et kaasamine on oluline. Aga oluline on siin ka optimaalne kaasatus. Kaasamine aitab näiteks arendajal mõista, mis on lõppkasutaja tegelik vajadus ja vastupidi saab infot, millised on piirangud või aeganõudvad tegevused. Õppisin seda, et kordamine on tarkuse ema ja järgnevad mõisted on projektis kokku seotud kolmnurgana – aeg, skoop, raha, kvaliteet. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/e2cded4a-d03a-4ed5-95e9-de354ce58f36 IT projektide juhtimine ]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kolmandas loengus rääkis Elar Lang õppimisest üldiselt. Hea näitena oli välja toodud õppimine Polütehnikumis ja EIK-s. Oluline on, et õppekavad ja –ained oleksid päevakohased, muidu puudub seos tänapäevaga ja raske on leida motivatsiooni, et õppida vananenud õppekava järgi. Ma usun, et see on tänapäeval muutumas, kuid veel paljud gümnaasiumid kasutavad nn “tuupimise” meetodit. Siit jäi meelde ka vaatenurk, et kool on vaid sisukord – mis olemuselt võiks olla tõene hüpotees. Antud loengust õppisin seda, et tuleb keskenduda võimalustele ja mitte probleemidele ning tuleb õppida õppima ja panna paika eesmärk.&lt;br /&gt;
Üks õpetlik nüanss, mida kindlasti proovin rakendada, on teha koolist nn projekt ja lisada see kõik ühte dokumenti. See annab ülevaate tehtud asjadest, motiveerib ning innustab ja hoiab eesmärgi silme ees. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Õppimisest. Omast kogemusest.]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neljas loeng oli minu jaoks mõneti tagasivaade, kuna Taavi Tuisk rääkis oma kogemustest süsteemiadministraatorina. Tagasivaade seetõttu, et olen ka ise ca 5 aastat tegelenud varasemalt süsteemide administreerimisega, küll rohkem telekommunikatsiooni valdkonnas, aga äratundmist oli palju. Olulisem selle positsiooni juures hea stressitaluvus pingelistes olukordades ning samuti hea suhtlemisoskus ning IT poolelt tuleb koostööd teha just arendajatel ja süsteemihalduritel, see toob efektiivsuse. Mida meelde jätta – kliendi andmeid ära puutu! &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/ce07046a-a6aa-41bb-8fe8-9f256a6d627f?ec=true Millega tegeleb süsteemihaldur]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viiendas loengus räägiti testimisest. Kert Suvi lükkas ümber müüdi, et testimine on kulukas, tuues näiteks palgad ja tunnihinnad, mis võrreldavad arendajate ja analüütikutega. Enim köitis mind testimise kirjeldamine, kus toodi välja testimise eri tahud ja võimalused - näiteks hiireklikkide automatiseerimine ja rahvusvaheline testimine. Testimise vajadusest saan aru ka täna, olles projektijuhi rollis, kuid tutvustav loeng veel suurt innustust ei andnud. Samas õppisin, et arendajana tuleb kindlasti palju rõhku panna kvaliteetsele ja testitud koodile. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/00379be2-bb86-4935-9b4f-aad720ee4cc0?ec=true Testimine ja tarkvara kvaliteet]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kuues loeng oli huvitav ja võttis kokku kõik eelnevad teemad, aga lisas ka nüansi projektijuhtimisest ja arendaja kõrvaltegevustest. Põnev oli slaid võimalikest töökohtadest peale IT arendaja õppekava edukat läbimist ja hea ülevaate sai konsultatsiooniäri finantsmudelist, mis tegelikult polegi nii &amp;quot;roosiline&amp;quot; kui arvata võiks. Kõlama jäi fakt, et tarkvara kui teenusena müük on tõenäoliselt kasumlikum kui arendustundide müük - selle näiteks võib tuua võrdluse Transferwise ja Nortal. &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/45c455bb-ef01-4f3e-a722-5ba40ecbe8ee?ec=true Kuidas tarkvaraarenduse maailmas ellu jääda]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Seitsmes loeng oli võrreldes eelmistega ehk kõige huvitavam. Nimelt Tanel Unt kirjeldas enda ettevõtluskogemust. Esimese ettevõtte lõi ta alaealisena, kuid selle skoop oli liiga suur ja tuli esimene läbikukkumine. Mida antud loengust õppida, oli see, et peale esimest ebaõnnestumist, tuleb uue projektiga juba varakult mõõdikud paika panna ja aru saada, mil on aeg lõpetada. Motiveeriva tõuke andis siin esitaja teekond praeguse ettevõtte arenduseni, et kõike seda saab teha ka põhitöö kõrvalt. Jäi kõlama mõte, et oluline on tahtmine ja varane alustamine.&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/95e9f82e-debe-4f6c-833a-5dabb639600d?ec=true Oma IT ettevõte -- GPS asukohamääramisteenuse Navirec näitel]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kaheksas loeng rääkis andmeanalüüsi erinevatest tahkudest ja võimalustest ja pani tõsiselt kuulama. Andmeanalüüs ise tundub väliselt väga ilus ja kahtlemata vajalik, kuid taustsüsteem seal taga tundub keeruline. Selles osas oleks soovinud reaalset näidet või näiteid näha. Need esitaja sõnul pealiskaudsed näited, andsid hea ülevaate, mida kõike ka suhteliselt väheste andmete või ka täiesti uue toote turule toomisel teha saab. Ja mis põhiline, IT äri saab teha ka Hiiumaal :). &amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/f0d2dfac-5f77-47e6-8e60-abe8d9b9679d?ec=true Andmekaevandamine ja analüütika ning muud põnevat]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtvalt olid kõik loenguvideod ja slaidid väga harivad ning maailmapilti avardavad. Kui kursuse alguses arvasin, et aine tuleb lihtsalt ära teha, siis tegelikult andis see väga palju juurde ja tutvustas erinevaid valdkondi ning nende plusse ja miinuseid. Veelgi enam, iga loeng andis oma mõttetera, mida edaspidi järgida püüan.&lt;br /&gt;
Siinkohal tahaksin välja tuua ka kõige motiveerivamad loengud ja esitajad – Elar Lang ning Oliver Kadak/ Oleg Bogdanov.&lt;br /&gt;
Usun, et kuigi läbitud on TTÜ telekommunikatsiooni eriala, siis otsus EIK-sse arendust õppima tulla, on ainuõige ning soov sellega jätkata kindlasti süvenes.&lt;br /&gt;
&lt;br /&gt;
==Õpingukorralduse küsimused==&lt;br /&gt;
&lt;br /&gt;
===Küsimus 1===&lt;br /&gt;
Kukkusid eksamil läbi. Kaua on võimalik eksamit järele teha? Kellega kokku leppida, et kordussooritust teha? Kuidas toimub kordussooritusele registreerimine? Mis on tähtajad? Kui palju maksab, kui oled riigi finantseeritaval (RF) õppekohalkohal? Kui palju maksab, kui oled tasulisel (OF) õppekohal?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Eksamid peavad olema sooritatud vastava eksamisessiooni lõpupäevaks.&lt;br /&gt;
Kordussooritus tuleb kokku leppida õppejõuga.&lt;br /&gt;
Kordussooritusele registreerimine toimub läbi ÕIS-i.&lt;br /&gt;
Kordussooritust on võimalik teha ülejärgmise semestri punase joone päevani (p 5.2.13)&lt;br /&gt;
Kui oled riigi finantseeritval(RF) õppekohal, siis tasu eksami kordussoorituse eest ei võeta, kui tasulisel(OF), siis 20 EUR.&lt;br /&gt;
&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#eksamitekorraldus Õppekorralduse eeskiri 5.2.13]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Küsimus 2===&lt;br /&gt;
Millised võimalused on minna akadeemilisele puhkusele esimesel õppeaastal? Mis tegevused tuleb selleks teha? Kui pikk on maksimaalne puhkuse aeg? Kuidas toimub puhkuse lõpetamine? Kas puhkuse ajal saab deklareerida õppeaineid? Kas saab teha järele eksameid ja arvestusi?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Esimesel aastal on lubatud akadeemilisele puhkusele minna järgmistel juhtudel: tervislikel põhjustel; aja- või asendusteenistuse läbimiseks; lapse hooldamiseks. Loetletud juhtudel võib seda teha mistahes ajal õppeaasta vältel. Maksimaalne puhkuse aeg on 3 aastat, juhul kui põhjuseks lapse hooldamine – lapse sünnist 3 aastaseks saamiseni. Puhkuse lõpetamine toimub avalduse esitamisega rektori nimele. Puhkuse ajal saab deklareerida aineid, esitades kirjaliku taotluse õppeosakonda hiljemalt semestri punase joone päevaks. Puhkuse ajal saab järele teha eksameid ja arvestusi.  &lt;br /&gt;
&lt;br /&gt;
===Küsimus 3===&lt;br /&gt;
Kui mitme EAP ulatuses tuleb õppekulud osaliselt hüvitada aasta lõpuks, kui esimese semestri lõpuks on olemas X EAPd ja teise semestri lõpuks Y EAPd? Kui suur on teile esitatav arve? X ja Y väärtused võtke allpool olevast tabelist selliselt, et X väärtus vastab teie üliõpilaskoodi eelviimasele numbrile ja Y üliõpilaskoodi viimasele numbrile. (X = 23 EAP ja Y = 23EAP)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vastus:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1EAP osalise hüvitamise väärtus 50€. Esimese semestri lõpuks tuleb tasuda (27-23)*50 = 200€. Kevadsemestri lõpul lisandub (27+27-46)*50 = 400€. Kokku tuleb esimese aasta lõpuks kokku 12EAP(600€), kuid kuna arved esitatakse järgmise semestri jooksul, siis esimene aasta tuleb reaalselt hüvitada 200€.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Erialatutvustus 2015 kaugõpe]]&lt;/div&gt;</summary>
		<author><name>Mmatson</name></author>
	</entry>
</feed>