<?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=Kkilgi</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=Kkilgi"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php/Special:Contributions/Kkilgi"/>
	<updated>2026-05-09T13:57:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_HomeLibrary&amp;diff=130961</id>
		<title>Meeskond: HomeLibrary</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_HomeLibrary&amp;diff=130961"/>
		<updated>2018-05-30T18:42:25Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kkilgi</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_2018&amp;diff=130960</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</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_2018&amp;diff=130960"/>
		<updated>2018-05-30T18:39:17Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* 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; 2018=&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 API2/ASP.NET Core 2.0/WCF 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;
&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_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#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;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&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_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&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_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&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), paigaldusjuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#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;
* Mobiilirakendused/Angularis/reactis loodud 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;
* Korraliku arhitektuuriga kirjutatud kood&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;
===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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)&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;
Kaitsmisele tuleks registreerida järjest(st iga järgmine lisab vajaliku 15min ajaakna) ja suvalisis kellaaegasid ei hakka kuhugi vahele kirjutama&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;05.06.2018&#039;&#039;&#039;&lt;br /&gt;
*15:00 - ..&lt;br /&gt;
*15:15 - ..&lt;br /&gt;
*15:30 - ..&lt;br /&gt;
&lt;br /&gt;
=Teemad 2018 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;
&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 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
Lõpptoote [http://enos.itcollege.ee/~sjaanus/c/Airport_solution.zip link]&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Margus Kildemaa&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VR2_div Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava (lahkunud liige)&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
Lähtekood: [http://enos.itcollege.ee/~luksti/CSharp/CSharpResto.zip CSharpResto]&lt;br /&gt;
&lt;br /&gt;
Retsensioonid:&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&#039;&#039;&#039;Projekt:&#039;&#039;&#039; https://github.com/sikumiku/TaisKohtApi  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode:&#039;&#039;&#039; https://github.com/sikumiku/TaisKohtApi/archive/61438e187a1a972410c8a3bc6274d69489d00aa6.zip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud XML retsensioon:&#039;&#039;&#039; TODO &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meie kirjutatud veebiteenuse ja klientrakenduse retsensioon:&#039;&#039;&#039; https://wiki.itcollege.ee/index.php/Talk:MOT, TODO&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lõpptoode: &#039;&#039;&#039;  http://enos.itcollege.ee/~mmeizner/MOT/&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_HomeLibrary&amp;diff=130605</id>
		<title>Meeskond: HomeLibrary</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_HomeLibrary&amp;diff=130605"/>
		<updated>2018-05-14T17:52:22Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Rakenduse funktsionaalsus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Liikmed=&lt;br /&gt;
*Karit Kilgi&lt;br /&gt;
=Analüüs=&lt;br /&gt;
==Kirjeldus==&lt;br /&gt;
Rakenduse eesmärk on võimaldada kodukasutajal oma raamatutest parem ülevaade saada. Nimelt annab rakendus võimaluse märkida üles kõik raamatud, mis kasutajal kodus on, nende nimekirja vajadusel sirvida, uuendada ja kustutada.&lt;br /&gt;
==Rakenduse funktsionaalsus==&lt;br /&gt;
===Kasutaja===&lt;br /&gt;
* Saab lisada nimekirja raamatuid ning täpsustavaid detaile&lt;br /&gt;
* Saab lisatud nimekirjast raamatuid otsida&lt;br /&gt;
* Saab lisada raamatutele hindeid ja kommentaare&lt;br /&gt;
===Admin===&lt;br /&gt;
* Saab lisada nimekirja raamatuid ning täpsustavaid detaile&lt;br /&gt;
* Saab lisatud nimekirjast raamatuid otsida&lt;br /&gt;
* Saab lisada raamatutele hindeid ja kommentaare&lt;br /&gt;
* Saab nimekirjas olevaid raamatuid kustutada&lt;br /&gt;
* Saab nimekirjas olevaid raamatuid ja nende kohta käivaid detaile muuta&lt;br /&gt;
===Must have===&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada raamatuid&lt;br /&gt;
* Raamatu kohta saab lisada rippmenüüst iseloomustavaid detaile&lt;br /&gt;
* Raamatu kohta saab lisada rippmenüüst hindeid&lt;br /&gt;
* Kasutaja saab otsida raamatuid vastavaalt sisestatud iseloomustavatele detailidele&lt;br /&gt;
* Kasutaja saab otsida raamatuid vastavaalt sisestatud hinnetele&lt;br /&gt;
* Kui leitakse sobiv raamat, saab selle märkida lugemisel olevaks&lt;br /&gt;
* Kasutaja saab oma  muuta ning  kustutada&lt;br /&gt;
===Nice to have===&lt;br /&gt;
* Kasutaja saab vaadata, milliste detailide ja hinnetega raamatuid on kõige rohkem&lt;br /&gt;
&lt;br /&gt;
==Kasutatavad tehnoloogiad==&lt;br /&gt;
*REST veebiteenus&lt;br /&gt;
**.NET Core 2.0&lt;br /&gt;
*Klientrakendus, mis suhtleb veebiteenusega&lt;br /&gt;
**Angular 2&lt;br /&gt;
* Andmevahetus JSON vormingus&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_HomeLibrary&amp;diff=130604</id>
		<title>Meeskond: HomeLibrary</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_HomeLibrary&amp;diff=130604"/>
		<updated>2018-05-14T17:51:39Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: Created page with &amp;quot;=Liikmed= *Karit Kilgi =Analüüs= ==Kirjeldus== Rakenduse eesmärk on võimaldada kodukasutajal oma raamatutest parem ülevaade saada. Nimelt annab rakendus võimaluse märki...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Liikmed=&lt;br /&gt;
*Karit Kilgi&lt;br /&gt;
=Analüüs=&lt;br /&gt;
==Kirjeldus==&lt;br /&gt;
Rakenduse eesmärk on võimaldada kodukasutajal oma raamatutest parem ülevaade saada. Nimelt annab rakendus võimaluse märkida üles kõik raamatud, mis kasutajal kodus on, nende nimekirja vajadusel sirvida, uuendada ja kustutada.&lt;br /&gt;
==Rakenduse funktsionaalsus==&lt;br /&gt;
===Kasutaja===&lt;br /&gt;
* Saab lisada nimekirja raamatuid ning täpsustavaid detaile&lt;br /&gt;
* Saab lisatud nimekirjast raamatuid otsida&lt;br /&gt;
* Saab lisada raamatutele hindeid ja kommentaare&lt;br /&gt;
===Admin===&lt;br /&gt;
* Saab lisada nimekirja raamatuid ning täpsustavaid detaile&lt;br /&gt;
* Saab lisatud nimekirjast raamatuid otsida&lt;br /&gt;
* Saab lisada raamatutele hindeid ja kommentaare&lt;br /&gt;
* Saab nimekirjas olevaid raamatuid kustutada&lt;br /&gt;
* Saab nimekirjas olevaid raamatuid ja nende kohta käivaid detaile muuta&lt;br /&gt;
===Must have===&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada raamatuid&lt;br /&gt;
* Raamatu kohta saab lisada rippmenüüst iseloomustavaid detaile&lt;br /&gt;
* Raamatu kohta saab lisada rippmenüüst hindeid&lt;br /&gt;
* Kasutaja saab otsida raamatuid vastavaalt sisestatud iseloomustavatele detailidele&lt;br /&gt;
* Kasutaja saab otsida raamatuid vastavaalt sisestatud hinnetele&lt;br /&gt;
* Kui leitakse sobiv raamat, saab selle märkida lugemisel olevaks&lt;br /&gt;
* Kasutaja saab oma  muuta ning  kustutada&lt;br /&gt;
Nice to have&lt;br /&gt;
* Kasutaja saab vaadata, milliste detailide ja hinnetega raamatuid on kõige rohkem&lt;br /&gt;
&lt;br /&gt;
==Kasutatavad tehnoloogiad==&lt;br /&gt;
*REST veebiteenus&lt;br /&gt;
**.NET Core 2.0&lt;br /&gt;
*Klientrakendus, mis suhtleb veebiteenusega&lt;br /&gt;
**Angular 2&lt;br /&gt;
* Andmevahetus JSON vormingus&lt;/div&gt;</summary>
		<author><name>Kkilgi</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_2018&amp;diff=130603</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</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_2018&amp;diff=130603"/>
		<updated>2018-05-14T17:22:14Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond HomeLibrary */&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; 2018=&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 API2/ASP.NET Core 2.0/WCF 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;
&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_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#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;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&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_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&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_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&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), paigaldusjuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#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;
* Mobiilirakendused/Angularis/reactis loodud 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;
* Korraliku arhitektuuriga kirjutatud kood&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;
===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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)&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;
&lt;br /&gt;
=Teemad 2018 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;
&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 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
* Erik Kaup&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Margus Kildemaa&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Kert Saarma&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Villem Markus Loigom&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DIV Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BSIS Meeskond: BSIS]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Germo Väli&lt;br /&gt;
* siin on vaba koht kui on huvi projekti vastu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_HomeLibrary Meeskond HomeLibrary]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Karit Kilgi&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_PhoneBook&amp;diff=130598</id>
		<title>Meeskond: PhoneBook</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_PhoneBook&amp;diff=130598"/>
		<updated>2018-05-12T14:50:23Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: Created page with &amp;quot;==Liikmed== * Karit Kilgi  ==Analüüs== ===Kirjeldus=== Eesmärgiks on luua rakendus, mis võimaldab kasutajatel leida kiiresti huvi pakkuva isiku või ettevõtte telefoninum...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Liikmed==&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
&lt;br /&gt;
==Analüüs==&lt;br /&gt;
===Kirjeldus===&lt;br /&gt;
Eesmärgiks on luua rakendus, mis võimaldab kasutajatel leida kiiresti huvi pakkuva isiku või ettevõtte telefoninumbrit. Näiteks on kasutajal teada isiku nimi, kellega ta soovib ühendust võtta, kuid telefoninumbrit pole. Andmeid andmebaasi saab sisestada igaüks, kes soovib, et ta telefoninumber leitav oleks. &lt;br /&gt;
&lt;br /&gt;
===Rakenduse funktsionaalsus===&lt;/div&gt;</summary>
		<author><name>Kkilgi</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_2018&amp;diff=130597</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</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_2018&amp;diff=130597"/>
		<updated>2018-05-12T14:36:45Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* 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; 2018=&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 API2/ASP.NET Core 2.0/WCF 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;
&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_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#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;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&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_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&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_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&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), paigaldusjuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#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;
* Mobiilirakendused/Angularis/reactis loodud 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;
* Korraliku arhitektuuriga kirjutatud kood&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;
===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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)&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;
&lt;br /&gt;
=Teemad 2018 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;
&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 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
* Erik Kaup&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Margus Kildemaa&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Kert Saarma&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Villem Markus Loigom&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DIV Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BSIS Meeskond: BSIS]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Germo Väli&lt;br /&gt;
* siin on vaba koht kui on huvi projekti vastu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_PhoneBook Meeskond PhoneBook]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Karit Kilgi&lt;/div&gt;</summary>
		<author><name>Kkilgi</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_2018&amp;diff=130596</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</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_2018&amp;diff=130596"/>
		<updated>2018-05-12T13:01:47Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* 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; 2018=&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 API2/ASP.NET Core 2.0/WCF 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;
&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_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#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;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&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_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&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_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&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), paigaldusjuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#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;
* Mobiilirakendused/Angularis/reactis loodud 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;
* Korraliku arhitektuuriga kirjutatud kood&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;
===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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)&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;
&lt;br /&gt;
=Teemad 2018 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;
&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 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
* Erik Kaup&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Margus Kildemaa&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Kert Saarma&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Villem Markus Loigom&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DIV Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BSIS Meeskond: BSIS]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Germo Väli&lt;br /&gt;
* siin on vaba koht kui on huvi projekti vastu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_PhoneBook Meeskond BhoneBook]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Karit Kilgi&lt;/div&gt;</summary>
		<author><name>Kkilgi</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_2018&amp;diff=130595</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</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_2018&amp;diff=130595"/>
		<updated>2018-05-12T12:58:50Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskonnad 2018 */&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; 2018=&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 API2/ASP.NET Core 2.0/WCF 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;
&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_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#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;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&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_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&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_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&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), paigaldusjuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#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;
* Mobiilirakendused/Angularis/reactis loodud 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;
* Korraliku arhitektuuriga kirjutatud kood&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;
===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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)&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;
&lt;br /&gt;
=Teemad 2018 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;
&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 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
* Erik Kaup&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Margus Kildemaa&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Kert Saarma&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Villem Markus Loigom&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DIV Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BSIS Meeskond: BSIS]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Germo Väli&lt;br /&gt;
* siin on vaba koht kui on huvi projekti vastu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;/div&gt;</summary>
		<author><name>Kkilgi</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_2018&amp;diff=130594</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</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_2018&amp;diff=130594"/>
		<updated>2018-05-12T12:55:34Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond: PhoneBook */&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; 2018=&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 API2/ASP.NET Core 2.0/WCF 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;
&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_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#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;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&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_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&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_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&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), paigaldusjuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#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;
* Mobiilirakendused/Angularis/reactis loodud 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;
* Korraliku arhitektuuriga kirjutatud kood&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;
===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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)&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;
&lt;br /&gt;
=Teemad 2018 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;
&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 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
* Erik Kaup&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Margus Kildemaa&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Kert Saarma&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Villem Markus Loigom&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DIV Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BSIS Meeskond: BSIS]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Germo Väli&lt;br /&gt;
* siin on vaba koht kui on huvi projekti vastu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;br /&gt;
&lt;br /&gt;
======&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Karit Kilgi&lt;/div&gt;</summary>
		<author><name>Kkilgi</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_2018&amp;diff=130593</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2018</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_2018&amp;diff=130593"/>
		<updated>2018-05-12T12:53:53Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* 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; 2018=&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 API2/ASP.NET Core 2.0/WCF 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;
&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_2018#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenuse analüüs peab olema valmis, esitatud ja wikilehel kirjeldatud hiljemalt: &#039;&#039;&#039;01.aprill 2018&#039;&#039;&#039;. Lisaks on  &#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;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&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_2018#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;27. mai 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;03. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
&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_2018#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;01. juuni 2018&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;05.juuni 2018&#039;&#039;&#039;.&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), paigaldusjuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#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;
* Mobiilirakendused/Angularis/reactis loodud 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;
* Korraliku arhitektuuriga kirjutatud kood&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;
===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(ASP.NET veebirakendus või hoopis Angulari või Reacti baasil), töölauarakendusena(WPF) või mobiilse rakendusena(Xamarin)&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;
&lt;br /&gt;
=Teemad 2018 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;
&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 2018=&lt;br /&gt;
==Päevaõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/HairSaloon Meeskond: HairSaloon]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaido Henrik Elias&lt;br /&gt;
* Arvo Paomees&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VariousArtists Meeskond: VariousArtists]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Ruudi Vinter&lt;br /&gt;
* Madis Roosioks&lt;br /&gt;
* Madis Heinsoo&lt;br /&gt;
* Pavel Fleišer&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Maagikud Meeskond: Maagikud]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristina Rästas&lt;br /&gt;
*Simo Jaanus&lt;br /&gt;
*Artur Tammiste&lt;br /&gt;
*Rauno Lõhmus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/RaamatuRiiul Meeskond: RaamatuRiiul]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alo Avi&lt;br /&gt;
* Arnika Rästa&lt;br /&gt;
* Marite Rammo&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Autolugu Meeskond: Autolugu]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Margus Põlma&lt;br /&gt;
* Karl Erik Õunapuu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/VRII2018 Meeskond: VRII2018]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Kaspar Kaal&lt;br /&gt;
* Teet Adamson&lt;br /&gt;
* Rahel Kangur&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Raavo_V2%E2%84%A2 Meeskond: Raavo V2™]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Peeter Fridolin&lt;br /&gt;
* Kristo Leesmann&lt;br /&gt;
* Rando Rommot&lt;br /&gt;
* Erik Kaup&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Pillarofautumn Meeskond: Pillar of Autumn ]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Taavi Põder&lt;br /&gt;
* Taavi Vesinurm&lt;br /&gt;
* Raido Vell&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/jaatuli Meeskond: JääTuli]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Tarmo Luugus&lt;br /&gt;
*Leho Kivistik&lt;br /&gt;
*Hannes Mäeorg&lt;br /&gt;
*Marten Tammeleht&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/JustABot Meeskond: JustABot]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Argo Hansen&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond_Pakiraam Meeskond: Pakiraam]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kristo Naeris&lt;br /&gt;
*Margus Kildemaa&lt;br /&gt;
*Indro Kottise&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/GoFood Meeskond: GoFood]===&lt;br /&gt;
Liikmed: &lt;br /&gt;
&lt;br /&gt;
* Rando Kurel&lt;br /&gt;
* Henrik Prangel&lt;br /&gt;
* Markus Mänd&lt;br /&gt;
* Edgar Tereping&lt;br /&gt;
* Jane Kaldma&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LTD Meeskond: LearnToDrive]===&lt;br /&gt;
&#039;&#039;&#039;Liikmed:&#039;&#039;&#039;&lt;br /&gt;
*Kert Saarma&lt;br /&gt;
*Eve Ormisson&lt;br /&gt;
*Villem Markus Loigom&lt;br /&gt;
*Carlos Kirtsi&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Miisiiks Meeskond: Miisiiks]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Christo Aruste&lt;br /&gt;
*Heleriin Malkov&lt;br /&gt;
*Tõnis Prants&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/DIV Meeskond: &amp;amp;lt;div&amp;amp;gt;]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Kaarel Pärtel&lt;br /&gt;
*Marek Juhanson&lt;br /&gt;
*Kai Kallastu&lt;br /&gt;
&lt;br /&gt;
==Kaugõpe==&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BSIS Meeskond: BSIS]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Germo Väli&lt;br /&gt;
* siin on vaba koht kui on huvi projekti vastu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BestInShow Meeskond: BestInShow]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Liina Abner&lt;br /&gt;
* Marju Pütsepp&lt;br /&gt;
* Liisi Taimre&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/WatchWinders Meeskond: WatchWinders]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Toomas Juhkov&lt;br /&gt;
* Kunnar Kukk&lt;br /&gt;
* Tiit Kuuskmäe&lt;br /&gt;
&lt;br /&gt;
===[[ Kuldneloojang | Meeskond: Kuldne loojang]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andrus Seiman&lt;br /&gt;
* Marko Belzetski&lt;br /&gt;
* Priit Tiganik&lt;br /&gt;
* Kristjan Peterson&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Ophelia Meeskond: Ophelia]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Siim Kallari&lt;br /&gt;
* Andres Kepler&lt;br /&gt;
* Jorma Rebane&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/SharpRestoVRII Meeskond: SharpRestoVRII]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Andres Aava&lt;br /&gt;
* Henri Annilo&lt;br /&gt;
* Jaan Koolmeister&lt;br /&gt;
* Lauri Üksti&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/BeerPressure Meeskond: BeerPressure]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sigrid Aasma&lt;br /&gt;
* Evelin Jõgi&lt;br /&gt;
* Martin Kask&lt;br /&gt;
* Marko Nõu&lt;br /&gt;
&lt;br /&gt;
===[[ Memorize | Meeskond: Memorize]]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Madis Uudam&lt;br /&gt;
* Olle Mikk&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/UCanDo Meeskond: UCanDo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Mart Raus&lt;br /&gt;
* Ando Kiidron&lt;br /&gt;
* Liina Saar&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MOT Meeskond: MOT]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Merike Meizner&lt;br /&gt;
* Helen Oppar&lt;br /&gt;
* Hardi Tiitus&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:_MealPlanner Meeskond: MealPlanner]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
*Rein Remsu&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Meeskond:Curry Meeskond: Curry]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Rain Elken&lt;br /&gt;
* Peeter Ploom&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/Hammas Meeskond: Hammas]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Sten Lunden&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/LabLite Meeskond: LabLite]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
* Alex Kaska&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/AmateurBB Meeskond: AmateurBB]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Taavi Kivimaa&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/MealPlannerSolo Meeskond: MealPlannerSolo]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Triin Oja&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/NutriCheck Meeskond: NutriCheck]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Artyom Likhachev&lt;br /&gt;
&lt;br /&gt;
===[https://wiki.itcollege.ee/index.php/PhoneBook Meeskond: PhoneBook]===&lt;br /&gt;
Liikmed:&lt;br /&gt;
*Karit Kilgi&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=123880</id>
		<title>I027 iseseisvad tööd</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=123880"/>
		<updated>2017-08-18T16:50:01Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* 2.praktikum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käesolev artikkel on loodud aine &amp;quot;[[Sissejuhatus infotehnoloogiasse ja riistvarasse]] (ainekoodiga I027)&amp;quot; iseseisvate tööde haldamiseks.&lt;br /&gt;
Aines on vaja teha 3 praktilist tööd ja seminaritöö, mis on kõik kirjeldatud &amp;quot;Praktikumid&amp;quot; pealkirja all viidatud dokumendis.&lt;br /&gt;
&lt;br /&gt;
Palun siia dokumenti panna kirja valitud praktikumi nimetus. Ülikooli kasutajaga saavad tudengid ka vikit muuta. Muudatused salvestuvad ka ajaloos.&lt;br /&gt;
&lt;br /&gt;
See üllas eesmärk on, et võimalikult erinevaid praktikumid ja probleemilahendus saaks valitud.&lt;br /&gt;
Siit dokumendist te näete, mida keegi parasjagu tegemas on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Igor Budnitski, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Närep, DK11 - SSH vestlus&lt;br /&gt;
* Ingvar Lukas, 14 - Info riistvara kohta&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Rommot, 13 - Linuxile teine töölaud&lt;br /&gt;
* Nele Naris, IA18 - Info riistvara kohta&lt;br /&gt;
* Katrin Lasberg, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrek Laanemets, 11 - Info riistvara kohta&lt;br /&gt;
* Peeter Fridolin, 13 - SSH Windows + Linux&lt;br /&gt;
* Kristo Tero, IA18 - LAMP paigaldus&lt;br /&gt;
* Siim Kustassoo, IA18 - Info riistavara kohta&lt;br /&gt;
* Rain Adamson, 41 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Rein Remsu, IA17 - SSH Windows + Linux&lt;br /&gt;
* Piret Spitsõn, DK11 - Info riistvara kohta&lt;br /&gt;
* Tanel Vari, DK13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mihkel-Erik Mägi - Linuxile teine töölaud&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Info riistvara kohta&lt;br /&gt;
* Sander Ratassepp, 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Info riistvara kohta&lt;br /&gt;
* Triin Palm, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Maie Palmeos, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Dmitri Lukaš, DK11 - Info ristvara kohta&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Info riistvara kohta&lt;br /&gt;
* Leonid Grigorjevski,  IA18 - Info riistvara kohta&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Iakov Kanyuchka, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Roosioks, D22 - Info riistvara kohta&lt;br /&gt;
* Rauno Lõhmus, 13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maile Mäesalu, DK14 - Info riistvara kohta&lt;br /&gt;
* Alan Alliksoo, DK11 - Info riistvara kohta&lt;br /&gt;
* Reilika Saks, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Andres Tambek, DK12 - Info riistvara kohta&lt;br /&gt;
* Hardi Tiitus, DK12 - Info riistvara kohta&lt;br /&gt;
* Jan Pentšuk, DK12 - Info riistvara kohta&lt;br /&gt;
* Pille Ulmas, DK13 - Info riistvara kohta&lt;br /&gt;
* Peeter Stamberg, DK 11 - Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kreet Solnask, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristo Leesmann, 13 - LAMP paigaldus&lt;br /&gt;
* Kristjan Leotoots, DK12 - SSH Windows + Linux&lt;br /&gt;
* Erki Aas, 12 - LAMP paigaldus&lt;br /&gt;
* Liis Talimaa, DK12, Info riistvara kohta&lt;br /&gt;
* Irina Geidarova, IA18 Linuxi tööjaama paigaldus&lt;br /&gt;
* Ruudi Vinter, DK12 - Info riistvara kohta&lt;br /&gt;
* Anton Kuksov, 12 - LAMP paigaldus&lt;br /&gt;
* Eduard Kõre, AK11 - Info riistvara kohta&lt;br /&gt;
* Marie Udam, DK14 - Info riistvara kohta&lt;br /&gt;
* Erik Ehrbach, DK14 - LAMP paigaldus&lt;br /&gt;
* Jüri Ahhundov, DK11 - Info riistvara kohta&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Info riistvara kohta&lt;br /&gt;
* Kaisa Lindström, 15 - Info riistvara kohta&lt;br /&gt;
* Marko Esna, AK11 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Jana Kindlam, DK12 – info riistvara kohta&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - info riistvara kohta&lt;br /&gt;
* Kadi Koppelmann, DK14 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Võrklaev, AK11 - Info riistvara kohta&lt;br /&gt;
* Rudolf Purge, AK11 - Info riistvara kohta&lt;br /&gt;
* Ilmar Ermus, IA17 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Leho Kivistik, 14 - Info riistvara kohta&lt;br /&gt;
* Hannes Mäeorg, 14 - Info riistvara kohta&lt;br /&gt;
* Alexander Teder, 12 - Info riistvara kohta&lt;br /&gt;
* Jüri Vinnal, IA18 - Info riistvara kohta&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - Info riistvara kohta&lt;br /&gt;
* Radne Kaal, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Pärtel, 14 - Lapikute serverite töökorrastamine: Riistvara, Arch ja SSH.&lt;br /&gt;
* Kuldar Teinmann, AK11 - LAMP paigaldus&lt;br /&gt;
* Pavel Fleišer, 14 - LAMP paigaldus&lt;br /&gt;
* Katrin Kello, 14 - Info riistvara kohta&lt;br /&gt;
* Madis Liik, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - LAMP paigaldus&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Filip Fjodorov, AK11 - Info riistvara kohta&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - info riistvara kohta&lt;br /&gt;
* Ruti Kerro, IA17 - LAMP paigaldus&lt;br /&gt;
* Artur Kapranov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Annika Kask, 11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Anton Meženin, DK14 - Info riistvara kohta&lt;br /&gt;
* Martti-Heiki Must, IA17 - Info riistvara kohta&lt;br /&gt;
* Marten Tammeleht, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Indro Kottise, 15 - Info riistvara kohta&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Info riistvara kohta&lt;br /&gt;
* Merike Meizner, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Info riistvara kohta&lt;br /&gt;
* Henri Annilo, DK13 - SSH Windows + Linux&lt;br /&gt;
* Laura Lenbaum, IA18 - Info riistvara kohta&lt;br /&gt;
* Donna Nurmbek, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Kurel, 12 - Info riistvara kohta&lt;br /&gt;
* Joonas Rihma, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Helen Oppar, DK12 - Info riistvara kohta&lt;br /&gt;
* Tanel Peep, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Brit Valdek, DK14 - Info riistvara kohta&lt;br /&gt;
* Oliver Nurk, 11 - Info riistvara kohta&lt;br /&gt;
* Erik Kaup, 13 - Info riistvara kohta&lt;br /&gt;
* Rait Rand, 11 - Info riistvara kohtan&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Meelis Mikk, 11 - Info riistvara kohta&lt;br /&gt;
* Karoliina Vasli - LAMP paigaldus&lt;br /&gt;
* Aare Taveter - IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Sirkas, 15 - Info riistvara kohta&lt;br /&gt;
* Mihkel Tääkre, 15 - Info riistvara kohta&lt;br /&gt;
* Annely Vattis AK11- Info riistvara kohta&lt;br /&gt;
* Valdo Taevere, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Anni- Bessie Kitt, DK14 - Info riistvara kohta&lt;br /&gt;
* Reio Meiusi, 15 - Info riistvara kohta&lt;br /&gt;
* Marju Niinemaa IA17 - Info riistvara kohta&lt;br /&gt;
* Tarmo Luugus, 14 - Info riistvara kohta&lt;br /&gt;
* Martin Laadoga, 14 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Rasmus Tammets, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Sirli Mürk, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rene Väli, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrei Pugatšov, DK14 - Info riistvara kohta&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anna Levijeva, 12 - LAMP paigaldus&lt;br /&gt;
* Maarja-Liisa Pilvik, DK14 - Info riistvara kohta&lt;br /&gt;
* Henrik Prangel, 12 - Info riistvara kohta&lt;br /&gt;
* Vjatsheslav Aprelkov, DK11 - Info riistvara kohta&lt;br /&gt;
* Sergei Kaganski, DK14 - Info riistvara kohta&lt;br /&gt;
* Andrei Tomba, DK14 - info riistvara kohta&lt;br /&gt;
* Siim Oselein, ISa11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Lisette Noor, D23 - Info riistvara kohta&lt;br /&gt;
* Kirstin Saluveer, DK13 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Lauri Üksti, DK14 - info riistvara kohta&lt;br /&gt;
* Arnika Rästa, ISd14 - info riistvara kohta&lt;br /&gt;
* Alo Avi, ISd14 - LAMP paigaldus&lt;br /&gt;
* Gert Vesterberg, DK11 - LAMP paigaldus&lt;br /&gt;
* Anna Amelkina, AK11 - Info riistvara kohta&lt;br /&gt;
* Egert Loss, DK14, Linux serveri paigaldus&lt;br /&gt;
* Ahto Ahven, 15, Info riistvara kohta&lt;br /&gt;
* Villem Markus Loigom, 11, SSH vestlus&lt;br /&gt;
* Frank Karl Koppel, 11, SSH vestlus&lt;br /&gt;
* Juta Jaama, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Kaine, DK12 - Info riistvara kohta&lt;br /&gt;
* Kert Saarma, 12 - Info riistvara kohta&lt;br /&gt;
* Martin Kokk, 11 - Linuxi serveri paigaldus&lt;br /&gt;
* Artur Tammiste, 14 - Info riistvara kohta&lt;br /&gt;
* Paul Richard Lettens, 12 - Info riistvara kohta&lt;br /&gt;
* Liina Laumets, DK13 - Info riistvara kohta&lt;br /&gt;
* Martin Tammai, 11 - Info riistvara kohta&lt;br /&gt;
* Margus Põlma, 15, LAMP paigaldus&lt;br /&gt;
* Kersti Perandi, DK13 - Info riistvara kohta&lt;br /&gt;
* Tõnis Prants, 15, Linuxi tööjaama paigaldus&lt;br /&gt;
* Andres Kalavus, 12, APT-i analoog Windowsis&lt;br /&gt;
* Sven Veelaid, ISd14 - info riistvara kohta&lt;br /&gt;
* Helen Riisalu, 11 - Info riistvara kohta&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Info riistvara kohta&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Info riistvara kohta&lt;br /&gt;
* Karl Erik Õunapuu, 15 - LAMP paigaldus&lt;br /&gt;
* Marite Rammo, 15 - Info riistvara kohta&lt;br /&gt;
* Georg Kahest, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Jekaterina Losseva, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Niinelt, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Tammekänd, DK12 - Info riistvara kohta&lt;br /&gt;
* Brita Pentšuk, 13 - Info riistvara kohta&lt;br /&gt;
* Dmitri Kiriljuk, AK11 - Info riistvara kohta&lt;br /&gt;
* Joonas Ervald, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Priit Järv, 12 - Info riistvara kohta&lt;br /&gt;
* Henri Paves, AK11 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Info riistvara kohta&lt;br /&gt;
* Sander Pihelgas, AK11 - Info riistvara kohta&lt;br /&gt;
* Andreas Porman, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Andres Leppik, DK13 - Info riistvara kohta&lt;br /&gt;
* Kristina Rästas, 13 - Linux serveri paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - Info riistvara kohta&lt;br /&gt;
* Meelis Osi, AK11 - Info riistvara kohta&lt;br /&gt;
* Liis Talsi, DK14 - Info riistvara kohta&lt;br /&gt;
* Edgar Tereping, 14 - Info riistvara kohta&lt;br /&gt;
* Karen Grigorjan, DK12 - LAMP Paigaldus&lt;br /&gt;
* Marek Skorohhodov, AK11 - Info riistvara kohta + Linux serveri paigaldus&lt;br /&gt;
* Karmen Lillemets, 14 - Info riistvara kohta&lt;br /&gt;
* Teele Puusepp IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristiina Keelmann DK14 -  Info riistvara kohta&lt;br /&gt;
* Hans Kõll, DK14 - Info riistvara kohta&lt;br /&gt;
* Siim Ošur, ISd13 - E-posti krüpto&lt;br /&gt;
* Timo Otsing, 11 - Teine GUI windowsile&lt;br /&gt;
* Siim Puskar, IA18 - Info riistvara kohta&lt;br /&gt;
* Mihkel Nõmm, 12 - MSO → ODF dokumentide konverteerimine | Windows Subsystem for Linux&lt;br /&gt;
* Kai Trumm, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Heinsoo, 13 - Info riistvara kohta&lt;br /&gt;
&lt;br /&gt;
=2.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxile Teine Töölaud&lt;br /&gt;
* Egert Närep, DK11 - SSH Windows+Linux&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxile teine töölaud&lt;br /&gt;
* Rando Rommot, 13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Lasberg, DK13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrek Laanemets, 11 - Linuxile teine töölaud&lt;br /&gt;
* Kristo Tero, IA18 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Siim Kustassoo, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Rain Adamson, 41 - LibreOffice&#039;i hulgipaigaldus&lt;br /&gt;
* Rein Remsu, IA17 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Mihkel-Erik Mägi, 13 - Teine GUI Windowsile.&lt;br /&gt;
* Nele Naris, IA18 - E-posti krüpto&lt;br /&gt;
* Piret Spitsõn, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Tanel Vari, DK 13 - Info riistvara kohta&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Madis Roosioks, D22 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Triin Palm, IA18 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maie Palmeos, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Dmitri Lukaš, DK11 - Windows Subsystem for Linux / APT&#039;i analoog Windowsile&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Alan Alliksoo, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Reilika Saks, IA17 - E-posti krüpto&lt;br /&gt;
* Andres Tambek, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Hardi Tiitus, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jan Pentšuk, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Irina Geidarova, IA18 Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - LAMP paigaldus&lt;br /&gt;
* Kreet Solnask, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristjan Leotoots, DK12 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Liis Talimaa, DK12, SSH Windows+Linux&lt;br /&gt;
* Eduard Kõre, AK12 - SSH Windows+Linux&lt;br /&gt;
* Erik Ehrbach, DK14 - SSH Windows+Linux&lt;br /&gt;
* Helen Oppar, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jüri Ahhundov, DK11 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristina Garmatjuk, DK11 - LAMP paigaldus&lt;br /&gt;
* Jana Kindlam, DK12 – Linuxi tööjaama paigaldus&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - LAMP paigaldus&lt;br /&gt;
* Marko Esna, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Alexander Teder, 12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - LAMP paigaldus&lt;br /&gt;
* Madis Liik, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Annika Kask, 11 - Info riistvara kohta&lt;br /&gt;
* Rando Kurel, 12- Linuxi tööjaama paigaldus&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Ingvar Lukas, 14 - LAMP paigaldus&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxi serveri paigaldus&lt;br /&gt;
* Brita Pentšuk, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Anton Kuksov, 12 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristo Leesmann, 13 - APT-i analoog Windowsile&lt;br /&gt;
* Sander Ratassepp, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Peeter Fridolin, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Rihma, DK11 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Vjatšeslav Aprelkov, DK11 - Linuxile teine töölaud&lt;br /&gt;
* Sergei Kaganski, DK14 - Raspberry Pi&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - LAMP paigaldus&lt;br /&gt;
* Merike Meizner, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrei Pugatšov, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Ervald, DK11 - Raspberry Pi&lt;br /&gt;
* Kuldar Teinmann, AK11 - SSH Windows+Linux&lt;br /&gt;
* Lauri Üksti, DK14 - Mac+Windows kaksikkäivitus, uusim LTS, uus vaikimisi töölaua keskkond&lt;br /&gt;
* Pavel Fleišer, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Linuxile Teine Töölaud&lt;br /&gt;
* Marten Tammeleht, 13 - Teine GUI Windowsile&lt;br /&gt;
* Anna Levijeva, 12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - E-posti krüpto&lt;br /&gt;
* Laura Lenbaum IA18- E-posti krüpto&lt;br /&gt;
* Henri Paves, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Ruti Kerro, IA17 - APT analoog Windowsile&lt;br /&gt;
* Merilyn Merisalu, 13 - LAMP paigaldus&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxile teine töölaud&lt;br /&gt;
* Anton Meženin, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Marie Udam, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Ilmar Ermus, IA17 - SSH Windows + Linux&lt;br /&gt;
* Madis Niinelt, IA18 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Maile Mäesalu, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Andreas Porman, DK13 - LAMP paigaldus&lt;br /&gt;
* Pille Ulmas, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Henrik Prangel, 12 - Linuxile teine töölaud&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Radne Kaal, IA18 - E-posti krüpto&lt;br /&gt;
* Rait Rand, 11 - Linuxile teine töölaud&lt;br /&gt;
* Sander Pihelgas, AK11 - LAMP paigaldus&lt;br /&gt;
* Andres Leppik, DK13 - Linuxile teine töölaud&lt;br /&gt;
* Lisette Noor, D23 - Teine GUI Windowsile&lt;br /&gt;
* Carlos Kirtsi, 12 - Linuxile teine töölaud&lt;br /&gt;
* Annely Vattis, AK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kristina Rästas, 13 - LAMP paigaldus&lt;br /&gt;
* Andres Kalavus, 12 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Tanel Peep, AK11 - LAMP paigaldus&lt;br /&gt;
* Andrei Tomba, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxile teine töölaud&lt;br /&gt;
* Igor Budnitski, IA17 - SSH Windows+Linux&lt;br /&gt;
* Brit Valdek, DK14 - Raspberry PI&lt;br /&gt;
* Martin Kokk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Meelis Mikk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Artur Kapranov - LAMP Paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - E-posti krüpto&lt;br /&gt;
* Mihkel Tääkre, 15 - LAMP Paigaldus&lt;br /&gt;
* Liina Laumets, DK13, Windows Subsystem for Linux &lt;br /&gt;
* Tõnis Prants, 15 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Georg Kahest, AK11 - E-posti krüpto&lt;br /&gt;
* Meelis Osi, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Kert Saarma, 12 - Linuxile teine töölaud&lt;br /&gt;
* Ruudi Vinter, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Alo Avi, 14 - E-posti krüpto&lt;br /&gt;
* Indro Kottise, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anni-Bessie Kitt DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Liis Talsi DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Aleksandr Petrušihin - DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Kaarel Kaine, DK12 - Linux serveri paigaldus, LAMP serveri paigaldus&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Linuxile teine töölaud&lt;br /&gt;
* Ahto Ahven, 15 - Linuxile teine töölaud&lt;br /&gt;
* Hannes Mäeorg, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Edgar Tereping, 14 - E-posti krüpto&lt;br /&gt;
* Karen Grigorjan, DK12 - E-posti krüpto&lt;br /&gt;
* Henri Annilo, DK13 - E-posti krüpto&lt;br /&gt;
* Jekaterina Losseva, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Leho Kivistik, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Loss, DK14, MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Rene Väli, DK13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Kello 12- LAMP paigaldus&lt;br /&gt;
* Alvar Suun DK13- SSH Windows+Linux&lt;br /&gt;
* Siim Ošur, ISd13 - Katkematu kaughaldus (GUI+CLI) piiratud võrgus&lt;br /&gt;
* Teele Puusepp IA17 - E-posti krüpto&lt;br /&gt;
* Martin Laadoga, 14 - Info Riistvara Kohta&lt;br /&gt;
* Marite Rammo, 15 - Linuxile teine töölaud&lt;br /&gt;
* Siim Oselein, 11 - Linuxi teine töölaud&lt;br /&gt;
* Erki Aas, 12 - Windowsi ja Linuxi kaksikkäivitus&lt;br /&gt;
* Timo Otsing, 11 - Linuxile teine töölaud&lt;br /&gt;
* Arthur Luste - Itchev, 13 - Windowsi teine GUI.&lt;br /&gt;
* Simo Sirkas, 15 - LAMP paigaldus&lt;br /&gt;
* Sven Veelaid, ISd14 - Teine GUI Windowsile&lt;br /&gt;
* Karl Erik Õunapuu, ISd15 - E-posti krüpto&lt;br /&gt;
* Kristiina Keelmann, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Gert Vesterberg, DK11 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Filip Fjodorov, AK11 - Linuxi serveri paigaldus&lt;br /&gt;
* Hans Kõll, DK14, Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Karoliina Vasli IA18 - Linuxile teine töölaud&lt;br /&gt;
* Artur Tammiste, 14 - Linuxile teine töölaud&lt;br /&gt;
* Juta Jaama, IA18 - E-posti krüpto&lt;br /&gt;
* Siim Puskar, IA18 - E-posti krüpto&lt;br /&gt;
* Mihkel Nõmm, 12 - Teine GUI Windowsile | Windowsi ja Linuxi kaksikkäivitus&lt;br /&gt;
* Madis Heinsoo, 13 - Linuxi tööjaama paigaldus&lt;br /&gt;
&lt;br /&gt;
=Probleemilahendus=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - EXT4 on Windows. &lt;br /&gt;
* Egert Närep, DK11 - VPN Linuxis&lt;br /&gt;
* Jaan Veikesaar, 11 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Laura Lenbaum, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Nele Naris, IA18 - ePub loomine Windowsis&lt;br /&gt;
* Madis Roosioks, D22 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Katrin Lasberg, DK13 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Andrek Laanemets, 11 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Kristo Tero, IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Siim Kustassoo IA18 - ePub loomine Windowsis&lt;br /&gt;
* Rain Adamson, 41 - Ajastatud toimingute keelamine kasutajatele Linuxis.&lt;br /&gt;
* Rein Remsu, IA17 - Sügavkülmutus Linuxis&lt;br /&gt;
* Jooni Soots, IA17 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Piret Spitsõn, DK11 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Kreet Solnask, IA17 - ePub loomine MacOS-is&lt;br /&gt;
* Tanel Vari, DK 13 - QR kood MacOS-s &lt;br /&gt;
* Jaan Koolmeister, DK 13 - Kiirusetest Linuxis&lt;br /&gt;
* Rando Rommot, 13 - Kasutaja lukustamine Linuxis.&lt;br /&gt;
* Marilyn Võsu, DK11 - Kustunud faili(de) taastamine&lt;br /&gt;
* Triin Palm, IA18 - Pilveketas sõltumata operatsioonisüsteemist&lt;br /&gt;
* Maie Palmeos, DK11 - Automaatne privaatne veebilehitseja Windowsis&lt;br /&gt;
* Dmitri Lukaš, DK11 - ePub loomine Windowsis / Programmide automaatkäivitus / Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Dmitri Tšurjumov. IA17 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Unustatud salasõna taastamine&lt;br /&gt;
* Alan Alliksoo, DK11 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Reilika Saks, IA17 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Andres Tambek, DK12 - Külalise kasutaja disainimine Linuxis.&lt;br /&gt;
* Jan Pentšuk, DK12 - Kustunud faili(de) taastamine&lt;br /&gt;
* Filip Fjodorov, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Karit Kilgi, DK 32 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Eduard Kõre, AK12 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Jüri Ahhundov, DK11 - Tekstirežiimis (CLI) käivitamine.&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Madis Võrklaev, AK11 - Kioskirežiim Linuxis&lt;br /&gt;
* Marko Esna, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Alexander Teder, 12 Automaatne Windowsi uuendamine etteantud ajal.&lt;br /&gt;
* Merilyn Merisalu, 13 - Automaatne sisselogimine külalise kontoga&lt;br /&gt;
* Merilyn Merisalu, 13 - Kasutajanimede keelamine sisselogimisekraanilt&lt;br /&gt;
* Merilyn Merisalu, 13 - Külalise konto ärakeelamine sisselogimisekraanilt&lt;br /&gt;
* Ruti Kerro, IA17 - Programmi sulgemine jõuga ja kokkujooksmise vältimine Linuxis&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Markus Kildemaa, 15 - Külalise konto vaikimisi sisse logima&lt;br /&gt;
* Brita Pentšuk, 13 - Failisüsteemi haakimine - NTFS Linuxis&lt;br /&gt;
* Peeter Fridolin, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Andrei Tomba, DK14 - Kiirusetest Linuxis&lt;br /&gt;
* Priit Rätsep, DK12 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Annika Kask, 11 - ePubi loomine Windowsis&lt;br /&gt;
* Ingvar Lukas, 14 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Joonas Ervald, DK11 - Protsessori ülekiirendamine&lt;br /&gt;
* Merike Meizner, DK11, Automaatne privaatne veebilehitsemine Linuxis&lt;br /&gt;
* Kuldar Teinmann, AK11 - Failijagamine FTP-ga Linuxis&lt;br /&gt;
* Madis Niinelt, IA18 - Kioskirežiim Linuxis&lt;br /&gt;
* Pavel Fleišer, 14 - Failijagamine FTP-ga Linuxis / Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Simo Jaanus, 13 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Marten Tammeleht, 13 - Külalise kasutaja disainimine Linuxis&lt;br /&gt;
* Hardi Tiitus, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Helen Oppar, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Henri Paves, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Andrei Pugatšov, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Anton Meženin, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Kristo Leesmann, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Vjatsheslav Aprelkov,DK11 - Paigaldatud teise töölauakeskkonna eemaldamine &lt;br /&gt;
* Anita Sepp, DK12 - Teine töölauakeskkond Linuxile&lt;br /&gt;
* Radne Kaal, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Andero Samelselg, 15 - Vabavaraline salasõnade haldur; ePub loomine Linuxis&lt;br /&gt;
* Pille Ulmas, DK13 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Henrik Prangel, 12 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Lisette Noor, D23 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Liina Laumets, DK13 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Liina Laumets, DK13 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Andreas Porman, DK13- Kiirustest Linuxis&lt;br /&gt;
* Anton Kuksov, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Erik Kaup, 13 - VPN Linuxile&lt;br /&gt;
* Andres Kalavus, 12 - Automaatne privaatne veebilehitsemine Windowsis&lt;br /&gt;
* Sander Pihelgas, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Tanel Peep, AK11 - Ajastatud toimingute keelamine kasutajatele Linuxis ja skripti loomine CRONi&lt;br /&gt;
* Anna Levijeva, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Elizaveta Romanova, 11 - Turvaline Skype’i analoog Linuxile &lt;br /&gt;
* Meelis Osi, AK11 - Grep käsk Windowsi keskkonnas&lt;br /&gt;
*Kristina Rästas, 13 - Adobe Reader Linuxile&lt;br /&gt;
* Brit Valdek, DK14 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Sergei Kaganski, DK14 -ePub loomine MacOS-is&lt;br /&gt;
* Joonas Rihma, DK11 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Martin Kokk, 11 - Salasõna eemaldamine PDF faililt&lt;br /&gt;
* Maile Mäesalu, DK14 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - DWG-failide avamine Linuxis. &lt;br /&gt;
* Jevgeni Jurtsenko DK13, 59 - Võtmefailiga SSH sisselogimine&lt;br /&gt;
* Georg Kahest AK11, - Võtmefailiga SSH sisselogimine / NTP&lt;br /&gt;
* Konstantin Dmitrijev IA18 - DWG-failide avamine Linuxis&lt;br /&gt;
* Kert Saarma, 12 - VPN Linuxile&lt;br /&gt;
* Ruudi Vinter, DK12 - Teise töölauakeskonna eemaldamine Linuxis, Linuxi kioskirežiim&lt;br /&gt;
* Alo Avi, 14 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Indro Kottise, 15 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Kaarel Kaine, DK12 - Automaatne sisselogimine külalise kontoga, Linuxi kioskirežiim&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - EPUB loomine Windowsis&lt;br /&gt;
* Anni - Bessie Kitt, DK14 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Karen Grigorjan, DK12 - GRUBi taastamine&lt;br /&gt;
* Leho Kivistik, 14 - EPUB loomine Windowsis&lt;br /&gt;
* Egert Loss, DK14, Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Tõnis Prants, 15, Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Mihkel Tääkre, 15, Programmi(de) automaatne käivitamine.&lt;br /&gt;
* Henri ANnilo, DK13, QR kood Windowsis&lt;br /&gt;
* Rene Väli, DK13 - Sügavkülmutus Windowsis&lt;br /&gt;
* Edgar Tereping, 14 - EPUB loomine Windowsis&lt;br /&gt;
* Liis Talsi, DK-14 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Erki Aas, 12 - Windowsi krüpteerimine, GRUB-i turvamine&lt;br /&gt;
* Carlos Kirtsi, 12 - Teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Timo Otsing, 11 - Salasõna eemaldamine PDF faililt.&lt;br /&gt;
* Arthur Luste - Itchev, 13 - Open Source asendus Skype-le.&lt;br /&gt;
* Simo Sirkas, 15 - Programmi(de) automaatne käivitamine&lt;br /&gt;
* Martin Laadoga, 14 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Sven Veelaid, ISd14 - QR-kood Windowsis&lt;br /&gt;
*Kristiina Keelmann, DK14 - Salasõna eemaldamine PDF faililt&lt;br /&gt;
*Alvar Suun DK13- Linuxi automaatne uuendamine&lt;br /&gt;
* Aleksandra Sepp, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Kai Trumm, 11/IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Karl Erik Õunapuu, 15 - VPN Linuxis&lt;br /&gt;
* Siim Ošur, ISd13 - GRUB&#039;i taastamine&lt;br /&gt;
* Mihkel Nõmm, 12 - Alglaaduri taastamine peale Windowsi paigaldamist&lt;br /&gt;
* Madis Heinsoo, 13 - Alglaaduri taastamine peale Windowsi paigaldamist&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=123879</id>
		<title>I027 iseseisvad tööd</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=123879"/>
		<updated>2017-08-18T14:31:55Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* 2.praktikum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käesolev artikkel on loodud aine &amp;quot;[[Sissejuhatus infotehnoloogiasse ja riistvarasse]] (ainekoodiga I027)&amp;quot; iseseisvate tööde haldamiseks.&lt;br /&gt;
Aines on vaja teha 3 praktilist tööd ja seminaritöö, mis on kõik kirjeldatud &amp;quot;Praktikumid&amp;quot; pealkirja all viidatud dokumendis.&lt;br /&gt;
&lt;br /&gt;
Palun siia dokumenti panna kirja valitud praktikumi nimetus. Ülikooli kasutajaga saavad tudengid ka vikit muuta. Muudatused salvestuvad ka ajaloos.&lt;br /&gt;
&lt;br /&gt;
See üllas eesmärk on, et võimalikult erinevaid praktikumid ja probleemilahendus saaks valitud.&lt;br /&gt;
Siit dokumendist te näete, mida keegi parasjagu tegemas on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Igor Budnitski, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Närep, DK11 - SSH vestlus&lt;br /&gt;
* Ingvar Lukas, 14 - Info riistvara kohta&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Rommot, 13 - Linuxile teine töölaud&lt;br /&gt;
* Nele Naris, IA18 - Info riistvara kohta&lt;br /&gt;
* Katrin Lasberg, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrek Laanemets, 11 - Info riistvara kohta&lt;br /&gt;
* Peeter Fridolin, 13 - SSH Windows + Linux&lt;br /&gt;
* Kristo Tero, IA18 - LAMP paigaldus&lt;br /&gt;
* Siim Kustassoo, IA18 - Info riistavara kohta&lt;br /&gt;
* Rain Adamson, 41 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Rein Remsu, IA17 - SSH Windows + Linux&lt;br /&gt;
* Piret Spitsõn, DK11 - Info riistvara kohta&lt;br /&gt;
* Tanel Vari, DK13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mihkel-Erik Mägi - Linuxile teine töölaud&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Info riistvara kohta&lt;br /&gt;
* Sander Ratassepp, 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Info riistvara kohta&lt;br /&gt;
* Triin Palm, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Maie Palmeos, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Dmitri Lukaš, DK11 - Info ristvara kohta&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Info riistvara kohta&lt;br /&gt;
* Leonid Grigorjevski,  IA18 - Info riistvara kohta&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Iakov Kanyuchka, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Roosioks, D22 - Info riistvara kohta&lt;br /&gt;
* Rauno Lõhmus, 13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maile Mäesalu, DK14 - Info riistvara kohta&lt;br /&gt;
* Alan Alliksoo, DK11 - Info riistvara kohta&lt;br /&gt;
* Reilika Saks, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Andres Tambek, DK12 - Info riistvara kohta&lt;br /&gt;
* Hardi Tiitus, DK12 - Info riistvara kohta&lt;br /&gt;
* Jan Pentšuk, DK12 - Info riistvara kohta&lt;br /&gt;
* Pille Ulmas, DK13 - Info riistvara kohta&lt;br /&gt;
* Peeter Stamberg, DK 11 - Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kreet Solnask, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristo Leesmann, 13 - LAMP paigaldus&lt;br /&gt;
* Kristjan Leotoots, DK12 - SSH Windows + Linux&lt;br /&gt;
* Erki Aas, 12 - LAMP paigaldus&lt;br /&gt;
* Liis Talimaa, DK12, Info riistvara kohta&lt;br /&gt;
* Irina Geidarova, IA18 Linuxi tööjaama paigaldus&lt;br /&gt;
* Ruudi Vinter, DK12 - Info riistvara kohta&lt;br /&gt;
* Anton Kuksov, 12 - LAMP paigaldus&lt;br /&gt;
* Eduard Kõre, AK11 - Info riistvara kohta&lt;br /&gt;
* Marie Udam, DK14 - Info riistvara kohta&lt;br /&gt;
* Erik Ehrbach, DK14 - LAMP paigaldus&lt;br /&gt;
* Jüri Ahhundov, DK11 - Info riistvara kohta&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Info riistvara kohta&lt;br /&gt;
* Kaisa Lindström, 15 - Info riistvara kohta&lt;br /&gt;
* Marko Esna, AK11 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Jana Kindlam, DK12 – info riistvara kohta&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - info riistvara kohta&lt;br /&gt;
* Kadi Koppelmann, DK14 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Võrklaev, AK11 - Info riistvara kohta&lt;br /&gt;
* Rudolf Purge, AK11 - Info riistvara kohta&lt;br /&gt;
* Ilmar Ermus, IA17 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Leho Kivistik, 14 - Info riistvara kohta&lt;br /&gt;
* Hannes Mäeorg, 14 - Info riistvara kohta&lt;br /&gt;
* Alexander Teder, 12 - Info riistvara kohta&lt;br /&gt;
* Jüri Vinnal, IA18 - Info riistvara kohta&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - Info riistvara kohta&lt;br /&gt;
* Radne Kaal, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Pärtel, 14 - Lapikute serverite töökorrastamine: Riistvara, Arch ja SSH.&lt;br /&gt;
* Kuldar Teinmann, AK11 - LAMP paigaldus&lt;br /&gt;
* Pavel Fleišer, 14 - LAMP paigaldus&lt;br /&gt;
* Katrin Kello, 14 - Info riistvara kohta&lt;br /&gt;
* Madis Liik, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - LAMP paigaldus&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Filip Fjodorov, AK11 - Info riistvara kohta&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - info riistvara kohta&lt;br /&gt;
* Ruti Kerro, IA17 - LAMP paigaldus&lt;br /&gt;
* Artur Kapranov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Annika Kask, 11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Anton Meženin, DK14 - Info riistvara kohta&lt;br /&gt;
* Martti-Heiki Must, IA17 - Info riistvara kohta&lt;br /&gt;
* Marten Tammeleht, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Indro Kottise, 15 - Info riistvara kohta&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Info riistvara kohta&lt;br /&gt;
* Merike Meizner, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Info riistvara kohta&lt;br /&gt;
* Henri Annilo, DK13 - SSH Windows + Linux&lt;br /&gt;
* Laura Lenbaum, IA18 - Info riistvara kohta&lt;br /&gt;
* Donna Nurmbek, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Kurel, 12 - Info riistvara kohta&lt;br /&gt;
* Joonas Rihma, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Helen Oppar, DK12 - Info riistvara kohta&lt;br /&gt;
* Tanel Peep, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Brit Valdek, DK14 - Info riistvara kohta&lt;br /&gt;
* Oliver Nurk, 11 - Info riistvara kohta&lt;br /&gt;
* Erik Kaup, 13 - Info riistvara kohta&lt;br /&gt;
* Rait Rand, 11 - Info riistvara kohtan&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Meelis Mikk, 11 - Info riistvara kohta&lt;br /&gt;
* Karoliina Vasli - LAMP paigaldus&lt;br /&gt;
* Aare Taveter - IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Sirkas, 15 - Info riistvara kohta&lt;br /&gt;
* Mihkel Tääkre, 15 - Info riistvara kohta&lt;br /&gt;
* Annely Vattis AK11- Info riistvara kohta&lt;br /&gt;
* Valdo Taevere, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Anni- Bessie Kitt, DK14 - Info riistvara kohta&lt;br /&gt;
* Reio Meiusi, 15 - Info riistvara kohta&lt;br /&gt;
* Marju Niinemaa IA17 - Info riistvara kohta&lt;br /&gt;
* Tarmo Luugus, 14 - Info riistvara kohta&lt;br /&gt;
* Martin Laadoga, 14 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Rasmus Tammets, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Sirli Mürk, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rene Väli, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrei Pugatšov, DK14 - Info riistvara kohta&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anna Levijeva, 12 - LAMP paigaldus&lt;br /&gt;
* Maarja-Liisa Pilvik, DK14 - Info riistvara kohta&lt;br /&gt;
* Henrik Prangel, 12 - Info riistvara kohta&lt;br /&gt;
* Vjatsheslav Aprelkov, DK11 - Info riistvara kohta&lt;br /&gt;
* Sergei Kaganski, DK14 - Info riistvara kohta&lt;br /&gt;
* Andrei Tomba, DK14 - info riistvara kohta&lt;br /&gt;
* Siim Oselein, ISa11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Lisette Noor, D23 - Info riistvara kohta&lt;br /&gt;
* Kirstin Saluveer, DK13 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Lauri Üksti, DK14 - info riistvara kohta&lt;br /&gt;
* Arnika Rästa, ISd14 - info riistvara kohta&lt;br /&gt;
* Alo Avi, ISd14 - LAMP paigaldus&lt;br /&gt;
* Gert Vesterberg, DK11 - LAMP paigaldus&lt;br /&gt;
* Anna Amelkina, AK11 - Info riistvara kohta&lt;br /&gt;
* Egert Loss, DK14, Linux serveri paigaldus&lt;br /&gt;
* Ahto Ahven, 15, Info riistvara kohta&lt;br /&gt;
* Villem Markus Loigom, 11, SSH vestlus&lt;br /&gt;
* Frank Karl Koppel, 11, SSH vestlus&lt;br /&gt;
* Juta Jaama, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Kaine, DK12 - Info riistvara kohta&lt;br /&gt;
* Kert Saarma, 12 - Info riistvara kohta&lt;br /&gt;
* Martin Kokk, 11 - Linuxi serveri paigaldus&lt;br /&gt;
* Artur Tammiste, 14 - Info riistvara kohta&lt;br /&gt;
* Paul Richard Lettens, 12 - Info riistvara kohta&lt;br /&gt;
* Liina Laumets, DK13 - Info riistvara kohta&lt;br /&gt;
* Martin Tammai, 11 - Info riistvara kohta&lt;br /&gt;
* Margus Põlma, 15, LAMP paigaldus&lt;br /&gt;
* Kersti Perandi, DK13 - Info riistvara kohta&lt;br /&gt;
* Tõnis Prants, 15, Linuxi tööjaama paigaldus&lt;br /&gt;
* Andres Kalavus, 12, APT-i analoog Windowsis&lt;br /&gt;
* Sven Veelaid, ISd14 - info riistvara kohta&lt;br /&gt;
* Helen Riisalu, 11 - Info riistvara kohta&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Info riistvara kohta&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Info riistvara kohta&lt;br /&gt;
* Karl Erik Õunapuu, 15 - LAMP paigaldus&lt;br /&gt;
* Marite Rammo, 15 - Info riistvara kohta&lt;br /&gt;
* Georg Kahest, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Jekaterina Losseva, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Niinelt, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Tammekänd, DK12 - Info riistvara kohta&lt;br /&gt;
* Brita Pentšuk, 13 - Info riistvara kohta&lt;br /&gt;
* Dmitri Kiriljuk, AK11 - Info riistvara kohta&lt;br /&gt;
* Joonas Ervald, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Priit Järv, 12 - Info riistvara kohta&lt;br /&gt;
* Henri Paves, AK11 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Info riistvara kohta&lt;br /&gt;
* Sander Pihelgas, AK11 - Info riistvara kohta&lt;br /&gt;
* Andreas Porman, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Andres Leppik, DK13 - Info riistvara kohta&lt;br /&gt;
* Kristina Rästas, 13 - Linux serveri paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - Info riistvara kohta&lt;br /&gt;
* Meelis Osi, AK11 - Info riistvara kohta&lt;br /&gt;
* Liis Talsi, DK14 - Info riistvara kohta&lt;br /&gt;
* Edgar Tereping, 14 - Info riistvara kohta&lt;br /&gt;
* Karen Grigorjan, DK12 - LAMP Paigaldus&lt;br /&gt;
* Marek Skorohhodov, AK11 - Info riistvara kohta + Linux serveri paigaldus&lt;br /&gt;
* Karmen Lillemets, 14 - Info riistvara kohta&lt;br /&gt;
* Teele Puusepp IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristiina Keelmann DK14 -  Info riistvara kohta&lt;br /&gt;
* Hans Kõll, DK14 - Info riistvara kohta&lt;br /&gt;
* Siim Ošur, ISd13 - E-posti krüpto&lt;br /&gt;
* Timo Otsing, 11 - Teine GUI windowsile&lt;br /&gt;
* Siim Puskar, IA18 - Info riistvara kohta&lt;br /&gt;
* Mihkel Nõmm, 12 - MSO → ODF dokumentide konverteerimine | Windows Subsystem for Linux&lt;br /&gt;
* Kai Trumm, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Heinsoo, 13 - Info riistvara kohta&lt;br /&gt;
&lt;br /&gt;
=2.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxile Teine Töölaud&lt;br /&gt;
* Egert Närep, DK11 - SSH Windows+Linux&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxile teine töölaud&lt;br /&gt;
* Rando Rommot, 13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Lasberg, DK13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrek Laanemets, 11 - Linuxile teine töölaud&lt;br /&gt;
* Kristo Tero, IA18 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Siim Kustassoo, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Rain Adamson, 41 - LibreOffice&#039;i hulgipaigaldus&lt;br /&gt;
* Rein Remsu, IA17 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Mihkel-Erik Mägi, 13 - Teine GUI Windowsile.&lt;br /&gt;
* Nele Naris, IA18 - E-posti krüpto&lt;br /&gt;
* Piret Spitsõn, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Tanel Vari, DK 13 - Info riistvara kohta&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Madis Roosioks, D22 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Triin Palm, IA18 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maie Palmeos, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Dmitri Lukaš, DK11 - Windows Subsystem for Linux / APT&#039;i analoog Windowsile&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Alan Alliksoo, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Reilika Saks, IA17 - E-posti krüpto&lt;br /&gt;
* Andres Tambek, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Hardi Tiitus, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jan Pentšuk, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Irina Geidarova, IA18 Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Info riistvara kohta&lt;br /&gt;
* Kreet Solnask, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristjan Leotoots, DK12 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Liis Talimaa, DK12, SSH Windows+Linux&lt;br /&gt;
* Eduard Kõre, AK12 - SSH Windows+Linux&lt;br /&gt;
* Erik Ehrbach, DK14 - SSH Windows+Linux&lt;br /&gt;
* Helen Oppar, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jüri Ahhundov, DK11 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristina Garmatjuk, DK11 - LAMP paigaldus&lt;br /&gt;
* Jana Kindlam, DK12 – Linuxi tööjaama paigaldus&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - LAMP paigaldus&lt;br /&gt;
* Marko Esna, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Alexander Teder, 12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - LAMP paigaldus&lt;br /&gt;
* Madis Liik, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Annika Kask, 11 - Info riistvara kohta&lt;br /&gt;
* Rando Kurel, 12- Linuxi tööjaama paigaldus&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Ingvar Lukas, 14 - LAMP paigaldus&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxi serveri paigaldus&lt;br /&gt;
* Brita Pentšuk, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Anton Kuksov, 12 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristo Leesmann, 13 - APT-i analoog Windowsile&lt;br /&gt;
* Sander Ratassepp, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Peeter Fridolin, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Rihma, DK11 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Vjatšeslav Aprelkov, DK11 - Linuxile teine töölaud&lt;br /&gt;
* Sergei Kaganski, DK14 - Raspberry Pi&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - LAMP paigaldus&lt;br /&gt;
* Merike Meizner, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrei Pugatšov, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Ervald, DK11 - Raspberry Pi&lt;br /&gt;
* Kuldar Teinmann, AK11 - SSH Windows+Linux&lt;br /&gt;
* Lauri Üksti, DK14 - Mac+Windows kaksikkäivitus, uusim LTS, uus vaikimisi töölaua keskkond&lt;br /&gt;
* Pavel Fleišer, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Linuxile Teine Töölaud&lt;br /&gt;
* Marten Tammeleht, 13 - Teine GUI Windowsile&lt;br /&gt;
* Anna Levijeva, 12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - E-posti krüpto&lt;br /&gt;
* Laura Lenbaum IA18- E-posti krüpto&lt;br /&gt;
* Henri Paves, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Ruti Kerro, IA17 - APT analoog Windowsile&lt;br /&gt;
* Merilyn Merisalu, 13 - LAMP paigaldus&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxile teine töölaud&lt;br /&gt;
* Anton Meženin, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Marie Udam, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Ilmar Ermus, IA17 - SSH Windows + Linux&lt;br /&gt;
* Madis Niinelt, IA18 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Maile Mäesalu, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Andreas Porman, DK13 - LAMP paigaldus&lt;br /&gt;
* Pille Ulmas, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Henrik Prangel, 12 - Linuxile teine töölaud&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Radne Kaal, IA18 - E-posti krüpto&lt;br /&gt;
* Rait Rand, 11 - Linuxile teine töölaud&lt;br /&gt;
* Sander Pihelgas, AK11 - LAMP paigaldus&lt;br /&gt;
* Andres Leppik, DK13 - Linuxile teine töölaud&lt;br /&gt;
* Lisette Noor, D23 - Teine GUI Windowsile&lt;br /&gt;
* Carlos Kirtsi, 12 - Linuxile teine töölaud&lt;br /&gt;
* Annely Vattis, AK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kristina Rästas, 13 - LAMP paigaldus&lt;br /&gt;
* Andres Kalavus, 12 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Tanel Peep, AK11 - LAMP paigaldus&lt;br /&gt;
* Andrei Tomba, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxile teine töölaud&lt;br /&gt;
* Igor Budnitski, IA17 - SSH Windows+Linux&lt;br /&gt;
* Brit Valdek, DK14 - Raspberry PI&lt;br /&gt;
* Martin Kokk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Meelis Mikk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Artur Kapranov - LAMP Paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - E-posti krüpto&lt;br /&gt;
* Mihkel Tääkre, 15 - LAMP Paigaldus&lt;br /&gt;
* Liina Laumets, DK13, Windows Subsystem for Linux &lt;br /&gt;
* Tõnis Prants, 15 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Georg Kahest, AK11 - E-posti krüpto&lt;br /&gt;
* Meelis Osi, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Kert Saarma, 12 - Linuxile teine töölaud&lt;br /&gt;
* Ruudi Vinter, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Alo Avi, 14 - E-posti krüpto&lt;br /&gt;
* Indro Kottise, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anni-Bessie Kitt DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Liis Talsi DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Aleksandr Petrušihin - DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Kaarel Kaine, DK12 - Linux serveri paigaldus, LAMP serveri paigaldus&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Linuxile teine töölaud&lt;br /&gt;
* Ahto Ahven, 15 - Linuxile teine töölaud&lt;br /&gt;
* Hannes Mäeorg, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Edgar Tereping, 14 - E-posti krüpto&lt;br /&gt;
* Karen Grigorjan, DK12 - E-posti krüpto&lt;br /&gt;
* Henri Annilo, DK13 - E-posti krüpto&lt;br /&gt;
* Jekaterina Losseva, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Leho Kivistik, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Loss, DK14, MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Rene Väli, DK13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Kello 12- LAMP paigaldus&lt;br /&gt;
* Alvar Suun DK13- SSH Windows+Linux&lt;br /&gt;
* Siim Ošur, ISd13 - Katkematu kaughaldus (GUI+CLI) piiratud võrgus&lt;br /&gt;
* Teele Puusepp IA17 - E-posti krüpto&lt;br /&gt;
* Martin Laadoga, 14 - Info Riistvara Kohta&lt;br /&gt;
* Marite Rammo, 15 - Linuxile teine töölaud&lt;br /&gt;
* Siim Oselein, 11 - Linuxi teine töölaud&lt;br /&gt;
* Erki Aas, 12 - Windowsi ja Linuxi kaksikkäivitus&lt;br /&gt;
* Timo Otsing, 11 - Linuxile teine töölaud&lt;br /&gt;
* Arthur Luste - Itchev, 13 - Windowsi teine GUI.&lt;br /&gt;
* Simo Sirkas, 15 - LAMP paigaldus&lt;br /&gt;
* Sven Veelaid, ISd14 - Teine GUI Windowsile&lt;br /&gt;
* Karl Erik Õunapuu, ISd15 - E-posti krüpto&lt;br /&gt;
* Kristiina Keelmann, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Gert Vesterberg, DK11 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Filip Fjodorov, AK11 - Linuxi serveri paigaldus&lt;br /&gt;
* Hans Kõll, DK14, Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Karoliina Vasli IA18 - Linuxile teine töölaud&lt;br /&gt;
* Artur Tammiste, 14 - Linuxile teine töölaud&lt;br /&gt;
* Juta Jaama, IA18 - E-posti krüpto&lt;br /&gt;
* Siim Puskar, IA18 - E-posti krüpto&lt;br /&gt;
* Mihkel Nõmm, 12 - Teine GUI Windowsile | Windowsi ja Linuxi kaksikkäivitus&lt;br /&gt;
* Madis Heinsoo, 13 - Linuxi tööjaama paigaldus&lt;br /&gt;
&lt;br /&gt;
=Probleemilahendus=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - EXT4 on Windows. &lt;br /&gt;
* Egert Närep, DK11 - VPN Linuxis&lt;br /&gt;
* Jaan Veikesaar, 11 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Laura Lenbaum, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Nele Naris, IA18 - ePub loomine Windowsis&lt;br /&gt;
* Madis Roosioks, D22 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Katrin Lasberg, DK13 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Andrek Laanemets, 11 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Kristo Tero, IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Siim Kustassoo IA18 - ePub loomine Windowsis&lt;br /&gt;
* Rain Adamson, 41 - Ajastatud toimingute keelamine kasutajatele Linuxis.&lt;br /&gt;
* Rein Remsu, IA17 - Sügavkülmutus Linuxis&lt;br /&gt;
* Jooni Soots, IA17 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Piret Spitsõn, DK11 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Kreet Solnask, IA17 - ePub loomine MacOS-is&lt;br /&gt;
* Tanel Vari, DK 13 - QR kood MacOS-s &lt;br /&gt;
* Jaan Koolmeister, DK 13 - Kiirusetest Linuxis&lt;br /&gt;
* Rando Rommot, 13 - Kasutaja lukustamine Linuxis.&lt;br /&gt;
* Marilyn Võsu, DK11 - Kustunud faili(de) taastamine&lt;br /&gt;
* Triin Palm, IA18 - Pilveketas sõltumata operatsioonisüsteemist&lt;br /&gt;
* Maie Palmeos, DK11 - Automaatne privaatne veebilehitseja Windowsis&lt;br /&gt;
* Dmitri Lukaš, DK11 - ePub loomine Windowsis / Programmide automaatkäivitus / Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Dmitri Tšurjumov. IA17 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Unustatud salasõna taastamine&lt;br /&gt;
* Alan Alliksoo, DK11 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Reilika Saks, IA17 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Andres Tambek, DK12 - Külalise kasutaja disainimine Linuxis.&lt;br /&gt;
* Jan Pentšuk, DK12 - Kustunud faili(de) taastamine&lt;br /&gt;
* Filip Fjodorov, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Karit Kilgi, DK 32 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Eduard Kõre, AK12 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Jüri Ahhundov, DK11 - Tekstirežiimis (CLI) käivitamine.&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Madis Võrklaev, AK11 - Kioskirežiim Linuxis&lt;br /&gt;
* Marko Esna, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Alexander Teder, 12 Automaatne Windowsi uuendamine etteantud ajal.&lt;br /&gt;
* Merilyn Merisalu, 13 - Automaatne sisselogimine külalise kontoga&lt;br /&gt;
* Merilyn Merisalu, 13 - Kasutajanimede keelamine sisselogimisekraanilt&lt;br /&gt;
* Merilyn Merisalu, 13 - Külalise konto ärakeelamine sisselogimisekraanilt&lt;br /&gt;
* Ruti Kerro, IA17 - Programmi sulgemine jõuga ja kokkujooksmise vältimine Linuxis&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Markus Kildemaa, 15 - Külalise konto vaikimisi sisse logima&lt;br /&gt;
* Brita Pentšuk, 13 - Failisüsteemi haakimine - NTFS Linuxis&lt;br /&gt;
* Peeter Fridolin, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Andrei Tomba, DK14 - Kiirusetest Linuxis&lt;br /&gt;
* Priit Rätsep, DK12 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Annika Kask, 11 - ePubi loomine Windowsis&lt;br /&gt;
* Ingvar Lukas, 14 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Joonas Ervald, DK11 - Protsessori ülekiirendamine&lt;br /&gt;
* Merike Meizner, DK11, Automaatne privaatne veebilehitsemine Linuxis&lt;br /&gt;
* Kuldar Teinmann, AK11 - Failijagamine FTP-ga Linuxis&lt;br /&gt;
* Madis Niinelt, IA18 - Kioskirežiim Linuxis&lt;br /&gt;
* Pavel Fleišer, 14 - Failijagamine FTP-ga Linuxis / Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Simo Jaanus, 13 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Marten Tammeleht, 13 - Külalise kasutaja disainimine Linuxis&lt;br /&gt;
* Hardi Tiitus, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Helen Oppar, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Henri Paves, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Andrei Pugatšov, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Anton Meženin, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Kristo Leesmann, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Vjatsheslav Aprelkov,DK11 - Paigaldatud teise töölauakeskkonna eemaldamine &lt;br /&gt;
* Anita Sepp, DK12 - Teine töölauakeskkond Linuxile&lt;br /&gt;
* Radne Kaal, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Andero Samelselg, 15 - Vabavaraline salasõnade haldur; ePub loomine Linuxis&lt;br /&gt;
* Pille Ulmas, DK13 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Henrik Prangel, 12 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Lisette Noor, D23 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Liina Laumets, DK13 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Liina Laumets, DK13 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Andreas Porman, DK13- Kiirustest Linuxis&lt;br /&gt;
* Anton Kuksov, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Erik Kaup, 13 - VPN Linuxile&lt;br /&gt;
* Andres Kalavus, 12 - Automaatne privaatne veebilehitsemine Windowsis&lt;br /&gt;
* Sander Pihelgas, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Tanel Peep, AK11 - Ajastatud toimingute keelamine kasutajatele Linuxis ja skripti loomine CRONi&lt;br /&gt;
* Anna Levijeva, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Elizaveta Romanova, 11 - Turvaline Skype’i analoog Linuxile &lt;br /&gt;
* Meelis Osi, AK11 - Grep käsk Windowsi keskkonnas&lt;br /&gt;
*Kristina Rästas, 13 - Adobe Reader Linuxile&lt;br /&gt;
* Brit Valdek, DK14 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Sergei Kaganski, DK14 -ePub loomine MacOS-is&lt;br /&gt;
* Joonas Rihma, DK11 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Martin Kokk, 11 - Salasõna eemaldamine PDF faililt&lt;br /&gt;
* Maile Mäesalu, DK14 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - DWG-failide avamine Linuxis. &lt;br /&gt;
* Jevgeni Jurtsenko DK13, 59 - Võtmefailiga SSH sisselogimine&lt;br /&gt;
* Georg Kahest AK11, - Võtmefailiga SSH sisselogimine / NTP&lt;br /&gt;
* Konstantin Dmitrijev IA18 - DWG-failide avamine Linuxis&lt;br /&gt;
* Kert Saarma, 12 - VPN Linuxile&lt;br /&gt;
* Ruudi Vinter, DK12 - Teise töölauakeskonna eemaldamine Linuxis, Linuxi kioskirežiim&lt;br /&gt;
* Alo Avi, 14 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Indro Kottise, 15 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Kaarel Kaine, DK12 - Automaatne sisselogimine külalise kontoga, Linuxi kioskirežiim&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - EPUB loomine Windowsis&lt;br /&gt;
* Anni - Bessie Kitt, DK14 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Karen Grigorjan, DK12 - GRUBi taastamine&lt;br /&gt;
* Leho Kivistik, 14 - EPUB loomine Windowsis&lt;br /&gt;
* Egert Loss, DK14, Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Tõnis Prants, 15, Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Mihkel Tääkre, 15, Programmi(de) automaatne käivitamine.&lt;br /&gt;
* Henri ANnilo, DK13, QR kood Windowsis&lt;br /&gt;
* Rene Väli, DK13 - Sügavkülmutus Windowsis&lt;br /&gt;
* Edgar Tereping, 14 - EPUB loomine Windowsis&lt;br /&gt;
* Liis Talsi, DK-14 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Erki Aas, 12 - Windowsi krüpteerimine, GRUB-i turvamine&lt;br /&gt;
* Carlos Kirtsi, 12 - Teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Timo Otsing, 11 - Salasõna eemaldamine PDF faililt.&lt;br /&gt;
* Arthur Luste - Itchev, 13 - Open Source asendus Skype-le.&lt;br /&gt;
* Simo Sirkas, 15 - Programmi(de) automaatne käivitamine&lt;br /&gt;
* Martin Laadoga, 14 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Sven Veelaid, ISd14 - QR-kood Windowsis&lt;br /&gt;
*Kristiina Keelmann, DK14 - Salasõna eemaldamine PDF faililt&lt;br /&gt;
*Alvar Suun DK13- Linuxi automaatne uuendamine&lt;br /&gt;
* Aleksandra Sepp, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Kai Trumm, 11/IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Karl Erik Õunapuu, 15 - VPN Linuxis&lt;br /&gt;
* Siim Ošur, ISd13 - GRUB&#039;i taastamine&lt;br /&gt;
* Mihkel Nõmm, 12 - Alglaaduri taastamine peale Windowsi paigaldamist&lt;br /&gt;
* Madis Heinsoo, 13 - Alglaaduri taastamine peale Windowsi paigaldamist&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=123878</id>
		<title>I027 iseseisvad tööd</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=123878"/>
		<updated>2017-08-18T13:55:35Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käesolev artikkel on loodud aine &amp;quot;[[Sissejuhatus infotehnoloogiasse ja riistvarasse]] (ainekoodiga I027)&amp;quot; iseseisvate tööde haldamiseks.&lt;br /&gt;
Aines on vaja teha 3 praktilist tööd ja seminaritöö, mis on kõik kirjeldatud &amp;quot;Praktikumid&amp;quot; pealkirja all viidatud dokumendis.&lt;br /&gt;
&lt;br /&gt;
Palun siia dokumenti panna kirja valitud praktikumi nimetus. Ülikooli kasutajaga saavad tudengid ka vikit muuta. Muudatused salvestuvad ka ajaloos.&lt;br /&gt;
&lt;br /&gt;
See üllas eesmärk on, et võimalikult erinevaid praktikumid ja probleemilahendus saaks valitud.&lt;br /&gt;
Siit dokumendist te näete, mida keegi parasjagu tegemas on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Igor Budnitski, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Närep, DK11 - SSH vestlus&lt;br /&gt;
* Ingvar Lukas, 14 - Info riistvara kohta&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Rommot, 13 - Linuxile teine töölaud&lt;br /&gt;
* Nele Naris, IA18 - Info riistvara kohta&lt;br /&gt;
* Katrin Lasberg, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrek Laanemets, 11 - Info riistvara kohta&lt;br /&gt;
* Peeter Fridolin, 13 - SSH Windows + Linux&lt;br /&gt;
* Kristo Tero, IA18 - LAMP paigaldus&lt;br /&gt;
* Siim Kustassoo, IA18 - Info riistavara kohta&lt;br /&gt;
* Rain Adamson, 41 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Rein Remsu, IA17 - SSH Windows + Linux&lt;br /&gt;
* Piret Spitsõn, DK11 - Info riistvara kohta&lt;br /&gt;
* Tanel Vari, DK13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mihkel-Erik Mägi - Linuxile teine töölaud&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Info riistvara kohta&lt;br /&gt;
* Sander Ratassepp, 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Info riistvara kohta&lt;br /&gt;
* Triin Palm, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Maie Palmeos, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Dmitri Lukaš, DK11 - Info ristvara kohta&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Info riistvara kohta&lt;br /&gt;
* Leonid Grigorjevski,  IA18 - Info riistvara kohta&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Iakov Kanyuchka, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Roosioks, D22 - Info riistvara kohta&lt;br /&gt;
* Rauno Lõhmus, 13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maile Mäesalu, DK14 - Info riistvara kohta&lt;br /&gt;
* Alan Alliksoo, DK11 - Info riistvara kohta&lt;br /&gt;
* Reilika Saks, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Andres Tambek, DK12 - Info riistvara kohta&lt;br /&gt;
* Hardi Tiitus, DK12 - Info riistvara kohta&lt;br /&gt;
* Jan Pentšuk, DK12 - Info riistvara kohta&lt;br /&gt;
* Pille Ulmas, DK13 - Info riistvara kohta&lt;br /&gt;
* Peeter Stamberg, DK 11 - Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kreet Solnask, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristo Leesmann, 13 - LAMP paigaldus&lt;br /&gt;
* Kristjan Leotoots, DK12 - SSH Windows + Linux&lt;br /&gt;
* Erki Aas, 12 - LAMP paigaldus&lt;br /&gt;
* Liis Talimaa, DK12, Info riistvara kohta&lt;br /&gt;
* Irina Geidarova, IA18 Linuxi tööjaama paigaldus&lt;br /&gt;
* Ruudi Vinter, DK12 - Info riistvara kohta&lt;br /&gt;
* Anton Kuksov, 12 - LAMP paigaldus&lt;br /&gt;
* Eduard Kõre, AK11 - Info riistvara kohta&lt;br /&gt;
* Marie Udam, DK14 - Info riistvara kohta&lt;br /&gt;
* Erik Ehrbach, DK14 - LAMP paigaldus&lt;br /&gt;
* Jüri Ahhundov, DK11 - Info riistvara kohta&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Info riistvara kohta&lt;br /&gt;
* Kaisa Lindström, 15 - Info riistvara kohta&lt;br /&gt;
* Marko Esna, AK11 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Jana Kindlam, DK12 – info riistvara kohta&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - info riistvara kohta&lt;br /&gt;
* Kadi Koppelmann, DK14 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Võrklaev, AK11 - Info riistvara kohta&lt;br /&gt;
* Rudolf Purge, AK11 - Info riistvara kohta&lt;br /&gt;
* Ilmar Ermus, IA17 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Leho Kivistik, 14 - Info riistvara kohta&lt;br /&gt;
* Hannes Mäeorg, 14 - Info riistvara kohta&lt;br /&gt;
* Alexander Teder, 12 - Info riistvara kohta&lt;br /&gt;
* Jüri Vinnal, IA18 - Info riistvara kohta&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - Info riistvara kohta&lt;br /&gt;
* Radne Kaal, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Pärtel, 14 - Lapikute serverite töökorrastamine: Riistvara, Arch ja SSH.&lt;br /&gt;
* Kuldar Teinmann, AK11 - LAMP paigaldus&lt;br /&gt;
* Pavel Fleišer, 14 - LAMP paigaldus&lt;br /&gt;
* Katrin Kello, 14 - Info riistvara kohta&lt;br /&gt;
* Madis Liik, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - LAMP paigaldus&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Filip Fjodorov, AK11 - Info riistvara kohta&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - info riistvara kohta&lt;br /&gt;
* Ruti Kerro, IA17 - LAMP paigaldus&lt;br /&gt;
* Artur Kapranov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Annika Kask, 11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Anton Meženin, DK14 - Info riistvara kohta&lt;br /&gt;
* Martti-Heiki Must, IA17 - Info riistvara kohta&lt;br /&gt;
* Marten Tammeleht, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Indro Kottise, 15 - Info riistvara kohta&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Info riistvara kohta&lt;br /&gt;
* Merike Meizner, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Info riistvara kohta&lt;br /&gt;
* Henri Annilo, DK13 - SSH Windows + Linux&lt;br /&gt;
* Laura Lenbaum, IA18 - Info riistvara kohta&lt;br /&gt;
* Donna Nurmbek, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Kurel, 12 - Info riistvara kohta&lt;br /&gt;
* Joonas Rihma, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Helen Oppar, DK12 - Info riistvara kohta&lt;br /&gt;
* Tanel Peep, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Brit Valdek, DK14 - Info riistvara kohta&lt;br /&gt;
* Oliver Nurk, 11 - Info riistvara kohta&lt;br /&gt;
* Erik Kaup, 13 - Info riistvara kohta&lt;br /&gt;
* Rait Rand, 11 - Info riistvara kohtan&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Meelis Mikk, 11 - Info riistvara kohta&lt;br /&gt;
* Karoliina Vasli - LAMP paigaldus&lt;br /&gt;
* Aare Taveter - IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Sirkas, 15 - Info riistvara kohta&lt;br /&gt;
* Mihkel Tääkre, 15 - Info riistvara kohta&lt;br /&gt;
* Annely Vattis AK11- Info riistvara kohta&lt;br /&gt;
* Valdo Taevere, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Anni- Bessie Kitt, DK14 - Info riistvara kohta&lt;br /&gt;
* Reio Meiusi, 15 - Info riistvara kohta&lt;br /&gt;
* Marju Niinemaa IA17 - Info riistvara kohta&lt;br /&gt;
* Tarmo Luugus, 14 - Info riistvara kohta&lt;br /&gt;
* Martin Laadoga, 14 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Rasmus Tammets, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Sirli Mürk, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rene Väli, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrei Pugatšov, DK14 - Info riistvara kohta&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anna Levijeva, 12 - LAMP paigaldus&lt;br /&gt;
* Maarja-Liisa Pilvik, DK14 - Info riistvara kohta&lt;br /&gt;
* Henrik Prangel, 12 - Info riistvara kohta&lt;br /&gt;
* Vjatsheslav Aprelkov, DK11 - Info riistvara kohta&lt;br /&gt;
* Sergei Kaganski, DK14 - Info riistvara kohta&lt;br /&gt;
* Andrei Tomba, DK14 - info riistvara kohta&lt;br /&gt;
* Siim Oselein, ISa11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Lisette Noor, D23 - Info riistvara kohta&lt;br /&gt;
* Kirstin Saluveer, DK13 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Lauri Üksti, DK14 - info riistvara kohta&lt;br /&gt;
* Arnika Rästa, ISd14 - info riistvara kohta&lt;br /&gt;
* Alo Avi, ISd14 - LAMP paigaldus&lt;br /&gt;
* Gert Vesterberg, DK11 - LAMP paigaldus&lt;br /&gt;
* Anna Amelkina, AK11 - Info riistvara kohta&lt;br /&gt;
* Egert Loss, DK14, Linux serveri paigaldus&lt;br /&gt;
* Ahto Ahven, 15, Info riistvara kohta&lt;br /&gt;
* Villem Markus Loigom, 11, SSH vestlus&lt;br /&gt;
* Frank Karl Koppel, 11, SSH vestlus&lt;br /&gt;
* Juta Jaama, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Kaine, DK12 - Info riistvara kohta&lt;br /&gt;
* Kert Saarma, 12 - Info riistvara kohta&lt;br /&gt;
* Martin Kokk, 11 - Linuxi serveri paigaldus&lt;br /&gt;
* Artur Tammiste, 14 - Info riistvara kohta&lt;br /&gt;
* Paul Richard Lettens, 12 - Info riistvara kohta&lt;br /&gt;
* Liina Laumets, DK13 - Info riistvara kohta&lt;br /&gt;
* Martin Tammai, 11 - Info riistvara kohta&lt;br /&gt;
* Margus Põlma, 15, LAMP paigaldus&lt;br /&gt;
* Kersti Perandi, DK13 - Info riistvara kohta&lt;br /&gt;
* Tõnis Prants, 15, Linuxi tööjaama paigaldus&lt;br /&gt;
* Andres Kalavus, 12, APT-i analoog Windowsis&lt;br /&gt;
* Sven Veelaid, ISd14 - info riistvara kohta&lt;br /&gt;
* Helen Riisalu, 11 - Info riistvara kohta&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Info riistvara kohta&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Info riistvara kohta&lt;br /&gt;
* Karl Erik Õunapuu, 15 - LAMP paigaldus&lt;br /&gt;
* Marite Rammo, 15 - Info riistvara kohta&lt;br /&gt;
* Georg Kahest, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Jekaterina Losseva, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Niinelt, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Tammekänd, DK12 - Info riistvara kohta&lt;br /&gt;
* Brita Pentšuk, 13 - Info riistvara kohta&lt;br /&gt;
* Dmitri Kiriljuk, AK11 - Info riistvara kohta&lt;br /&gt;
* Joonas Ervald, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Priit Järv, 12 - Info riistvara kohta&lt;br /&gt;
* Henri Paves, AK11 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Info riistvara kohta&lt;br /&gt;
* Sander Pihelgas, AK11 - Info riistvara kohta&lt;br /&gt;
* Andreas Porman, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Andres Leppik, DK13 - Info riistvara kohta&lt;br /&gt;
* Kristina Rästas, 13 - Linux serveri paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - Info riistvara kohta&lt;br /&gt;
* Meelis Osi, AK11 - Info riistvara kohta&lt;br /&gt;
* Liis Talsi, DK14 - Info riistvara kohta&lt;br /&gt;
* Edgar Tereping, 14 - Info riistvara kohta&lt;br /&gt;
* Karen Grigorjan, DK12 - LAMP Paigaldus&lt;br /&gt;
* Marek Skorohhodov, AK11 - Info riistvara kohta + Linux serveri paigaldus&lt;br /&gt;
* Karmen Lillemets, 14 - Info riistvara kohta&lt;br /&gt;
* Teele Puusepp IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristiina Keelmann DK14 -  Info riistvara kohta&lt;br /&gt;
* Hans Kõll, DK14 - Info riistvara kohta&lt;br /&gt;
* Siim Ošur, ISd13 - E-posti krüpto&lt;br /&gt;
* Timo Otsing, 11 - Teine GUI windowsile&lt;br /&gt;
* Siim Puskar, IA18 - Info riistvara kohta&lt;br /&gt;
* Mihkel Nõmm, 12 - MSO → ODF dokumentide konverteerimine | Windows Subsystem for Linux&lt;br /&gt;
* Kai Trumm, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Heinsoo, 13 - Info riistvara kohta&lt;br /&gt;
&lt;br /&gt;
=2.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxile Teine Töölaud&lt;br /&gt;
* Egert Närep, DK11 - SSH Windows+Linux&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxile teine töölaud&lt;br /&gt;
* Rando Rommot, 13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Lasberg, DK13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrek Laanemets, 11 - Linuxile teine töölaud&lt;br /&gt;
* Kristo Tero, IA18 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Siim Kustassoo, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Rain Adamson, 41 - LibreOffice&#039;i hulgipaigaldus&lt;br /&gt;
* Rein Remsu, IA17 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Mihkel-Erik Mägi, 13 - Teine GUI Windowsile.&lt;br /&gt;
* Nele Naris, IA18 - E-posti krüpto&lt;br /&gt;
* Piret Spitsõn, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Tanel Vari, DK 13 - Info riistvara kohta&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Madis Roosioks, D22 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Triin Palm, IA18 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maie Palmeos, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Dmitri Lukaš, DK11 - Windows Subsystem for Linux / APT&#039;i analoog Windowsile&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Alan Alliksoo, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Reilika Saks, IA17 - E-posti krüpto&lt;br /&gt;
* Andres Tambek, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Hardi Tiitus, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jan Pentšuk, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Irina Geidarova, IA18 Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kreet Solnask, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristjan Leotoots, DK12 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Liis Talimaa, DK12, SSH Windows+Linux&lt;br /&gt;
* Eduard Kõre, AK12 - SSH Windows+Linux&lt;br /&gt;
* Erik Ehrbach, DK14 - SSH Windows+Linux&lt;br /&gt;
* Helen Oppar, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jüri Ahhundov, DK11 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristina Garmatjuk, DK11 - LAMP paigaldus&lt;br /&gt;
* Jana Kindlam, DK12 – Linuxi tööjaama paigaldus&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - LAMP paigaldus&lt;br /&gt;
* Marko Esna, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Alexander Teder, 12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - LAMP paigaldus&lt;br /&gt;
* Madis Liik, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Annika Kask, 11 - Info riistvara kohta&lt;br /&gt;
* Rando Kurel, 12- Linuxi tööjaama paigaldus&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Ingvar Lukas, 14 - LAMP paigaldus&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxi serveri paigaldus&lt;br /&gt;
* Brita Pentšuk, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Anton Kuksov, 12 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristo Leesmann, 13 - APT-i analoog Windowsile&lt;br /&gt;
* Sander Ratassepp, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Peeter Fridolin, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Rihma, DK11 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Vjatšeslav Aprelkov, DK11 - Linuxile teine töölaud&lt;br /&gt;
* Sergei Kaganski, DK14 - Raspberry Pi&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - LAMP paigaldus&lt;br /&gt;
* Merike Meizner, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrei Pugatšov, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Ervald, DK11 - Raspberry Pi&lt;br /&gt;
* Kuldar Teinmann, AK11 - SSH Windows+Linux&lt;br /&gt;
* Lauri Üksti, DK14 - Mac+Windows kaksikkäivitus, uusim LTS, uus vaikimisi töölaua keskkond&lt;br /&gt;
* Pavel Fleišer, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Linuxile Teine Töölaud&lt;br /&gt;
* Marten Tammeleht, 13 - Teine GUI Windowsile&lt;br /&gt;
* Anna Levijeva, 12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - E-posti krüpto&lt;br /&gt;
* Laura Lenbaum IA18- E-posti krüpto&lt;br /&gt;
* Henri Paves, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Ruti Kerro, IA17 - APT analoog Windowsile&lt;br /&gt;
* Merilyn Merisalu, 13 - LAMP paigaldus&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxile teine töölaud&lt;br /&gt;
* Anton Meženin, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Marie Udam, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Ilmar Ermus, IA17 - SSH Windows + Linux&lt;br /&gt;
* Madis Niinelt, IA18 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Maile Mäesalu, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Andreas Porman, DK13 - LAMP paigaldus&lt;br /&gt;
* Pille Ulmas, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Henrik Prangel, 12 - Linuxile teine töölaud&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Radne Kaal, IA18 - E-posti krüpto&lt;br /&gt;
* Rait Rand, 11 - Linuxile teine töölaud&lt;br /&gt;
* Sander Pihelgas, AK11 - LAMP paigaldus&lt;br /&gt;
* Andres Leppik, DK13 - Linuxile teine töölaud&lt;br /&gt;
* Lisette Noor, D23 - Teine GUI Windowsile&lt;br /&gt;
* Carlos Kirtsi, 12 - Linuxile teine töölaud&lt;br /&gt;
* Annely Vattis, AK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kristina Rästas, 13 - LAMP paigaldus&lt;br /&gt;
* Andres Kalavus, 12 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Tanel Peep, AK11 - LAMP paigaldus&lt;br /&gt;
* Andrei Tomba, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxile teine töölaud&lt;br /&gt;
* Igor Budnitski, IA17 - SSH Windows+Linux&lt;br /&gt;
* Brit Valdek, DK14 - Raspberry PI&lt;br /&gt;
* Martin Kokk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Meelis Mikk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Artur Kapranov - LAMP Paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - E-posti krüpto&lt;br /&gt;
* Mihkel Tääkre, 15 - LAMP Paigaldus&lt;br /&gt;
* Liina Laumets, DK13, Windows Subsystem for Linux &lt;br /&gt;
* Tõnis Prants, 15 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Georg Kahest, AK11 - E-posti krüpto&lt;br /&gt;
* Meelis Osi, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Kert Saarma, 12 - Linuxile teine töölaud&lt;br /&gt;
* Ruudi Vinter, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Alo Avi, 14 - E-posti krüpto&lt;br /&gt;
* Indro Kottise, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anni-Bessie Kitt DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Liis Talsi DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Aleksandr Petrušihin - DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Kaarel Kaine, DK12 - Linux serveri paigaldus, LAMP serveri paigaldus&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Linuxile teine töölaud&lt;br /&gt;
* Ahto Ahven, 15 - Linuxile teine töölaud&lt;br /&gt;
* Hannes Mäeorg, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Edgar Tereping, 14 - E-posti krüpto&lt;br /&gt;
* Karen Grigorjan, DK12 - E-posti krüpto&lt;br /&gt;
* Henri Annilo, DK13 - E-posti krüpto&lt;br /&gt;
* Jekaterina Losseva, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Leho Kivistik, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Loss, DK14, MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Rene Väli, DK13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Kello 12- LAMP paigaldus&lt;br /&gt;
* Alvar Suun DK13- SSH Windows+Linux&lt;br /&gt;
* Siim Ošur, ISd13 - Katkematu kaughaldus (GUI+CLI) piiratud võrgus&lt;br /&gt;
* Teele Puusepp IA17 - E-posti krüpto&lt;br /&gt;
* Martin Laadoga, 14 - Info Riistvara Kohta&lt;br /&gt;
* Marite Rammo, 15 - Linuxile teine töölaud&lt;br /&gt;
* Siim Oselein, 11 - Linuxi teine töölaud&lt;br /&gt;
* Erki Aas, 12 - Windowsi ja Linuxi kaksikkäivitus&lt;br /&gt;
* Timo Otsing, 11 - Linuxile teine töölaud&lt;br /&gt;
* Arthur Luste - Itchev, 13 - Windowsi teine GUI.&lt;br /&gt;
* Simo Sirkas, 15 - LAMP paigaldus&lt;br /&gt;
* Sven Veelaid, ISd14 - Teine GUI Windowsile&lt;br /&gt;
* Karl Erik Õunapuu, ISd15 - E-posti krüpto&lt;br /&gt;
* Kristiina Keelmann, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Gert Vesterberg, DK11 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Filip Fjodorov, AK11 - Linuxi serveri paigaldus&lt;br /&gt;
* Hans Kõll, DK14, Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Karoliina Vasli IA18 - Linuxile teine töölaud&lt;br /&gt;
* Artur Tammiste, 14 - Linuxile teine töölaud&lt;br /&gt;
* Juta Jaama, IA18 - E-posti krüpto&lt;br /&gt;
* Siim Puskar, IA18 - E-posti krüpto&lt;br /&gt;
* Mihkel Nõmm, 12 - Teine GUI Windowsile | Windowsi ja Linuxi kaksikkäivitus&lt;br /&gt;
* Madis Heinsoo, 13 - Linuxi tööjaama paigaldus&lt;br /&gt;
&lt;br /&gt;
=Probleemilahendus=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - EXT4 on Windows. &lt;br /&gt;
* Egert Närep, DK11 - VPN Linuxis&lt;br /&gt;
* Jaan Veikesaar, 11 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Laura Lenbaum, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Nele Naris, IA18 - ePub loomine Windowsis&lt;br /&gt;
* Madis Roosioks, D22 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Katrin Lasberg, DK13 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Andrek Laanemets, 11 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Kristo Tero, IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Siim Kustassoo IA18 - ePub loomine Windowsis&lt;br /&gt;
* Rain Adamson, 41 - Ajastatud toimingute keelamine kasutajatele Linuxis.&lt;br /&gt;
* Rein Remsu, IA17 - Sügavkülmutus Linuxis&lt;br /&gt;
* Jooni Soots, IA17 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Piret Spitsõn, DK11 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Kreet Solnask, IA17 - ePub loomine MacOS-is&lt;br /&gt;
* Tanel Vari, DK 13 - QR kood MacOS-s &lt;br /&gt;
* Jaan Koolmeister, DK 13 - Kiirusetest Linuxis&lt;br /&gt;
* Rando Rommot, 13 - Kasutaja lukustamine Linuxis.&lt;br /&gt;
* Marilyn Võsu, DK11 - Kustunud faili(de) taastamine&lt;br /&gt;
* Triin Palm, IA18 - Pilveketas sõltumata operatsioonisüsteemist&lt;br /&gt;
* Maie Palmeos, DK11 - Automaatne privaatne veebilehitseja Windowsis&lt;br /&gt;
* Dmitri Lukaš, DK11 - ePub loomine Windowsis / Programmide automaatkäivitus / Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Dmitri Tšurjumov. IA17 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Unustatud salasõna taastamine&lt;br /&gt;
* Alan Alliksoo, DK11 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Reilika Saks, IA17 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Andres Tambek, DK12 - Külalise kasutaja disainimine Linuxis.&lt;br /&gt;
* Jan Pentšuk, DK12 - Kustunud faili(de) taastamine&lt;br /&gt;
* Filip Fjodorov, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Karit Kilgi, DK 32 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Eduard Kõre, AK12 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Jüri Ahhundov, DK11 - Tekstirežiimis (CLI) käivitamine.&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Madis Võrklaev, AK11 - Kioskirežiim Linuxis&lt;br /&gt;
* Marko Esna, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Alexander Teder, 12 Automaatne Windowsi uuendamine etteantud ajal.&lt;br /&gt;
* Merilyn Merisalu, 13 - Automaatne sisselogimine külalise kontoga&lt;br /&gt;
* Merilyn Merisalu, 13 - Kasutajanimede keelamine sisselogimisekraanilt&lt;br /&gt;
* Merilyn Merisalu, 13 - Külalise konto ärakeelamine sisselogimisekraanilt&lt;br /&gt;
* Ruti Kerro, IA17 - Programmi sulgemine jõuga ja kokkujooksmise vältimine Linuxis&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Markus Kildemaa, 15 - Külalise konto vaikimisi sisse logima&lt;br /&gt;
* Brita Pentšuk, 13 - Failisüsteemi haakimine - NTFS Linuxis&lt;br /&gt;
* Peeter Fridolin, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Andrei Tomba, DK14 - Kiirusetest Linuxis&lt;br /&gt;
* Priit Rätsep, DK12 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Annika Kask, 11 - ePubi loomine Windowsis&lt;br /&gt;
* Ingvar Lukas, 14 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Joonas Ervald, DK11 - Protsessori ülekiirendamine&lt;br /&gt;
* Merike Meizner, DK11, Automaatne privaatne veebilehitsemine Linuxis&lt;br /&gt;
* Kuldar Teinmann, AK11 - Failijagamine FTP-ga Linuxis&lt;br /&gt;
* Madis Niinelt, IA18 - Kioskirežiim Linuxis&lt;br /&gt;
* Pavel Fleišer, 14 - Failijagamine FTP-ga Linuxis / Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Simo Jaanus, 13 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Marten Tammeleht, 13 - Külalise kasutaja disainimine Linuxis&lt;br /&gt;
* Hardi Tiitus, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Helen Oppar, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Henri Paves, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Andrei Pugatšov, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Anton Meženin, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Kristo Leesmann, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Vjatsheslav Aprelkov,DK11 - Paigaldatud teise töölauakeskkonna eemaldamine &lt;br /&gt;
* Anita Sepp, DK12 - Teine töölauakeskkond Linuxile&lt;br /&gt;
* Radne Kaal, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Andero Samelselg, 15 - Vabavaraline salasõnade haldur; ePub loomine Linuxis&lt;br /&gt;
* Pille Ulmas, DK13 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Henrik Prangel, 12 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Lisette Noor, D23 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Liina Laumets, DK13 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Liina Laumets, DK13 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Andreas Porman, DK13- Kiirustest Linuxis&lt;br /&gt;
* Anton Kuksov, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Erik Kaup, 13 - VPN Linuxile&lt;br /&gt;
* Andres Kalavus, 12 - Automaatne privaatne veebilehitsemine Windowsis&lt;br /&gt;
* Sander Pihelgas, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Tanel Peep, AK11 - Ajastatud toimingute keelamine kasutajatele Linuxis ja skripti loomine CRONi&lt;br /&gt;
* Anna Levijeva, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Elizaveta Romanova, 11 - Turvaline Skype’i analoog Linuxile &lt;br /&gt;
* Meelis Osi, AK11 - Grep käsk Windowsi keskkonnas&lt;br /&gt;
*Kristina Rästas, 13 - Adobe Reader Linuxile&lt;br /&gt;
* Brit Valdek, DK14 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Sergei Kaganski, DK14 -ePub loomine MacOS-is&lt;br /&gt;
* Joonas Rihma, DK11 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Martin Kokk, 11 - Salasõna eemaldamine PDF faililt&lt;br /&gt;
* Maile Mäesalu, DK14 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - DWG-failide avamine Linuxis. &lt;br /&gt;
* Jevgeni Jurtsenko DK13, 59 - Võtmefailiga SSH sisselogimine&lt;br /&gt;
* Georg Kahest AK11, - Võtmefailiga SSH sisselogimine / NTP&lt;br /&gt;
* Konstantin Dmitrijev IA18 - DWG-failide avamine Linuxis&lt;br /&gt;
* Kert Saarma, 12 - VPN Linuxile&lt;br /&gt;
* Ruudi Vinter, DK12 - Teise töölauakeskonna eemaldamine Linuxis, Linuxi kioskirežiim&lt;br /&gt;
* Alo Avi, 14 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Indro Kottise, 15 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Kaarel Kaine, DK12 - Automaatne sisselogimine külalise kontoga, Linuxi kioskirežiim&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - EPUB loomine Windowsis&lt;br /&gt;
* Anni - Bessie Kitt, DK14 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Karen Grigorjan, DK12 - GRUBi taastamine&lt;br /&gt;
* Leho Kivistik, 14 - EPUB loomine Windowsis&lt;br /&gt;
* Egert Loss, DK14, Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Tõnis Prants, 15, Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Mihkel Tääkre, 15, Programmi(de) automaatne käivitamine.&lt;br /&gt;
* Henri ANnilo, DK13, QR kood Windowsis&lt;br /&gt;
* Rene Väli, DK13 - Sügavkülmutus Windowsis&lt;br /&gt;
* Edgar Tereping, 14 - EPUB loomine Windowsis&lt;br /&gt;
* Liis Talsi, DK-14 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Erki Aas, 12 - Windowsi krüpteerimine, GRUB-i turvamine&lt;br /&gt;
* Carlos Kirtsi, 12 - Teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Timo Otsing, 11 - Salasõna eemaldamine PDF faililt.&lt;br /&gt;
* Arthur Luste - Itchev, 13 - Open Source asendus Skype-le.&lt;br /&gt;
* Simo Sirkas, 15 - Programmi(de) automaatne käivitamine&lt;br /&gt;
* Martin Laadoga, 14 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Sven Veelaid, ISd14 - QR-kood Windowsis&lt;br /&gt;
*Kristiina Keelmann, DK14 - Salasõna eemaldamine PDF faililt&lt;br /&gt;
*Alvar Suun DK13- Linuxi automaatne uuendamine&lt;br /&gt;
* Aleksandra Sepp, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Kai Trumm, 11/IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Karl Erik Õunapuu, 15 - VPN Linuxis&lt;br /&gt;
* Siim Ošur, ISd13 - GRUB&#039;i taastamine&lt;br /&gt;
* Mihkel Nõmm, 12 - Alglaaduri taastamine peale Windowsi paigaldamist&lt;br /&gt;
* Madis Heinsoo, 13 - Alglaaduri taastamine peale Windowsi paigaldamist&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Kkilgi</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=123703</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=123703"/>
		<updated>2017-06-15T06:08:00Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond: CoverMe */&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:DevHelpVR Talk:DevHelpVR] [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>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:Team_SPOT&amp;diff=123702</id>
		<title>Talk:Team SPOT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:Team_SPOT&amp;diff=123702"/>
		<updated>2017-06-15T06:06:34Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond CoverMe retsensioon meeskonnale SPOT */&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/Ticketer Ticketer]=&lt;br /&gt;
==XML fail==&lt;br /&gt;
Faili üldstruktuur on projekti wiki lehel hästi lahti kirjutatud (norida saab selle kallal, et kõiki tekstis viidatud linke wiki lehel ei ole). XML-fail vastab kirjeldusele. Failis selgitavad kommentaarid puuduvad. Samas on fail loogiliselt struktureeritud ja kergesti arusaadav. &lt;br /&gt;
Elementide nimed on loogilised. Elementide ja atribuutide nimedes on kasutatud ühtset stiili.&lt;br /&gt;
&lt;br /&gt;
Võib-olla tasuks märkida treenerite juures välja tuua, millise treeningstiili treeninguid iga treener teeb / saab läbi viia.&lt;br /&gt;
&lt;br /&gt;
Andmete paigutus atribuutidesse ja elementidesse tundub mõistlik. Võimalik, et litsentside info võiks eraldi elemendina olla. Kui tähte närida, siis toimumiskoha atribuudis määramine välistab treeningud, mis toimuvad mitmes ruumis.&lt;br /&gt;
&lt;br /&gt;
Kirjeldusi ja nimesid sisaldavate elementide sisu on näitefailis esitatud ohutult CDATA lõikudena.&lt;br /&gt;
&lt;br /&gt;
Näidisfail valideerub ning vastab struktuuri keerukuskirteeriumitele - on vähemalt neli loogilist dimensiooni; vähemalt kolmel dimensioonil on kasutatud ID-st informatiivsemaid atribuute.&lt;br /&gt;
&lt;br /&gt;
==XML schema==&lt;br /&gt;
Näidisfail vastab schema tingimustele. Andmetüübid vastavad andmete sisule ja eeldatavale kasutusele.&lt;br /&gt;
&lt;br /&gt;
Mõnes kohas tundub, et elementide ja atribuutide kohustuslikuks tegemisega on liialdatud. Vaieldav, kas treeneri reiting, treeningut kirjeldav video või treeningu kirjeldus peavad kindlasti kohustuslikud olema. Samuti pole lubatud ilma ühegi scheduledItemita treeningud.&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;
Transformatsioon vastab esitatud keerukuse tingimustele. Kasutatud on mitut foreach tsüklit, tingimuste kontrolli, stringitöötlust, defineeritud muutujaid.&lt;br /&gt;
&lt;br /&gt;
Andmed on esitatud loogiliselt ja arusaadavalt. HTML on keerukam kui XML-st välja nopitud teksti listis välja kuvamine. Kujunduses on kasutatud CSS-i. Andmete esitamiseks on kasutatud tabeleid ja iframe’e. &lt;br /&gt;
&lt;br /&gt;
XSLT fail valideerub. Väljundiks olev HTML annab W3C validaatoris kaks errorit (“no document type declaration; implying &amp;quot;&amp;lt;!DOCTYPE HTML SYSTEM&amp;gt;” ja “required attribute &amp;quot;TYPE&amp;quot; not specified &amp;lt;style&amp;gt;”)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; XML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Transformatsioon on piisavalt keerukas (nested foreache’id; tingimuskontrollid jne). Transformatsioon vastab kirjeldusele ning on teostatud korrektselt.&lt;br /&gt;
&lt;br /&gt;
Nii XLST fail kui väljundiks olev XML fail valideeruvad.&lt;br /&gt;
&lt;br /&gt;
Mõlema transformatsiooni loetavusele oleks kommentaarid abiks tulnud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Retsensioon meeskonna Team SPOT veebiteenusele=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna [https://wiki.itcollege.ee/index.php/Team_SPOT Team_SPOT] veebiteenusele meeskonna [https://wiki.itcollege.ee/index.php/A$unik A$unik] poolt.&lt;br /&gt;
&lt;br /&gt;
Taaskord (nagu meeskonna [https://wiki.itcollege.ee/index.php/Ticketer Ticketer] klientrakenduse retsensiooni tehes) jäi esimese asjana silma rakendust alla laadides see, et pole eemaldatud obj ja bin faile. See teeb lähtekoodi paki mõttetult suureks: antud rakenduse puhul ~200MB. Lihtne variant oleks need kaustad välistada (GIT korral) .gitignore failis ja siis linkida repo kloonimiseks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse eesmärgiks on väljastada ning vastu võtta andmeid treeningute kohta. Järgnevas retsensioonis lähtutakse SPOT meeskonna lehel olevast analüüsist, projekti koodi vaatamisest ning Postman-iga tehtud päringutest teenuse vastu, et hinnata tehtut (vähesel määral sai ka klientrakenduse abil brauseri võrguliikluse kaudu veebiteenusele tehtavaid päringuid uuritud).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;„Peaks olema“ sektsiooni analüüs vaadates veebiteenuse koodi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementeeritud on:&lt;br /&gt;
&lt;br /&gt;
1.	kasutajate loomine;&lt;br /&gt;
&lt;br /&gt;
2.	autentimine;&lt;br /&gt;
&lt;br /&gt;
3.	klubide, treenerite ja treeningute info väljastamine;&lt;br /&gt;
&lt;br /&gt;
4.	tunniplaani info väljastamine;&lt;br /&gt;
&lt;br /&gt;
5.	treeningutesse registreerimine;&lt;br /&gt;
&lt;br /&gt;
6.	registreeringu tühistamine;&lt;br /&gt;
&lt;br /&gt;
7.	piirangute haldamine (autoriseerimise näol – heites aga kiire pilgu klientrakendusse, siis seda ei kasutatud seal või siis polnud realiseeritud selles funktsionaalsusi, mis seda vajaks).&lt;br /&gt;
&lt;br /&gt;
Puudu on:&lt;br /&gt;
&lt;br /&gt;
1.	teenuse poole pöördumiste arvu piiramine (sellega seotult on küll määratud IdentityConfig.cs failis MaxFailedAccessAttemptsBeforeLockout muutuja, kuid detailsemaid kontrolle selle nõude lahendamiseks ei märganud).&lt;br /&gt;
&lt;br /&gt;
Enam-vähem olemas:&lt;br /&gt;
&lt;br /&gt;
1.	kasutajate ja kasutusstatistika logimine – kasutusstatistikat saab vahetabelitest kätte küll, aga seal on abiks olevaid välju, mida ei kasutata (nt CancelledAtDt, CancelledBy, CreatedBy jne).&lt;br /&gt;
&lt;br /&gt;
Veebiteenuses on lisaks jõutud implementeerida ka „Võiks olla“ sektsioonist funktsionaalsusi nagu:&lt;br /&gt;
&lt;br /&gt;
1.	klubide, treenerite, treeningute lisamine ja muutmine;&lt;br /&gt;
&lt;br /&gt;
2.	tunniplaanis treeningute tühistamine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Praktiline teenuse testimine ja avastatud vead:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Klientrakenduse põhjal ja brauseri tööriistade alt päringuid vaadates selgus, et GET päringud töötavad ning töötab ka sisselogimine ja registreerimine (viimased kaks on muidugi peamiselt Identity templiitidega juba realiseeritud funktsionaalsus). Püüdes Postman-iga POST, PUT, DELETE  päringuid teha õnnestusid enamused neist, mis on hea. Mõned vead siiski avastatud sai TrainersController-is ja RegistrationsController-is.&lt;br /&gt;
&lt;br /&gt;
1.	POST /api/trainers ehk treeneri loomine ebaõnnestub. Andmebaasi kirje küll luuakse, aga DTO tagastamisel tundub, et mapping on vigane.&lt;br /&gt;
&lt;br /&gt;
2.	PUT /api/trainers/:id küll töötab täis andmekomplekti korral, kuid JSON-ist trainerId eemaldamisel taaskord tagastatav Dto &#039;&#039;mapping&#039;&#039; ei arvesta sellega ja server tagastab staatuse 500.&lt;br /&gt;
&lt;br /&gt;
3.	PUT/DELETE api/registration – siin võiks olla lisaks GetByIdForUser kontrollile &amp;quot;admin&amp;quot; rolli kontroll, kes saaks siis nii või teisiti neid andmeid muuta. Lisaks, kui GetByIdForUser on mõeldud selleks, et kasutaja saaks ainult omi andmeid muuta, siis miks siin teenus lubab muuta  userId välja, mis tähendab, et üks kasutaja saab registreerimise määrata endalt teisele kasutajale.&lt;br /&gt;
&lt;br /&gt;
See tähendab, et puudu on pisut veahaldust, kui kõik ei toimu nö &#039;&#039;happy path&#039;&#039; viisil, kus tuleb täpselt oodatud andmekogum kontrollerisse. Üldmulje praktilisest testimisest on aga hea. Kontrollerite järgi sai hästi pildi ette, mis andmeid nad ootavad ja mida kontrollitakse nende juures ning neid polnud raske Postman-iga tööle saada.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekti struktuur, koodi ülesehitus ja kasutatud mustrid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Positiivsed aspektid:&lt;br /&gt;
&lt;br /&gt;
Projekti üldine struktuur on loogiline. On eraldi projektid põhiosade jaoks - DAL, Domain, Identity, WebApi, DTO-ga seonduv projektis BL.&lt;br /&gt;
Kasutatud on  &#039;&#039;dependency injection&#039;&#039;-it Ninject näol. Andmebaasiga suhtlus kontrollerites toimub Service ning UOW objektide abil. UOW-s on defineeritud ilusti kõik vajalikud repositooriumid. Repositooriumites on kohati ka lisameetodeid ja mitte kasutatud ainult neid, mis tulevad projektipõhjaga kaasa. Kasutatakse liideseid objekti tüübina ja mitte implementatsiooni ennast. Kontrollerites võetakse vastu ja tagastatakse DTO-sid, mitte otse andmebaasi minevaid objekte. Olemitel „Domain“ projektis on kasutatud valideerivaid annotatsioone. Neid võinuks ehk lihtsalt rohkem olla.&lt;br /&gt;
&lt;br /&gt;
Oleks võinud parem olla:&lt;br /&gt;
&lt;br /&gt;
Äkki oleks võimalik see MVC projekt, mis WebApi sees on ja mõeldud API dokumenteerimiseks, tõsta eraldi kausta? See on tõenäoliselt lihtsalt templiidiga loodud, aga teeb taolisel kujul WebApi projekti struktuuri segaseks. Eriti häirib seejuures need MVC poolt kasutatavad frontend faile hoidvad kaustad nagu „Content“, „Views“ ja „Scripts“.&lt;br /&gt;
&lt;br /&gt;
Domain, Interfaces ja DAL projektis võiks kasutada objektide kaustadesse jaotamist, et tekiks ülevaade seotud funktsionaalsusega klassidest. Lisaks on mõnel pool jäänud sisse palju väljakommenteeritud koodi (ja need pole TODO-d, mida kunagi ehk hakatakse kasutama). Siin oleks näiteks (tõenäoliselt A. Käveri projektipõhja jäänuk) DataBaseContext.cs, kus võinuks eemaldada „PK – string“ versioonis Identity olemite sektsioonid. Lisaks leidus pisemaid tähelepanematusi nagu DAL all on üks tühi klass ServiceMap.cs ning klassides on palju mittevajalikke „using“ direktiive – nende ebavajalike asjade eemaldamisel aitab tavaliselt IDE mõni tööriist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Üldmulje jäi veebiteenusest väga hea. On kasutatud aines õpetatud arendusmustreid ning rakenduse kihtideks jaotamist ning neist ka aru saadud. Arvestades, et tegemist on kaheliikmelise meeskonnaga, vastab veebiteenuse teostus kindlasti aine kodulehel ülesloetud nõudmistele.&lt;br /&gt;
&lt;br /&gt;
= Meeskond CoverMe retsensioon meeskonnale SPOT =&lt;br /&gt;
&lt;br /&gt;
Meeskonna eesmärk oli luua veebiteenus, mis võimaldab saada infot pakutavate treeningute kohta, sisestada ja kuvada tunniplaani andmeid, registreerida osalejaid tundidesse ning end sealt eemaldada. Samuti oli ette nähtud, et administraatorid saavad lisada, muuta ja kustutada kõike sprodiklubiga seonduvat ning treenerid ja spordiklubi esindajad saavad toimetada treeningutega seotud andmete sisestamise ja muutmisega. Andmebaasimudel on tehtud väga põhjalikult ning tabelite kirjeldused on samuti välja toodud.&lt;br /&gt;
 &lt;br /&gt;
Meie hinnangul on eesmärk põhiosas täidetud, realiseeritud on enamus kavandatud must-have funktsionaalsusest (välja on jäänud logimine). Loodud on veebiteenus, mis kasutab REST arhitektuuri ja ASP.NET MVC Web Api tehnoloogiat. &lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse struktuur on üles ehitatud kihiliselt, mis võimaldab vajadusel süsteemi osasid lihtsamini muuta,  täiendada ja vajadusel välja vahetada. Kihid on jaotatud järgmiselt:&lt;br /&gt;
&lt;br /&gt;
BL - sisaldab DTO-sid ja nende koostamiseks vajalikke Factoreid. Samuti on siin Service klassid, milles on kirjas kõik päringud andmebaasist (Get mitmesugustes variantides, Add, Edit, Delete). Lisaks tavalistele CRUD meetoditele on tehtud ka spetsiifilisemad päringud , näiteks GetByIdForUser jne. Päringuid tehakse uow-de kaudu. Service’tele ja Factory’tele on loodud Interface’d.&lt;br /&gt;
&lt;br /&gt;
DAL - kasutatakse EFRepositoryFactory ja EFRepositoryProvidery põhimõtteid. DbInitializeris antakse ette lähteandmete seed’imine. Repositooriumid on omaette kaustas, kuhu on lisaks EFRepository-st päritud meetoditele juurde kirjutatud palju erinevaid meetodeid funktsionaalsuse täiendamiseks.&lt;br /&gt;
&lt;br /&gt;
Domain - andmebaasi mudelis  on kokku 12  olemit, mis on nõuetele vastav. Üldine andmebaasimudeli ülesehitus on loogiline ning listid on algselt väärtustatud, mis tagab selle, et ei pea NullReference Exceptione kontrollima. Vajalikesse kohtadesse on annotatsioonid juurde lisatud ja nendega ei ole üle pingutatud, et süsteemi liiga kirjuks ajada. Tõstame esile asjaolu, et kasutatud on  Base Entity’t, millest kõik ülejäänud olemid pärinevad. See ühtlustab rakenduse koodi ja on üldse väga hea mõte. Kasutatud on palju nullable tüüpi muutujaid, mis on antud juhul õigustatud, andes andmete sisestamisel paindlikkust, samas lisades mõneti riskantsust.&lt;br /&gt;
&lt;br /&gt;
Interfaces - Kõikide repositooriumide jaoks on loodud ka interface´d. Samuti leidub seal UOW jaoks interface.&lt;br /&gt;
 &lt;br /&gt;
WebApi - Kokku on kasutusel 6 kontrollerit, milles on realiseeritud CRUD meetodid koos mõne spetsiifilisema meetodiga (näiteks GetFilteredForPeriod). Kontrollerid saavad oma sisu vastavatest service’itest. Identity rakendamiseks on kontrollerite meetoditel kasutatatud Authorize annotatsioone. Samuti on läbi mõeldud, et mõnda meetodit on autoriseeritud kasutama ainult “Admin”-kasutaja. Näiteks ainult  “Admin”, saab salvestada treenereid andmebaasi. Kontrollerites on kenasti kasutatud erinevaid Http-staatuskoode, mitte ainult Ok(), vaid ka Forbidden(), NotFound() jne. Samuti kasutatakse edukalt sõltuvuste süstimist (Dependency Injection). Kasutatud on OAuth bearer token authentication’it.&lt;br /&gt;
 &lt;br /&gt;
Lisaks peame oluliseks märkida, et kood on kirjutatud heas stiilis, kõikjal inglise keeles, ei esine keelte segunemist. Paljudes kohtades oli kood kommenteeritud, kuid see tundus olevat ise kaasa tulnud. Meeskonna enda kommentaare ei paistnud.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõtteks võib öelda, et tegemist on väga hästi kavandatud ja realiseeritud veebiteenusega ja meeskonnaliikmete panus on olnud märkimisväärne, eriti arvestades seda, et tegemist oli vaid kahe liikmega.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:Team_SPOT&amp;diff=123701</id>
		<title>Talk:Team SPOT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:Team_SPOT&amp;diff=123701"/>
		<updated>2017-06-15T06:05:35Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &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/Ticketer Ticketer]=&lt;br /&gt;
==XML fail==&lt;br /&gt;
Faili üldstruktuur on projekti wiki lehel hästi lahti kirjutatud (norida saab selle kallal, et kõiki tekstis viidatud linke wiki lehel ei ole). XML-fail vastab kirjeldusele. Failis selgitavad kommentaarid puuduvad. Samas on fail loogiliselt struktureeritud ja kergesti arusaadav. &lt;br /&gt;
Elementide nimed on loogilised. Elementide ja atribuutide nimedes on kasutatud ühtset stiili.&lt;br /&gt;
&lt;br /&gt;
Võib-olla tasuks märkida treenerite juures välja tuua, millise treeningstiili treeninguid iga treener teeb / saab läbi viia.&lt;br /&gt;
&lt;br /&gt;
Andmete paigutus atribuutidesse ja elementidesse tundub mõistlik. Võimalik, et litsentside info võiks eraldi elemendina olla. Kui tähte närida, siis toimumiskoha atribuudis määramine välistab treeningud, mis toimuvad mitmes ruumis.&lt;br /&gt;
&lt;br /&gt;
Kirjeldusi ja nimesid sisaldavate elementide sisu on näitefailis esitatud ohutult CDATA lõikudena.&lt;br /&gt;
&lt;br /&gt;
Näidisfail valideerub ning vastab struktuuri keerukuskirteeriumitele - on vähemalt neli loogilist dimensiooni; vähemalt kolmel dimensioonil on kasutatud ID-st informatiivsemaid atribuute.&lt;br /&gt;
&lt;br /&gt;
==XML schema==&lt;br /&gt;
Näidisfail vastab schema tingimustele. Andmetüübid vastavad andmete sisule ja eeldatavale kasutusele.&lt;br /&gt;
&lt;br /&gt;
Mõnes kohas tundub, et elementide ja atribuutide kohustuslikuks tegemisega on liialdatud. Vaieldav, kas treeneri reiting, treeningut kirjeldav video või treeningu kirjeldus peavad kindlasti kohustuslikud olema. Samuti pole lubatud ilma ühegi scheduledItemita treeningud.&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;
Transformatsioon vastab esitatud keerukuse tingimustele. Kasutatud on mitut foreach tsüklit, tingimuste kontrolli, stringitöötlust, defineeritud muutujaid.&lt;br /&gt;
&lt;br /&gt;
Andmed on esitatud loogiliselt ja arusaadavalt. HTML on keerukam kui XML-st välja nopitud teksti listis välja kuvamine. Kujunduses on kasutatud CSS-i. Andmete esitamiseks on kasutatud tabeleid ja iframe’e. &lt;br /&gt;
&lt;br /&gt;
XSLT fail valideerub. Väljundiks olev HTML annab W3C validaatoris kaks errorit (“no document type declaration; implying &amp;quot;&amp;lt;!DOCTYPE HTML SYSTEM&amp;gt;” ja “required attribute &amp;quot;TYPE&amp;quot; not specified &amp;lt;style&amp;gt;”)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; XML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Transformatsioon on piisavalt keerukas (nested foreache’id; tingimuskontrollid jne). Transformatsioon vastab kirjeldusele ning on teostatud korrektselt.&lt;br /&gt;
&lt;br /&gt;
Nii XLST fail kui väljundiks olev XML fail valideeruvad.&lt;br /&gt;
&lt;br /&gt;
Mõlema transformatsiooni loetavusele oleks kommentaarid abiks tulnud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Retsensioon meeskonna Team SPOT veebiteenusele=&lt;br /&gt;
&lt;br /&gt;
Retsensioon meeskonna [https://wiki.itcollege.ee/index.php/Team_SPOT Team_SPOT] veebiteenusele meeskonna [https://wiki.itcollege.ee/index.php/A$unik A$unik] poolt.&lt;br /&gt;
&lt;br /&gt;
Taaskord (nagu meeskonna [https://wiki.itcollege.ee/index.php/Ticketer Ticketer] klientrakenduse retsensiooni tehes) jäi esimese asjana silma rakendust alla laadides see, et pole eemaldatud obj ja bin faile. See teeb lähtekoodi paki mõttetult suureks: antud rakenduse puhul ~200MB. Lihtne variant oleks need kaustad välistada (GIT korral) .gitignore failis ja siis linkida repo kloonimiseks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veebiteenuse eesmärgiks on väljastada ning vastu võtta andmeid treeningute kohta. Järgnevas retsensioonis lähtutakse SPOT meeskonna lehel olevast analüüsist, projekti koodi vaatamisest ning Postman-iga tehtud päringutest teenuse vastu, et hinnata tehtut (vähesel määral sai ka klientrakenduse abil brauseri võrguliikluse kaudu veebiteenusele tehtavaid päringuid uuritud).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;„Peaks olema“ sektsiooni analüüs vaadates veebiteenuse koodi&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementeeritud on:&lt;br /&gt;
&lt;br /&gt;
1.	kasutajate loomine;&lt;br /&gt;
&lt;br /&gt;
2.	autentimine;&lt;br /&gt;
&lt;br /&gt;
3.	klubide, treenerite ja treeningute info väljastamine;&lt;br /&gt;
&lt;br /&gt;
4.	tunniplaani info väljastamine;&lt;br /&gt;
&lt;br /&gt;
5.	treeningutesse registreerimine;&lt;br /&gt;
&lt;br /&gt;
6.	registreeringu tühistamine;&lt;br /&gt;
&lt;br /&gt;
7.	piirangute haldamine (autoriseerimise näol – heites aga kiire pilgu klientrakendusse, siis seda ei kasutatud seal või siis polnud realiseeritud selles funktsionaalsusi, mis seda vajaks).&lt;br /&gt;
&lt;br /&gt;
Puudu on:&lt;br /&gt;
&lt;br /&gt;
1.	teenuse poole pöördumiste arvu piiramine (sellega seotult on küll määratud IdentityConfig.cs failis MaxFailedAccessAttemptsBeforeLockout muutuja, kuid detailsemaid kontrolle selle nõude lahendamiseks ei märganud).&lt;br /&gt;
&lt;br /&gt;
Enam-vähem olemas:&lt;br /&gt;
&lt;br /&gt;
1.	kasutajate ja kasutusstatistika logimine – kasutusstatistikat saab vahetabelitest kätte küll, aga seal on abiks olevaid välju, mida ei kasutata (nt CancelledAtDt, CancelledBy, CreatedBy jne).&lt;br /&gt;
&lt;br /&gt;
Veebiteenuses on lisaks jõutud implementeerida ka „Võiks olla“ sektsioonist funktsionaalsusi nagu:&lt;br /&gt;
&lt;br /&gt;
1.	klubide, treenerite, treeningute lisamine ja muutmine;&lt;br /&gt;
&lt;br /&gt;
2.	tunniplaanis treeningute tühistamine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Praktiline teenuse testimine ja avastatud vead:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Klientrakenduse põhjal ja brauseri tööriistade alt päringuid vaadates selgus, et GET päringud töötavad ning töötab ka sisselogimine ja registreerimine (viimased kaks on muidugi peamiselt Identity templiitidega juba realiseeritud funktsionaalsus). Püüdes Postman-iga POST, PUT, DELETE  päringuid teha õnnestusid enamused neist, mis on hea. Mõned vead siiski avastatud sai TrainersController-is ja RegistrationsController-is.&lt;br /&gt;
&lt;br /&gt;
1.	POST /api/trainers ehk treeneri loomine ebaõnnestub. Andmebaasi kirje küll luuakse, aga DTO tagastamisel tundub, et mapping on vigane.&lt;br /&gt;
&lt;br /&gt;
2.	PUT /api/trainers/:id küll töötab täis andmekomplekti korral, kuid JSON-ist trainerId eemaldamisel taaskord tagastatav Dto &#039;&#039;mapping&#039;&#039; ei arvesta sellega ja server tagastab staatuse 500.&lt;br /&gt;
&lt;br /&gt;
3.	PUT/DELETE api/registration – siin võiks olla lisaks GetByIdForUser kontrollile &amp;quot;admin&amp;quot; rolli kontroll, kes saaks siis nii või teisiti neid andmeid muuta. Lisaks, kui GetByIdForUser on mõeldud selleks, et kasutaja saaks ainult omi andmeid muuta, siis miks siin teenus lubab muuta  userId välja, mis tähendab, et üks kasutaja saab registreerimise määrata endalt teisele kasutajale.&lt;br /&gt;
&lt;br /&gt;
See tähendab, et puudu on pisut veahaldust, kui kõik ei toimu nö &#039;&#039;happy path&#039;&#039; viisil, kus tuleb täpselt oodatud andmekogum kontrollerisse. Üldmulje praktilisest testimisest on aga hea. Kontrollerite järgi sai hästi pildi ette, mis andmeid nad ootavad ja mida kontrollitakse nende juures ning neid polnud raske Postman-iga tööle saada.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projekti struktuur, koodi ülesehitus ja kasutatud mustrid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Positiivsed aspektid:&lt;br /&gt;
&lt;br /&gt;
Projekti üldine struktuur on loogiline. On eraldi projektid põhiosade jaoks - DAL, Domain, Identity, WebApi, DTO-ga seonduv projektis BL.&lt;br /&gt;
Kasutatud on  &#039;&#039;dependency injection&#039;&#039;-it Ninject näol. Andmebaasiga suhtlus kontrollerites toimub Service ning UOW objektide abil. UOW-s on defineeritud ilusti kõik vajalikud repositooriumid. Repositooriumites on kohati ka lisameetodeid ja mitte kasutatud ainult neid, mis tulevad projektipõhjaga kaasa. Kasutatakse liideseid objekti tüübina ja mitte implementatsiooni ennast. Kontrollerites võetakse vastu ja tagastatakse DTO-sid, mitte otse andmebaasi minevaid objekte. Olemitel „Domain“ projektis on kasutatud valideerivaid annotatsioone. Neid võinuks ehk lihtsalt rohkem olla.&lt;br /&gt;
&lt;br /&gt;
Oleks võinud parem olla:&lt;br /&gt;
&lt;br /&gt;
Äkki oleks võimalik see MVC projekt, mis WebApi sees on ja mõeldud API dokumenteerimiseks, tõsta eraldi kausta? See on tõenäoliselt lihtsalt templiidiga loodud, aga teeb taolisel kujul WebApi projekti struktuuri segaseks. Eriti häirib seejuures need MVC poolt kasutatavad frontend faile hoidvad kaustad nagu „Content“, „Views“ ja „Scripts“.&lt;br /&gt;
&lt;br /&gt;
Domain, Interfaces ja DAL projektis võiks kasutada objektide kaustadesse jaotamist, et tekiks ülevaade seotud funktsionaalsusega klassidest. Lisaks on mõnel pool jäänud sisse palju väljakommenteeritud koodi (ja need pole TODO-d, mida kunagi ehk hakatakse kasutama). Siin oleks näiteks (tõenäoliselt A. Käveri projektipõhja jäänuk) DataBaseContext.cs, kus võinuks eemaldada „PK – string“ versioonis Identity olemite sektsioonid. Lisaks leidus pisemaid tähelepanematusi nagu DAL all on üks tühi klass ServiceMap.cs ning klassides on palju mittevajalikke „using“ direktiive – nende ebavajalike asjade eemaldamisel aitab tavaliselt IDE mõni tööriist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kokkuvõte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Üldmulje jäi veebiteenusest väga hea. On kasutatud aines õpetatud arendusmustreid ning rakenduse kihtideks jaotamist ning neist ka aru saadud. Arvestades, et tegemist on kaheliikmelise meeskonnaga, vastab veebiteenuse teostus kindlasti aine kodulehel ülesloetud nõudmistele.&lt;br /&gt;
&lt;br /&gt;
== Meeskond CoverMe retsensioon meeskonnale SPOT ==&lt;br /&gt;
&lt;br /&gt;
Meeskonna eesmärk oli luua veebiteenus, mis võimaldab saada infot pakutavate treeningute kohta, sisestada ja kuvada tunniplaani andmeid, registreerida osalejaid tundidesse ning end sealt eemaldada. Samuti oli ette nähtud, et administraatorid saavad lisada, muuta ja kustutada kõike sprodiklubiga seonduvat ning treenerid ja spordiklubi esindajad saavad toimetada treeningutega seotud andmete sisestamise ja muutmisega. Andmebaasimudel on tehtud väga põhjalikult ning tabelite kirjeldused on samuti välja toodud.&lt;br /&gt;
 &lt;br /&gt;
Meie hinnangul on eesmärk põhiosas täidetud, realiseeritud on enamus kavandatud must-have funktsionaalsusest (välja on jäänud logimine). Loodud on veebiteenus, mis kasutab REST arhitektuuri ja ASP.NET MVC Web Api tehnoloogiat. &lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse struktuur on üles ehitatud kihiliselt, mis võimaldab vajadusel süsteemi osasid lihtsamini muuta,  täiendada ja vajadusel välja vahetada. Kihid on jaotatud järgmiselt:&lt;br /&gt;
&lt;br /&gt;
BL - sisaldab DTO-sid ja nende koostamiseks vajalikke Factoreid. Samuti on siin Service klassid, milles on kirjas kõik päringud andmebaasist (Get mitmesugustes variantides, Add, Edit, Delete). Lisaks tavalistele CRUD meetoditele on tehtud ka spetsiifilisemad päringud , näiteks GetByIdForUser jne. Päringuid tehakse uow-de kaudu. Service’tele ja Factory’tele on loodud Interface’d.&lt;br /&gt;
&lt;br /&gt;
DAL - kasutatakse EFRepositoryFactory ja EFRepositoryProvidery põhimõtteid. DbInitializeris antakse ette lähteandmete seed’imine. Repositooriumid on omaette kaustas, kuhu on lisaks EFRepository-st päritud meetoditele juurde kirjutatud palju erinevaid meetodeid funktsionaalsuse täiendamiseks.&lt;br /&gt;
&lt;br /&gt;
Domain - andmebaasi mudelis  on kokku 12  olemit, mis on nõuetele vastav. Üldine andmebaasimudeli ülesehitus on loogiline ning listid on algselt väärtustatud, mis tagab selle, et ei pea NullReference Exceptione kontrollima. Vajalikesse kohtadesse on annotatsioonid juurde lisatud ja nendega ei ole üle pingutatud, et süsteemi liiga kirjuks ajada. Tõstame esile asjaolu, et kasutatud on  Base Entity’t, millest kõik ülejäänud olemid pärinevad. See ühtlustab rakenduse koodi ja on üldse väga hea mõte. Kasutatud on palju nullable tüüpi muutujaid, mis on antud juhul õigustatud, andes andmete sisestamisel paindlikkust, samas lisades mõneti riskantsust.&lt;br /&gt;
&lt;br /&gt;
Interfaces - Kõikide repositooriumide jaoks on loodud ka interface´d. Samuti leidub seal UOW jaoks interface.&lt;br /&gt;
 &lt;br /&gt;
WebApi - Kokku on kasutusel 6 kontrollerit, milles on realiseeritud CRUD meetodid koos mõne spetsiifilisema meetodiga (näiteks GetFilteredForPeriod). Kontrollerid saavad oma sisu vastavatest service’itest. Identity rakendamiseks on kontrollerite meetoditel kasutatatud Authorize annotatsioone. Samuti on läbi mõeldud, et mõnda meetodit on autoriseeritud kasutama ainult “Admin”-kasutaja. Näiteks ainult  “Admin”, saab salvestada treenereid andmebaasi. Kontrollerites on kenasti kasutatud erinevaid Http-staatuskoode, mitte ainult Ok(), vaid ka Forbidden(), NotFound() jne. Samuti kasutatakse edukalt sõltuvuste süstimist (Dependency Injection). Kasutatud on OAuth bearer token authentication’it.&lt;br /&gt;
 &lt;br /&gt;
Lisaks peame oluliseks märkida, et kood on kirjutatud heas stiilis, kõikjal inglise keeles, ei esine keelte segunemist. Paljudes kohtades oli kood kommenteeritud, kuid see tundus olevat ise kaasa tulnud. Meeskonna enda kommentaare ei paistnud.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõtteks võib öelda, et tegemist on väga hästi kavandatud ja realiseeritud veebiteenusega ja meeskonnaliikmete panus on olnud märkimisväärne, eriti arvestades seda, et tegemist oli vaid kahe liikmega.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:JRT&amp;diff=123700</id>
		<title>Talk:JRT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:JRT&amp;diff=123700"/>
		<updated>2017-06-15T06:04:18Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond CoverMe retsensioon meeskonnale SPOT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hinnang meeskonna JRT esitatud XML-failidele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Team_SPOT Team SPOT]&lt;br /&gt;
&lt;br /&gt;
Meeskond JRT on esitanud XML-faili, skeemifaili ja kaks XSLT-faili andmete transformeerimiseks HTML- ja XML-formaati. Transformatsioonid sisaldavad enam kui ühte &#039;&#039;for-each&#039;&#039;-klauslit. HTML-väljundiga transformatsioonis on kasutatud nelja &#039;&#039;for-each&#039;&#039;i ja kolme &#039;&#039;if&#039;&#039;-tingimust. XML-väljundiga transformatsioonis on kasutatud viite &#039;&#039;for-each&#039;&#039;i ja kolme &#039;&#039;if&#039;&#039;-tingimust. XML valideerub ja loogilisi dimensioone on viis. Neljal dimensioonil on kasutatud atribuute, mis on enam kui lihtsalt ID. Töö põhinõuded on täidetud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Märkused XMLi/XSD kohta:&#039;&#039;&#039;&lt;br /&gt;
* elemendi &amp;lt;user&amp;gt; &#039;&#039;id&#039;&#039;-atribuudi väärtuse unikaalsus ei ole tagatud&lt;br /&gt;
* elemendile &amp;lt;user&amp;gt; saab lisada piiramatul arvul sama alamelementi: &amp;lt;firstName&amp;gt;, &amp;lt;lastName&amp;gt;, &amp;lt;born&amp;gt;, &amp;lt;sex&amp;gt;, …&lt;br /&gt;
* elemendil &amp;lt;user&amp;gt; on kõigi &amp;lt;subscription&amp;gt;-elementide &#039;&#039;type&#039;&#039; määratud kõige ülemisel tasemel &#039;&#039;status&#039;&#039;-atribuudiga, aga see võiks olla &amp;lt;subscription&amp;gt;-tasemel, et võimaldada rohkem paindlikkust&lt;br /&gt;
* atribuuti &#039;&#039;id&#039;&#039; (unikaalset) võiks kasutada ka teiste “liigielementide” puhul, sest:&lt;br /&gt;
**  elemente &amp;lt;subscription&amp;gt; saab sama &#039;&#039;name&#039;&#039;-atribuudiga lisada piiramatul arvul&lt;br /&gt;
**  elemendi &amp;lt;subscription&amp;gt; alla saab lisada piiramatul arvul &amp;lt;price&amp;gt;-elemente samade &#039;&#039;type&#039;&#039;- ja &#039;&#039;currency&#039;&#039;-atribuutide väärtustega&lt;br /&gt;
* elemendi &amp;lt;subscription&amp;gt; &#039;&#039;name&#039;&#039;-atribuudiga võib tekkida probleeme, kui atribuuti pandud nimi sisaldaks erimärke, seega oleks mõistlikum &#039;&#039;name&#039;&#039;-atribuut asendada eraldi alamelemendiga &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;, kus saaks kasutada CDATAt.&lt;br /&gt;
&lt;br /&gt;
Tööga on nähtud vaeva, XSLTd on koostatud arusaadavalt, kuid XSD ja XML vajaksid täiendamist, et vältida võimalikke ohukohti andmete saatmisel. Vastasel korral võivad ka transformatsioonid ootamatusi toota (vt näidet). Põhiline oleks XSDs ära märkida, kui palju mingit elementi esineda võib ning tagada ka &#039;&#039;id&#039;&#039;-atribuudi unikaalsus. XMLi koostamise puhul tuleks läbi mõelda kas atribuudid on mõistlikult valitud või saaks neid esitada paremini alamelementidena. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Näide:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: whitesmoke; border: solid thin grey; display: inline-block; padding:10px&amp;quot;&amp;gt;&lt;br /&gt;
Name: Peeter Banaan&amp;lt;br&amp;gt;Member status: gold&amp;lt;br&amp;gt;Workouts and prices: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Gym: 69.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Yoga: 39.99EURYoga: 39.99EURYoga: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#XML siin].&lt;br /&gt;
&lt;br /&gt;
==Hinnang meeskonna JRT esitatud veebiteenusele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Team_SPOT Team SPOT]&lt;br /&gt;
&lt;br /&gt;
JRT veebiteenus on mõeldud jõusaali külastajale, kes näevad erinevatele kehaosadele mõeldud harjutusi, treeningukavasid ning ja saavad üles märkida oma saavutusi. Projekti realiseerimiseks on kasutatud REST arhitektuuri ja ASP.NET MVC Web API tehnoloogiat. Andmebaas luuakse Entity Frameworki abil. Lahendusele on lisatud Asp.Net Identity (Individual User Accounts) funktsionaalsuse võimalus.&lt;br /&gt;
 &lt;br /&gt;
Teenuse lähtekood on jagatud kihtidesse: BL (äriloogika, andmeobjektid, teenused), DAL (suhtlus andmebaasiga, repositooriumid), Domain (olemid), Web (kontrollerid), eraldi teek on ka liidestele (Interfaces). Samuti on kasutatud sõltuvuste süstimist (Ninject) ning repositooriumide puhul Factory ja UOW mustrit. Web projektis on koos, aga eraldi kaustades, nii teenuse API kontrollerid kui ka veebikliendi MVC kontrollerid ja AngularJS kontrollerid.&lt;br /&gt;
 &lt;br /&gt;
Meeskonna lehel avaldatud veebiteenuse analüüsis endale eesmärgiks seatud kohustuslike funktsionaalsuste hulka kuuluvad: kasutajagrupid, konto loomise võimalus, isiklike andmete ja kavade salvestamise võimalus, treenerite info ja kontaktandmed. Lisavõimalusena sooviti luua ka kasutusstatistika ja -analüüsi tuge ning administraatori liidest.&lt;br /&gt;
 &lt;br /&gt;
Praeguse seisuga esitatud teenuse kohta pole meeskond kommentaare lisanud, mistõttu on keeruline kõigest ülevaadet saada ja tehtut adekvaatselt hinnata. Andmebaasi skeemi juures võiks olla ka tabelite kirjeldused ja olemite omavaheliste seoste selgitused. Esimese hooga on raske skeemi loogikast aru saada. &lt;br /&gt;
 &lt;br /&gt;
Eelnevalt mainitud põhifunktsionaalsused on ühel või teisel kujul ka realiseeritud: teenusest on võimalik kätte saada infot erinevatele kehaosadele mõeldud harjutuste, erinevate treeningühikute, treeningkavade ja päevaplaanide kohta, samuti kasutajate andmeid. Ka uute kasutajate lisamine on võimalik. Täiendavate funktsionaalsuste realiseerimiseni pole jõutud.&lt;br /&gt;
 &lt;br /&gt;
Andmebaasi migratsioone pole projekti selles faasis lisatud. Andmebaasi kustutamise või olemites tehtud muudatuste korral luuakse uus andmebaas, mis populeeritakse DAL kihis asuva DBInitializer klassi Seed() meetodis olevate andmetega.&lt;br /&gt;
 &lt;br /&gt;
Küsimusi tekitab kasutajate haldus. Nimelt on tehtud andmebaasi teenuse kasutajatele eraldi olem AppUser, kuhu saab lisada kasutajaid ilma Asp.Net Identity funktsionaalsust kasutamata. Sealt on ilma autentimiseta võimalik kätte saada kõigi kasutajate isikuandmeid. Paralleelselt on alles jäetud ka UserInt olem, kuhu saab samuti kasutajaid lisada, viimaseid on võimalik autentida läbi Web projektis asuva Account kontrolleri. AppUserit on võimalik siduda UserInt olemiga, aga see ei kajastu meeskonna lehel esitatud andmebaasi skeemis.&lt;br /&gt;
 &lt;br /&gt;
Account mudelid on samas ümber kolitud BL kihis asuvasse DTO-de kausta. Kas see on ikka õige koht? Pigem võiks need ju asuda Web projektis, kus asub vastav kontroller ja kus autentimine ja autoriseerimine tegelikult peaks toimuma. Silma jäi seegi, et nii Asp.Net Identity kui ka mõned teised paketid (näiteks Ninject) on lisatud alamprojektidesse, kus neid vaja ei lähe. &lt;br /&gt;
 &lt;br /&gt;
Asp.Net Identity funktsionaalsust tegelikult kuskil ei kasutatagi. Autentimist pole üheski kontrolleris peale AccountControlleri rakendatud, aga see pole praegu muu teenusega seotud. Kõigile andmetele pääseb takistusteta ligi otse brauserist. Samuti on võimalik näiteks Fiddleri abil andmeid muuta ja kustutada.&lt;br /&gt;
 &lt;br /&gt;
Andmebaasiga suhtlemine käib läbi DAL kihis asuvate repositooriumide, kuid kasutusel on ainult standardsed meetodid: All(), Find() / GetById(), Remove(), Add(), Update(), SaveChanges(). Ühtegi kohandatud viisi andmete kättesaamiseks või muutmiseks pole repositooriumidesse lisatud - need on kõik tühjad. Sama lugu on ka BL Services kihiga. &lt;br /&gt;
 &lt;br /&gt;
Web projekti kontrollerites pole hetkel samuti ühtegi kohandatud IHttpActionResult meetodit realiseeritud. Ka on puudu mõned tavapärased meetodid. Bodyparts ja RoutineWorkouts kontrollerid ei võimalda ID järgi objekti kätte saada. Konkreetse objekti selekteerimine on nende andmete puhul seega jäetud kliendi mureks. &lt;br /&gt;
 &lt;br /&gt;
Nagu juba eelnevalt mainitud, siis ühegi kontrolleri kasutamist pole praegu autentimisega piiratud ja kasutajarolle ei rakendata.&lt;br /&gt;
 &lt;br /&gt;
Service kihis tuleks üle vaadata Edit() meetodid, sest need ei tööta olemite puhul, millel on sõltuvusi teiste olemitega. DTO klassides on tehtud osa atribuute kohustuslikeks, mistõttu on ka seotud olemite loomine ja muutmine läbi teenuse keerulisem kui ehk peaks. Lisaks id-atribuudile tuleb mõnel puhul kaasa anda ka objekti nimi. ProgramDTO puhul puudub aga näiteks id-atribuut sootuks. &lt;br /&gt;
 &lt;br /&gt;
Domeeni kihis on rohkem olemeid, kui praegu teenuses ära kasutatakse, aga kõiki funktsionaalsusi polegi jõutud veel realiseerida. Annotatsioonid on olemas. Vajalikud atribuudid on muudetud kohustuslikuks ning stringide pikkused piiratud. Küll on domeeni tasemel jäetud kohustuslikuks tegemata AppUseri ees- ja perenimi. Need piirangud on lisatud Account mudelites.&lt;br /&gt;
 &lt;br /&gt;
Üldkokkuvõttes võib siiski öelda, et kui autentimine ja autoriseerimine välja jätta, siis on nõutud põhifunktsionaalsused veebiteenuses lahendatud. Lahendus on jagatud kihtidesse ning äriloogika on kontrolleritest välja jäetud. Andmebaasis on olemeid piisavalt ja neid andmeid on võimalik läbi API kätte saada. Projekt on piisavalt keeruline ja selle lõplik realiseerimine nõuab ilmselt rohkem aega ja pühendumist, mida käesoleva aine sisu, mahtu ja ajakava arvesse võttes oleks ülekohtune nõuda.&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs siin].&lt;br /&gt;
&lt;br /&gt;
==Hinnang meeskonna JRT esitatud klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs Team SPOT]&lt;br /&gt;
&lt;br /&gt;
JRT veebiteenuse vastu töötava klientrakenduse loomisel on kasutatud Angular JS raamistikku koos Asp.Net MVC kontrollerite ja vaadetega (Razor). Angulari osa on eraldatud App kausta. Koodis on kasutatud ka jQueryt. MVC kontrollerid ja vaated on tekitatud scaffoldingiga. Seega pole pidanud eraldi vaeva nägema ruutimisega. Kuna klient on lisatud samasse projekti, kus asuvad ka API kontrollerid, siis pole pidanud kliendi jaoks eraldi salvestama teenuse baasaadressi, mille vastu päringuid tehakse.&lt;br /&gt;
 &lt;br /&gt;
Meeskonna lehel avaldatud teenuse analüüsis on välja toodud kaks liidest, mida soovitakse arendada. Administraatoriliideses peaks administraatoril olema võimalus hallata kõiki andmeid (näiteks lisada ja kustutada: kasutajaid, harjutusi, treenigukavasid jne). Kasutajaliideses peaks tavakasutaja saama sisestada oma keha kohta viimaseid andmeid, panna kirja infot viimase treeningu kohta ning lisada omale kontaktandmeid, valida treeningukavasid ja paigutada need soovitud päevadele.&lt;br /&gt;
 &lt;br /&gt;
Mingisuguseid kommentaare avaldatud klientrakenduse kohta meeskonna lehelt leida ei õnnestunud. Lisaks leidub lähtekoodis lõpuni realiseerimata osasid, mis tegelikult rakenduse tööd ei mõjuta. See tegi retsenseerimise keerulisemaks, aga üldjoontes on kõigest hoolimata võimalik lahenduse tööpõhimõttest aru saada, kui rakendust natuke testida ja lähtekoodi uurida.&lt;br /&gt;
 &lt;br /&gt;
Praeguse seisuga on veebikliendis osaliselt teostatud administraatorile mõeldud funktsionaalsus. Kasutajaid hallata veel ei saa, aga harjutusi ja treeningukavasid on võimalik lisada. Realiseerida on proovitud ka tokenipõhist autentimist, kuid see ei tööta, mis on arusaadav, kuna kasutajahaldus ja autentimine / autoriseerimine on jäänud praeguse seisuga realiseerimata ka teenuse API poolel. Ilmselgelt on näha, et töö jäi pooleli.&lt;br /&gt;
 &lt;br /&gt;
Angulari rakenduse kontrolleritega on veebikliendis tööle pandud neli vaadet: Exercises, Units, BodyParts, Routines. Neile pääseb ligi menüüribale lisatud linkide kaudu. Users vaade on ka olemas, aga ilma Angulari kontrollerita - andmeid ei laeta. Sellele vaatele pääseb ligi, kui lisada brauseri aadressiribal domeeni lõppu “/Users”. Tokenipõhise autentimise jaoks on tehtud ka MainAngular vaade (domeen/MainAngular), kuid see ei toimi.&lt;br /&gt;
 &lt;br /&gt;
Kõik olemasolevad vaated on sama ülesehitusega - kuvatakse nimekirja koos Edit ja Delete nuppudega. Filtreid andmete sorteerimiseks ei ole. Igal vaatel on olemas on ka Add New nupp. Andmete lisamiseks ja muutmiseks avaneb hüpikaken (modal), kuhu laetakse kõik objekti jaoks vajalikud input-väljad ja seotud olemite puhul valiku tegemiseks ripploetelud. Objektide kustutamisel küsitakse kasutajalt kinnitust. Kõik pakutud funktsionaalsused paraku veel ei tööta. Probleeme on eeskätt teiste olemitega seotud olemite muutmise ja kustutamisega.&lt;br /&gt;
 &lt;br /&gt;
Funktsionaalsused vaadete kaupa:&lt;br /&gt;
*Units  - andmete kuvamine, lisamine, muutmine ja kustutamine töötavad&lt;br /&gt;
*Exercises - andmete kuvamine, lisamine ja kustutamine töötavad, ent muutmine töötab ainult osaliselt: kui muuta harjutuse mõõtühikut, siis veast ei teavitata, aga muudatus andmebaasi ei jõua (Fiddleriga otse teenuse API poole pöördudes lisandus andmebaasi uus kirje)&lt;br /&gt;
*BodyParts - andmete kuvamine, lisamine ja kustutamine töötavad, aga muutmine ei õnnestu (ka Fiddleriga otse teenuse API poole pöördudes). Kui üritada muuta kehaosa alla kuuluvate harjutuste nimekirja, siis tuleb vastuseks Http status 400 (Bad request!)&lt;br /&gt;
*Routines - andmete kuvamine ja lisamine töötavad, muutmine (ReferenceError: bodyPart is not defined) ja kustutamine (Bad request!) ei õnnestu&lt;br /&gt;
 &lt;br /&gt;
Vaadete puhul võib nuriseda selle üle, et iga kontrolleri kohta on tehtud ainult Index vaatefail, mis sisaldab endas nii põhiakna kui ka hüpikakende html-koodi. Need oleks võinud parema arusaadavuse huvides ju lahutada, isegi kui andmete laadimine toimub läbi sama kontrolleri. &lt;br /&gt;
 &lt;br /&gt;
Lähtekoodist ilmneb veel, et iga töötava vaate jaoks on tehtud eraldi moodul oma kontrolleriga, mis registreeritakse vastavas vaates. Keskne moodul failis app.js ei tööta, see on praegusel kujul mõeldud tokenipõhise autentimise realiseerimiseks ja eeldab üheleherakendust (ruutimisinfo on ka seal). Kõiki autentimise töölesaamiseks vajalikke mooduleid ei ole samas projekti lisatud (authService, authInterceptorService). Tegelikult oleks keskset app-moodulit võimalik (ilma ruutimiseta) siduda ka olemasolevate MVC-vaadetega.&lt;br /&gt;
 &lt;br /&gt;
Praeguse lahenduse üheks puuduseks on veel see, et kõik Http-päringud veebiteenusele tehakse otse Angulari kontrolleritest, puudub vahepealne service-kiht. Selle tagajärjel on päringud ja vaadete loogika koodis läbisegi. Hüpikaknas objektide muutmiseks ei pärita andmeid uuesti teenusest, vaid muudetakse juba varem põhiaknasse laetud andmeid. Lisaks on Angulari raamistiku kõrval kasutatud ka tavalisi jQuery võtteid, mis teeb üldpildi võrdlemisi kirjuks. Mõned funktsioonid ei tööta korrektselt ja nii on üsna keeruline aru saada, kus viga täpselt asub: kontrolleris või teenuse API poolel.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõttes võib tõdeda, et olemasolevate vaadetega on siiski vaeva nähtud ja suhtlus teenusega tööle saadud, mis selle aine puhul on ilmselt peamine. Mõned funktsionaalsused vajavad veel viimistlemist ja projekti üldine ülesehitus korrastamist. MVC kontrolleritega autentimise tööle saamiseks tuleks lisada eespool mainitud puuduvad teenused, siduda olemasolevad kontrollerid keskse app-mooduliga ning see omakorda jagatud Layout vaatega, millele tuleks ka lisada eraldi kontroller.&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs siin].&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:JRT&amp;diff=123699</id>
		<title>Talk:JRT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:JRT&amp;diff=123699"/>
		<updated>2017-06-15T06:02:25Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond CoverMe retsensioon meeskonnale SPOT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hinnang meeskonna JRT esitatud XML-failidele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Team_SPOT Team SPOT]&lt;br /&gt;
&lt;br /&gt;
Meeskond JRT on esitanud XML-faili, skeemifaili ja kaks XSLT-faili andmete transformeerimiseks HTML- ja XML-formaati. Transformatsioonid sisaldavad enam kui ühte &#039;&#039;for-each&#039;&#039;-klauslit. HTML-väljundiga transformatsioonis on kasutatud nelja &#039;&#039;for-each&#039;&#039;i ja kolme &#039;&#039;if&#039;&#039;-tingimust. XML-väljundiga transformatsioonis on kasutatud viite &#039;&#039;for-each&#039;&#039;i ja kolme &#039;&#039;if&#039;&#039;-tingimust. XML valideerub ja loogilisi dimensioone on viis. Neljal dimensioonil on kasutatud atribuute, mis on enam kui lihtsalt ID. Töö põhinõuded on täidetud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Märkused XMLi/XSD kohta:&#039;&#039;&#039;&lt;br /&gt;
* elemendi &amp;lt;user&amp;gt; &#039;&#039;id&#039;&#039;-atribuudi väärtuse unikaalsus ei ole tagatud&lt;br /&gt;
* elemendile &amp;lt;user&amp;gt; saab lisada piiramatul arvul sama alamelementi: &amp;lt;firstName&amp;gt;, &amp;lt;lastName&amp;gt;, &amp;lt;born&amp;gt;, &amp;lt;sex&amp;gt;, …&lt;br /&gt;
* elemendil &amp;lt;user&amp;gt; on kõigi &amp;lt;subscription&amp;gt;-elementide &#039;&#039;type&#039;&#039; määratud kõige ülemisel tasemel &#039;&#039;status&#039;&#039;-atribuudiga, aga see võiks olla &amp;lt;subscription&amp;gt;-tasemel, et võimaldada rohkem paindlikkust&lt;br /&gt;
* atribuuti &#039;&#039;id&#039;&#039; (unikaalset) võiks kasutada ka teiste “liigielementide” puhul, sest:&lt;br /&gt;
**  elemente &amp;lt;subscription&amp;gt; saab sama &#039;&#039;name&#039;&#039;-atribuudiga lisada piiramatul arvul&lt;br /&gt;
**  elemendi &amp;lt;subscription&amp;gt; alla saab lisada piiramatul arvul &amp;lt;price&amp;gt;-elemente samade &#039;&#039;type&#039;&#039;- ja &#039;&#039;currency&#039;&#039;-atribuutide väärtustega&lt;br /&gt;
* elemendi &amp;lt;subscription&amp;gt; &#039;&#039;name&#039;&#039;-atribuudiga võib tekkida probleeme, kui atribuuti pandud nimi sisaldaks erimärke, seega oleks mõistlikum &#039;&#039;name&#039;&#039;-atribuut asendada eraldi alamelemendiga &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;, kus saaks kasutada CDATAt.&lt;br /&gt;
&lt;br /&gt;
Tööga on nähtud vaeva, XSLTd on koostatud arusaadavalt, kuid XSD ja XML vajaksid täiendamist, et vältida võimalikke ohukohti andmete saatmisel. Vastasel korral võivad ka transformatsioonid ootamatusi toota (vt näidet). Põhiline oleks XSDs ära märkida, kui palju mingit elementi esineda võib ning tagada ka &#039;&#039;id&#039;&#039;-atribuudi unikaalsus. XMLi koostamise puhul tuleks läbi mõelda kas atribuudid on mõistlikult valitud või saaks neid esitada paremini alamelementidena. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Näide:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: whitesmoke; border: solid thin grey; display: inline-block; padding:10px&amp;quot;&amp;gt;&lt;br /&gt;
Name: Peeter Banaan&amp;lt;br&amp;gt;Member status: gold&amp;lt;br&amp;gt;Workouts and prices: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Gym: 69.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Yoga: 39.99EURYoga: 39.99EURYoga: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#XML siin].&lt;br /&gt;
&lt;br /&gt;
==Hinnang meeskonna JRT esitatud veebiteenusele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Team_SPOT Team SPOT]&lt;br /&gt;
&lt;br /&gt;
JRT veebiteenus on mõeldud jõusaali külastajale, kes näevad erinevatele kehaosadele mõeldud harjutusi, treeningukavasid ning ja saavad üles märkida oma saavutusi. Projekti realiseerimiseks on kasutatud REST arhitektuuri ja ASP.NET MVC Web API tehnoloogiat. Andmebaas luuakse Entity Frameworki abil. Lahendusele on lisatud Asp.Net Identity (Individual User Accounts) funktsionaalsuse võimalus.&lt;br /&gt;
 &lt;br /&gt;
Teenuse lähtekood on jagatud kihtidesse: BL (äriloogika, andmeobjektid, teenused), DAL (suhtlus andmebaasiga, repositooriumid), Domain (olemid), Web (kontrollerid), eraldi teek on ka liidestele (Interfaces). Samuti on kasutatud sõltuvuste süstimist (Ninject) ning repositooriumide puhul Factory ja UOW mustrit. Web projektis on koos, aga eraldi kaustades, nii teenuse API kontrollerid kui ka veebikliendi MVC kontrollerid ja AngularJS kontrollerid.&lt;br /&gt;
 &lt;br /&gt;
Meeskonna lehel avaldatud veebiteenuse analüüsis endale eesmärgiks seatud kohustuslike funktsionaalsuste hulka kuuluvad: kasutajagrupid, konto loomise võimalus, isiklike andmete ja kavade salvestamise võimalus, treenerite info ja kontaktandmed. Lisavõimalusena sooviti luua ka kasutusstatistika ja -analüüsi tuge ning administraatori liidest.&lt;br /&gt;
 &lt;br /&gt;
Praeguse seisuga esitatud teenuse kohta pole meeskond kommentaare lisanud, mistõttu on keeruline kõigest ülevaadet saada ja tehtut adekvaatselt hinnata. Andmebaasi skeemi juures võiks olla ka tabelite kirjeldused ja olemite omavaheliste seoste selgitused. Esimese hooga on raske skeemi loogikast aru saada. &lt;br /&gt;
 &lt;br /&gt;
Eelnevalt mainitud põhifunktsionaalsused on ühel või teisel kujul ka realiseeritud: teenusest on võimalik kätte saada infot erinevatele kehaosadele mõeldud harjutuste, erinevate treeningühikute, treeningkavade ja päevaplaanide kohta, samuti kasutajate andmeid. Ka uute kasutajate lisamine on võimalik. Täiendavate funktsionaalsuste realiseerimiseni pole jõutud.&lt;br /&gt;
 &lt;br /&gt;
Andmebaasi migratsioone pole projekti selles faasis lisatud. Andmebaasi kustutamise või olemites tehtud muudatuste korral luuakse uus andmebaas, mis populeeritakse DAL kihis asuva DBInitializer klassi Seed() meetodis olevate andmetega.&lt;br /&gt;
 &lt;br /&gt;
Küsimusi tekitab kasutajate haldus. Nimelt on tehtud andmebaasi teenuse kasutajatele eraldi olem AppUser, kuhu saab lisada kasutajaid ilma Asp.Net Identity funktsionaalsust kasutamata. Sealt on ilma autentimiseta võimalik kätte saada kõigi kasutajate isikuandmeid. Paralleelselt on alles jäetud ka UserInt olem, kuhu saab samuti kasutajaid lisada, viimaseid on võimalik autentida läbi Web projektis asuva Account kontrolleri. AppUserit on võimalik siduda UserInt olemiga, aga see ei kajastu meeskonna lehel esitatud andmebaasi skeemis.&lt;br /&gt;
 &lt;br /&gt;
Account mudelid on samas ümber kolitud BL kihis asuvasse DTO-de kausta. Kas see on ikka õige koht? Pigem võiks need ju asuda Web projektis, kus asub vastav kontroller ja kus autentimine ja autoriseerimine tegelikult peaks toimuma. Silma jäi seegi, et nii Asp.Net Identity kui ka mõned teised paketid (näiteks Ninject) on lisatud alamprojektidesse, kus neid vaja ei lähe. &lt;br /&gt;
 &lt;br /&gt;
Asp.Net Identity funktsionaalsust tegelikult kuskil ei kasutatagi. Autentimist pole üheski kontrolleris peale AccountControlleri rakendatud, aga see pole praegu muu teenusega seotud. Kõigile andmetele pääseb takistusteta ligi otse brauserist. Samuti on võimalik näiteks Fiddleri abil andmeid muuta ja kustutada.&lt;br /&gt;
 &lt;br /&gt;
Andmebaasiga suhtlemine käib läbi DAL kihis asuvate repositooriumide, kuid kasutusel on ainult standardsed meetodid: All(), Find() / GetById(), Remove(), Add(), Update(), SaveChanges(). Ühtegi kohandatud viisi andmete kättesaamiseks või muutmiseks pole repositooriumidesse lisatud - need on kõik tühjad. Sama lugu on ka BL Services kihiga. &lt;br /&gt;
 &lt;br /&gt;
Web projekti kontrollerites pole hetkel samuti ühtegi kohandatud IHttpActionResult meetodit realiseeritud. Ka on puudu mõned tavapärased meetodid. Bodyparts ja RoutineWorkouts kontrollerid ei võimalda ID järgi objekti kätte saada. Konkreetse objekti selekteerimine on nende andmete puhul seega jäetud kliendi mureks. &lt;br /&gt;
 &lt;br /&gt;
Nagu juba eelnevalt mainitud, siis ühegi kontrolleri kasutamist pole praegu autentimisega piiratud ja kasutajarolle ei rakendata.&lt;br /&gt;
 &lt;br /&gt;
Service kihis tuleks üle vaadata Edit() meetodid, sest need ei tööta olemite puhul, millel on sõltuvusi teiste olemitega. DTO klassides on tehtud osa atribuute kohustuslikeks, mistõttu on ka seotud olemite loomine ja muutmine läbi teenuse keerulisem kui ehk peaks. Lisaks id-atribuudile tuleb mõnel puhul kaasa anda ka objekti nimi. ProgramDTO puhul puudub aga näiteks id-atribuut sootuks. &lt;br /&gt;
 &lt;br /&gt;
Domeeni kihis on rohkem olemeid, kui praegu teenuses ära kasutatakse, aga kõiki funktsionaalsusi polegi jõutud veel realiseerida. Annotatsioonid on olemas. Vajalikud atribuudid on muudetud kohustuslikuks ning stringide pikkused piiratud. Küll on domeeni tasemel jäetud kohustuslikuks tegemata AppUseri ees- ja perenimi. Need piirangud on lisatud Account mudelites.&lt;br /&gt;
 &lt;br /&gt;
Üldkokkuvõttes võib siiski öelda, et kui autentimine ja autoriseerimine välja jätta, siis on nõutud põhifunktsionaalsused veebiteenuses lahendatud. Lahendus on jagatud kihtidesse ning äriloogika on kontrolleritest välja jäetud. Andmebaasis on olemeid piisavalt ja neid andmeid on võimalik läbi API kätte saada. Projekt on piisavalt keeruline ja selle lõplik realiseerimine nõuab ilmselt rohkem aega ja pühendumist, mida käesoleva aine sisu, mahtu ja ajakava arvesse võttes oleks ülekohtune nõuda.&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs siin].&lt;br /&gt;
&lt;br /&gt;
==Hinnang meeskonna JRT esitatud klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs Team SPOT]&lt;br /&gt;
&lt;br /&gt;
JRT veebiteenuse vastu töötava klientrakenduse loomisel on kasutatud Angular JS raamistikku koos Asp.Net MVC kontrollerite ja vaadetega (Razor). Angulari osa on eraldatud App kausta. Koodis on kasutatud ka jQueryt. MVC kontrollerid ja vaated on tekitatud scaffoldingiga. Seega pole pidanud eraldi vaeva nägema ruutimisega. Kuna klient on lisatud samasse projekti, kus asuvad ka API kontrollerid, siis pole pidanud kliendi jaoks eraldi salvestama teenuse baasaadressi, mille vastu päringuid tehakse.&lt;br /&gt;
 &lt;br /&gt;
Meeskonna lehel avaldatud teenuse analüüsis on välja toodud kaks liidest, mida soovitakse arendada. Administraatoriliideses peaks administraatoril olema võimalus hallata kõiki andmeid (näiteks lisada ja kustutada: kasutajaid, harjutusi, treenigukavasid jne). Kasutajaliideses peaks tavakasutaja saama sisestada oma keha kohta viimaseid andmeid, panna kirja infot viimase treeningu kohta ning lisada omale kontaktandmeid, valida treeningukavasid ja paigutada need soovitud päevadele.&lt;br /&gt;
 &lt;br /&gt;
Mingisuguseid kommentaare avaldatud klientrakenduse kohta meeskonna lehelt leida ei õnnestunud. Lisaks leidub lähtekoodis lõpuni realiseerimata osasid, mis tegelikult rakenduse tööd ei mõjuta. See tegi retsenseerimise keerulisemaks, aga üldjoontes on kõigest hoolimata võimalik lahenduse tööpõhimõttest aru saada, kui rakendust natuke testida ja lähtekoodi uurida.&lt;br /&gt;
 &lt;br /&gt;
Praeguse seisuga on veebikliendis osaliselt teostatud administraatorile mõeldud funktsionaalsus. Kasutajaid hallata veel ei saa, aga harjutusi ja treeningukavasid on võimalik lisada. Realiseerida on proovitud ka tokenipõhist autentimist, kuid see ei tööta, mis on arusaadav, kuna kasutajahaldus ja autentimine / autoriseerimine on jäänud praeguse seisuga realiseerimata ka teenuse API poolel. Ilmselgelt on näha, et töö jäi pooleli.&lt;br /&gt;
 &lt;br /&gt;
Angulari rakenduse kontrolleritega on veebikliendis tööle pandud neli vaadet: Exercises, Units, BodyParts, Routines. Neile pääseb ligi menüüribale lisatud linkide kaudu. Users vaade on ka olemas, aga ilma Angulari kontrollerita - andmeid ei laeta. Sellele vaatele pääseb ligi, kui lisada brauseri aadressiribal domeeni lõppu “/Users”. Tokenipõhise autentimise jaoks on tehtud ka MainAngular vaade (domeen/MainAngular), kuid see ei toimi.&lt;br /&gt;
 &lt;br /&gt;
Kõik olemasolevad vaated on sama ülesehitusega - kuvatakse nimekirja koos Edit ja Delete nuppudega. Filtreid andmete sorteerimiseks ei ole. Igal vaatel on olemas on ka Add New nupp. Andmete lisamiseks ja muutmiseks avaneb hüpikaken (modal), kuhu laetakse kõik objekti jaoks vajalikud input-väljad ja seotud olemite puhul valiku tegemiseks ripploetelud. Objektide kustutamisel küsitakse kasutajalt kinnitust. Kõik pakutud funktsionaalsused paraku veel ei tööta. Probleeme on eeskätt teiste olemitega seotud olemite muutmise ja kustutamisega.&lt;br /&gt;
 &lt;br /&gt;
Funktsionaalsused vaadete kaupa:&lt;br /&gt;
*Units  - andmete kuvamine, lisamine, muutmine ja kustutamine töötavad&lt;br /&gt;
*Exercises - andmete kuvamine, lisamine ja kustutamine töötavad, ent muutmine töötab ainult osaliselt: kui muuta harjutuse mõõtühikut, siis veast ei teavitata, aga muudatus andmebaasi ei jõua (Fiddleriga otse teenuse API poole pöördudes lisandus andmebaasi uus kirje)&lt;br /&gt;
*BodyParts - andmete kuvamine, lisamine ja kustutamine töötavad, aga muutmine ei õnnestu (ka Fiddleriga otse teenuse API poole pöördudes). Kui üritada muuta kehaosa alla kuuluvate harjutuste nimekirja, siis tuleb vastuseks Http status 400 (Bad request!)&lt;br /&gt;
*Routines - andmete kuvamine ja lisamine töötavad, muutmine (ReferenceError: bodyPart is not defined) ja kustutamine (Bad request!) ei õnnestu&lt;br /&gt;
 &lt;br /&gt;
Vaadete puhul võib nuriseda selle üle, et iga kontrolleri kohta on tehtud ainult Index vaatefail, mis sisaldab endas nii põhiakna kui ka hüpikakende html-koodi. Need oleks võinud parema arusaadavuse huvides ju lahutada, isegi kui andmete laadimine toimub läbi sama kontrolleri. &lt;br /&gt;
 &lt;br /&gt;
Lähtekoodist ilmneb veel, et iga töötava vaate jaoks on tehtud eraldi moodul oma kontrolleriga, mis registreeritakse vastavas vaates. Keskne moodul failis app.js ei tööta, see on praegusel kujul mõeldud tokenipõhise autentimise realiseerimiseks ja eeldab üheleherakendust (ruutimisinfo on ka seal). Kõiki autentimise töölesaamiseks vajalikke mooduleid ei ole samas projekti lisatud (authService, authInterceptorService). Tegelikult oleks keskset app-moodulit võimalik (ilma ruutimiseta) siduda ka olemasolevate MVC-vaadetega.&lt;br /&gt;
 &lt;br /&gt;
Praeguse lahenduse üheks puuduseks on veel see, et kõik Http-päringud veebiteenusele tehakse otse Angulari kontrolleritest, puudub vahepealne service-kiht. Selle tagajärjel on päringud ja vaadete loogika koodis läbisegi. Hüpikaknas objektide muutmiseks ei pärita andmeid uuesti teenusest, vaid muudetakse juba varem põhiaknasse laetud andmeid. Lisaks on Angulari raamistiku kõrval kasutatud ka tavalisi jQuery võtteid, mis teeb üldpildi võrdlemisi kirjuks. Mõned funktsioonid ei tööta korrektselt ja nii on üsna keeruline aru saada, kus viga täpselt asub: kontrolleris või teenuse API poolel.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõttes võib tõdeda, et olemasolevate vaadetega on siiski vaeva nähtud ja suhtlus teenusega tööle saadud, mis selle aine puhul on ilmselt peamine. Mõned funktsionaalsused vajavad veel viimistlemist ja projekti üldine ülesehitus korrastamist. MVC kontrolleritega autentimise tööle saamiseks tuleks lisada eespool mainitud puuduvad teenused, siduda olemasolevad kontrollerid keskse app-mooduliga ning see omakorda jagatud Layout vaatega, millele tuleks ka lisada eraldi kontroller.&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs siin].&lt;br /&gt;
&lt;br /&gt;
== Meeskond CoverMe retsensioon meeskonnale SPOT ==&lt;br /&gt;
&lt;br /&gt;
Meeskonna eesmärk oli luua veebiteenus, mis võimaldab saada infot pakutavate treeningute kohta, sisestada ja kuvada tunniplaani andmeid, registreerida osalejaid tundidesse ning end sealt eemaldada. Samuti oli ette nähtud, et administraatorid saavad lisada, muuta ja kustutada kõike sprodiklubiga seonduvat ning treenerid ja spordiklubi esindajad saavad toimetada treeningutega seotud andmete sisestamise ja muutmisega. Andmebaasimudel on tehtud väga põhjalikult ning tabelite kirjeldused on samuti välja toodud.&lt;br /&gt;
 &lt;br /&gt;
Meie hinnangul on eesmärk põhiosas täidetud, realiseeritud on enamus kavandatud must-have funktsionaalsusest (välja on jäänud logimine). Loodud on veebiteenus, mis kasutab REST arhitektuuri ja ASP.NET MVC Web Api tehnoloogiat. &lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse struktuur on üles ehitatud kihiliselt, mis võimaldab vajadusel süsteemi osasid lihtsamini muuta,  täiendada ja vajadusel välja vahetada. Kihid on jaotatud järgmiselt:&lt;br /&gt;
&lt;br /&gt;
BL - sisaldab DTO-sid ja nende koostamiseks vajalikke Factoreid. Samuti on siin Service klassid, milles on kirjas kõik päringud andmebaasist (Get mitmesugustes variantides, Add, Edit, Delete). Lisaks tavalistele CRUD meetoditele on tehtud ka spetsiifilisemad päringud , näiteks GetByIdForUser jne. Päringuid tehakse uow-de kaudu. Service’tele ja Factory’tele on loodud Interface’d.&lt;br /&gt;
&lt;br /&gt;
DAL - kasutatakse EFRepositoryFactory ja EFRepositoryProvidery põhimõtteid. DbInitializeris antakse ette lähteandmete seed’imine. Repositooriumid on omaette kaustas, kuhu on lisaks EFRepository-st päritud meetoditele juurde kirjutatud palju erinevaid meetodeid funktsionaalsuse täiendamiseks.&lt;br /&gt;
&lt;br /&gt;
Domain - andmebaasi mudelis  on kokku 12  olemit, mis on nõuetele vastav. Üldine andmebaasimudeli ülesehitus on loogiline ning listid on algselt väärtustatud, mis tagab selle, et ei pea NullReference Exceptione kontrollima. Vajalikesse kohtadesse on annotatsioonid juurde lisatud ja nendega ei ole üle pingutatud, et süsteemi liiga kirjuks ajada. Tõstame esile asjaolu, et kasutatud on  Base Entity’t, millest kõik ülejäänud olemid pärinevad. See ühtlustab rakenduse koodi ja on üldse väga hea mõte. Kasutatud on palju nullable tüüpi muutujaid, mis on antud juhul õigustatud, andes andmete sisestamisel paindlikkust, samas lisades mõneti riskantsust.&lt;br /&gt;
&lt;br /&gt;
Interfaces - Kõikide repositooriumide jaoks on loodud ka interface´d. Samuti leidub seal UOW jaoks interface.&lt;br /&gt;
 &lt;br /&gt;
WebApi - Kokku on kasutusel 6 kontrollerit, milles on realiseeritud CRUD meetodid koos mõne spetsiifilisema meetodiga (näiteks GetFilteredForPeriod). Kontrollerid saavad oma sisu vastavatest service’itest. Identity rakendamiseks on kontrollerite meetoditel kasutatatud Authorize annotatsioone. Samuti on läbi mõeldud, et mõnda meetodit on autoriseeritud kasutama ainult “Admin”-kasutaja. Näiteks ainult  “Admin”, saab salvestada treenereid andmebaasi. Kontrollerites on kenasti kasutatud erinevaid Http-staatuskoode, mitte ainult Ok(), vaid ka Forbidden(), NotFound() jne. Samuti kasutatakse edukalt sõltuvuste süstimist (Dependency Injection). Kasutatud on OAuth bearer token authentication’it.&lt;br /&gt;
 &lt;br /&gt;
Lisaks peame oluliseks märkida, et kood on kirjutatud heas stiilis, kõikjal inglise keeles, ei esine keelte segunemist. Paljudes kohtades oli kood kommenteeritud, kuid see tundus olevat ise kaasa tulnud. Meeskonna enda kommentaare ei paistnud.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõtteks võib öelda, et tegemist on väga hästi kavandatud ja realiseeritud veebiteenusega ja meeskonnaliikmete panus on olnud märkimisväärne, eriti arvestades seda, et tegemist oli vaid kahe liikmega.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:JRT&amp;diff=123698</id>
		<title>Talk:JRT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:JRT&amp;diff=123698"/>
		<updated>2017-06-15T06:01:06Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Hinnang meeskonna JRT esitatud XML-failidele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Team_SPOT Team SPOT]&lt;br /&gt;
&lt;br /&gt;
Meeskond JRT on esitanud XML-faili, skeemifaili ja kaks XSLT-faili andmete transformeerimiseks HTML- ja XML-formaati. Transformatsioonid sisaldavad enam kui ühte &#039;&#039;for-each&#039;&#039;-klauslit. HTML-väljundiga transformatsioonis on kasutatud nelja &#039;&#039;for-each&#039;&#039;i ja kolme &#039;&#039;if&#039;&#039;-tingimust. XML-väljundiga transformatsioonis on kasutatud viite &#039;&#039;for-each&#039;&#039;i ja kolme &#039;&#039;if&#039;&#039;-tingimust. XML valideerub ja loogilisi dimensioone on viis. Neljal dimensioonil on kasutatud atribuute, mis on enam kui lihtsalt ID. Töö põhinõuded on täidetud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Märkused XMLi/XSD kohta:&#039;&#039;&#039;&lt;br /&gt;
* elemendi &amp;lt;user&amp;gt; &#039;&#039;id&#039;&#039;-atribuudi väärtuse unikaalsus ei ole tagatud&lt;br /&gt;
* elemendile &amp;lt;user&amp;gt; saab lisada piiramatul arvul sama alamelementi: &amp;lt;firstName&amp;gt;, &amp;lt;lastName&amp;gt;, &amp;lt;born&amp;gt;, &amp;lt;sex&amp;gt;, …&lt;br /&gt;
* elemendil &amp;lt;user&amp;gt; on kõigi &amp;lt;subscription&amp;gt;-elementide &#039;&#039;type&#039;&#039; määratud kõige ülemisel tasemel &#039;&#039;status&#039;&#039;-atribuudiga, aga see võiks olla &amp;lt;subscription&amp;gt;-tasemel, et võimaldada rohkem paindlikkust&lt;br /&gt;
* atribuuti &#039;&#039;id&#039;&#039; (unikaalset) võiks kasutada ka teiste “liigielementide” puhul, sest:&lt;br /&gt;
**  elemente &amp;lt;subscription&amp;gt; saab sama &#039;&#039;name&#039;&#039;-atribuudiga lisada piiramatul arvul&lt;br /&gt;
**  elemendi &amp;lt;subscription&amp;gt; alla saab lisada piiramatul arvul &amp;lt;price&amp;gt;-elemente samade &#039;&#039;type&#039;&#039;- ja &#039;&#039;currency&#039;&#039;-atribuutide väärtustega&lt;br /&gt;
* elemendi &amp;lt;subscription&amp;gt; &#039;&#039;name&#039;&#039;-atribuudiga võib tekkida probleeme, kui atribuuti pandud nimi sisaldaks erimärke, seega oleks mõistlikum &#039;&#039;name&#039;&#039;-atribuut asendada eraldi alamelemendiga &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;, kus saaks kasutada CDATAt.&lt;br /&gt;
&lt;br /&gt;
Tööga on nähtud vaeva, XSLTd on koostatud arusaadavalt, kuid XSD ja XML vajaksid täiendamist, et vältida võimalikke ohukohti andmete saatmisel. Vastasel korral võivad ka transformatsioonid ootamatusi toota (vt näidet). Põhiline oleks XSDs ära märkida, kui palju mingit elementi esineda võib ning tagada ka &#039;&#039;id&#039;&#039;-atribuudi unikaalsus. XMLi koostamise puhul tuleks läbi mõelda kas atribuudid on mõistlikult valitud või saaks neid esitada paremini alamelementidena. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Näide:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background-color: whitesmoke; border: solid thin grey; display: inline-block; padding:10px&amp;quot;&amp;gt;&lt;br /&gt;
Name: Peeter Banaan&amp;lt;br&amp;gt;Member status: gold&amp;lt;br&amp;gt;Workouts and prices: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Balance: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Gym: 69.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;     Yoga: 39.99EURYoga: 39.99EURYoga: 39.99EUR&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#XML siin].&lt;br /&gt;
&lt;br /&gt;
==Hinnang meeskonna JRT esitatud veebiteenusele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Team_SPOT Team SPOT]&lt;br /&gt;
&lt;br /&gt;
JRT veebiteenus on mõeldud jõusaali külastajale, kes näevad erinevatele kehaosadele mõeldud harjutusi, treeningukavasid ning ja saavad üles märkida oma saavutusi. Projekti realiseerimiseks on kasutatud REST arhitektuuri ja ASP.NET MVC Web API tehnoloogiat. Andmebaas luuakse Entity Frameworki abil. Lahendusele on lisatud Asp.Net Identity (Individual User Accounts) funktsionaalsuse võimalus.&lt;br /&gt;
 &lt;br /&gt;
Teenuse lähtekood on jagatud kihtidesse: BL (äriloogika, andmeobjektid, teenused), DAL (suhtlus andmebaasiga, repositooriumid), Domain (olemid), Web (kontrollerid), eraldi teek on ka liidestele (Interfaces). Samuti on kasutatud sõltuvuste süstimist (Ninject) ning repositooriumide puhul Factory ja UOW mustrit. Web projektis on koos, aga eraldi kaustades, nii teenuse API kontrollerid kui ka veebikliendi MVC kontrollerid ja AngularJS kontrollerid.&lt;br /&gt;
 &lt;br /&gt;
Meeskonna lehel avaldatud veebiteenuse analüüsis endale eesmärgiks seatud kohustuslike funktsionaalsuste hulka kuuluvad: kasutajagrupid, konto loomise võimalus, isiklike andmete ja kavade salvestamise võimalus, treenerite info ja kontaktandmed. Lisavõimalusena sooviti luua ka kasutusstatistika ja -analüüsi tuge ning administraatori liidest.&lt;br /&gt;
 &lt;br /&gt;
Praeguse seisuga esitatud teenuse kohta pole meeskond kommentaare lisanud, mistõttu on keeruline kõigest ülevaadet saada ja tehtut adekvaatselt hinnata. Andmebaasi skeemi juures võiks olla ka tabelite kirjeldused ja olemite omavaheliste seoste selgitused. Esimese hooga on raske skeemi loogikast aru saada. &lt;br /&gt;
 &lt;br /&gt;
Eelnevalt mainitud põhifunktsionaalsused on ühel või teisel kujul ka realiseeritud: teenusest on võimalik kätte saada infot erinevatele kehaosadele mõeldud harjutuste, erinevate treeningühikute, treeningkavade ja päevaplaanide kohta, samuti kasutajate andmeid. Ka uute kasutajate lisamine on võimalik. Täiendavate funktsionaalsuste realiseerimiseni pole jõutud.&lt;br /&gt;
 &lt;br /&gt;
Andmebaasi migratsioone pole projekti selles faasis lisatud. Andmebaasi kustutamise või olemites tehtud muudatuste korral luuakse uus andmebaas, mis populeeritakse DAL kihis asuva DBInitializer klassi Seed() meetodis olevate andmetega.&lt;br /&gt;
 &lt;br /&gt;
Küsimusi tekitab kasutajate haldus. Nimelt on tehtud andmebaasi teenuse kasutajatele eraldi olem AppUser, kuhu saab lisada kasutajaid ilma Asp.Net Identity funktsionaalsust kasutamata. Sealt on ilma autentimiseta võimalik kätte saada kõigi kasutajate isikuandmeid. Paralleelselt on alles jäetud ka UserInt olem, kuhu saab samuti kasutajaid lisada, viimaseid on võimalik autentida läbi Web projektis asuva Account kontrolleri. AppUserit on võimalik siduda UserInt olemiga, aga see ei kajastu meeskonna lehel esitatud andmebaasi skeemis.&lt;br /&gt;
 &lt;br /&gt;
Account mudelid on samas ümber kolitud BL kihis asuvasse DTO-de kausta. Kas see on ikka õige koht? Pigem võiks need ju asuda Web projektis, kus asub vastav kontroller ja kus autentimine ja autoriseerimine tegelikult peaks toimuma. Silma jäi seegi, et nii Asp.Net Identity kui ka mõned teised paketid (näiteks Ninject) on lisatud alamprojektidesse, kus neid vaja ei lähe. &lt;br /&gt;
 &lt;br /&gt;
Asp.Net Identity funktsionaalsust tegelikult kuskil ei kasutatagi. Autentimist pole üheski kontrolleris peale AccountControlleri rakendatud, aga see pole praegu muu teenusega seotud. Kõigile andmetele pääseb takistusteta ligi otse brauserist. Samuti on võimalik näiteks Fiddleri abil andmeid muuta ja kustutada.&lt;br /&gt;
 &lt;br /&gt;
Andmebaasiga suhtlemine käib läbi DAL kihis asuvate repositooriumide, kuid kasutusel on ainult standardsed meetodid: All(), Find() / GetById(), Remove(), Add(), Update(), SaveChanges(). Ühtegi kohandatud viisi andmete kättesaamiseks või muutmiseks pole repositooriumidesse lisatud - need on kõik tühjad. Sama lugu on ka BL Services kihiga. &lt;br /&gt;
 &lt;br /&gt;
Web projekti kontrollerites pole hetkel samuti ühtegi kohandatud IHttpActionResult meetodit realiseeritud. Ka on puudu mõned tavapärased meetodid. Bodyparts ja RoutineWorkouts kontrollerid ei võimalda ID järgi objekti kätte saada. Konkreetse objekti selekteerimine on nende andmete puhul seega jäetud kliendi mureks. &lt;br /&gt;
 &lt;br /&gt;
Nagu juba eelnevalt mainitud, siis ühegi kontrolleri kasutamist pole praegu autentimisega piiratud ja kasutajarolle ei rakendata.&lt;br /&gt;
 &lt;br /&gt;
Service kihis tuleks üle vaadata Edit() meetodid, sest need ei tööta olemite puhul, millel on sõltuvusi teiste olemitega. DTO klassides on tehtud osa atribuute kohustuslikeks, mistõttu on ka seotud olemite loomine ja muutmine läbi teenuse keerulisem kui ehk peaks. Lisaks id-atribuudile tuleb mõnel puhul kaasa anda ka objekti nimi. ProgramDTO puhul puudub aga näiteks id-atribuut sootuks. &lt;br /&gt;
 &lt;br /&gt;
Domeeni kihis on rohkem olemeid, kui praegu teenuses ära kasutatakse, aga kõiki funktsionaalsusi polegi jõutud veel realiseerida. Annotatsioonid on olemas. Vajalikud atribuudid on muudetud kohustuslikuks ning stringide pikkused piiratud. Küll on domeeni tasemel jäetud kohustuslikuks tegemata AppUseri ees- ja perenimi. Need piirangud on lisatud Account mudelites.&lt;br /&gt;
 &lt;br /&gt;
Üldkokkuvõttes võib siiski öelda, et kui autentimine ja autoriseerimine välja jätta, siis on nõutud põhifunktsionaalsused veebiteenuses lahendatud. Lahendus on jagatud kihtidesse ning äriloogika on kontrolleritest välja jäetud. Andmebaasis on olemeid piisavalt ja neid andmeid on võimalik läbi API kätte saada. Projekt on piisavalt keeruline ja selle lõplik realiseerimine nõuab ilmselt rohkem aega ja pühendumist, mida käesoleva aine sisu, mahtu ja ajakava arvesse võttes oleks ülekohtune nõuda.&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs siin].&lt;br /&gt;
&lt;br /&gt;
==Hinnang meeskonna JRT esitatud klientrakendusele==&lt;br /&gt;
&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs Team SPOT]&lt;br /&gt;
&lt;br /&gt;
JRT veebiteenuse vastu töötava klientrakenduse loomisel on kasutatud Angular JS raamistikku koos Asp.Net MVC kontrollerite ja vaadetega (Razor). Angulari osa on eraldatud App kausta. Koodis on kasutatud ka jQueryt. MVC kontrollerid ja vaated on tekitatud scaffoldingiga. Seega pole pidanud eraldi vaeva nägema ruutimisega. Kuna klient on lisatud samasse projekti, kus asuvad ka API kontrollerid, siis pole pidanud kliendi jaoks eraldi salvestama teenuse baasaadressi, mille vastu päringuid tehakse.&lt;br /&gt;
 &lt;br /&gt;
Meeskonna lehel avaldatud teenuse analüüsis on välja toodud kaks liidest, mida soovitakse arendada. Administraatoriliideses peaks administraatoril olema võimalus hallata kõiki andmeid (näiteks lisada ja kustutada: kasutajaid, harjutusi, treenigukavasid jne). Kasutajaliideses peaks tavakasutaja saama sisestada oma keha kohta viimaseid andmeid, panna kirja infot viimase treeningu kohta ning lisada omale kontaktandmeid, valida treeningukavasid ja paigutada need soovitud päevadele.&lt;br /&gt;
 &lt;br /&gt;
Mingisuguseid kommentaare avaldatud klientrakenduse kohta meeskonna lehelt leida ei õnnestunud. Lisaks leidub lähtekoodis lõpuni realiseerimata osasid, mis tegelikult rakenduse tööd ei mõjuta. See tegi retsenseerimise keerulisemaks, aga üldjoontes on kõigest hoolimata võimalik lahenduse tööpõhimõttest aru saada, kui rakendust natuke testida ja lähtekoodi uurida.&lt;br /&gt;
 &lt;br /&gt;
Praeguse seisuga on veebikliendis osaliselt teostatud administraatorile mõeldud funktsionaalsus. Kasutajaid hallata veel ei saa, aga harjutusi ja treeningukavasid on võimalik lisada. Realiseerida on proovitud ka tokenipõhist autentimist, kuid see ei tööta, mis on arusaadav, kuna kasutajahaldus ja autentimine / autoriseerimine on jäänud praeguse seisuga realiseerimata ka teenuse API poolel. Ilmselgelt on näha, et töö jäi pooleli.&lt;br /&gt;
 &lt;br /&gt;
Angulari rakenduse kontrolleritega on veebikliendis tööle pandud neli vaadet: Exercises, Units, BodyParts, Routines. Neile pääseb ligi menüüribale lisatud linkide kaudu. Users vaade on ka olemas, aga ilma Angulari kontrollerita - andmeid ei laeta. Sellele vaatele pääseb ligi, kui lisada brauseri aadressiribal domeeni lõppu “/Users”. Tokenipõhise autentimise jaoks on tehtud ka MainAngular vaade (domeen/MainAngular), kuid see ei toimi.&lt;br /&gt;
 &lt;br /&gt;
Kõik olemasolevad vaated on sama ülesehitusega - kuvatakse nimekirja koos Edit ja Delete nuppudega. Filtreid andmete sorteerimiseks ei ole. Igal vaatel on olemas on ka Add New nupp. Andmete lisamiseks ja muutmiseks avaneb hüpikaken (modal), kuhu laetakse kõik objekti jaoks vajalikud input-väljad ja seotud olemite puhul valiku tegemiseks ripploetelud. Objektide kustutamisel küsitakse kasutajalt kinnitust. Kõik pakutud funktsionaalsused paraku veel ei tööta. Probleeme on eeskätt teiste olemitega seotud olemite muutmise ja kustutamisega.&lt;br /&gt;
 &lt;br /&gt;
Funktsionaalsused vaadete kaupa:&lt;br /&gt;
*Units  - andmete kuvamine, lisamine, muutmine ja kustutamine töötavad&lt;br /&gt;
*Exercises - andmete kuvamine, lisamine ja kustutamine töötavad, ent muutmine töötab ainult osaliselt: kui muuta harjutuse mõõtühikut, siis veast ei teavitata, aga muudatus andmebaasi ei jõua (Fiddleriga otse teenuse API poole pöördudes lisandus andmebaasi uus kirje)&lt;br /&gt;
*BodyParts - andmete kuvamine, lisamine ja kustutamine töötavad, aga muutmine ei õnnestu (ka Fiddleriga otse teenuse API poole pöördudes). Kui üritada muuta kehaosa alla kuuluvate harjutuste nimekirja, siis tuleb vastuseks Http status 400 (Bad request!)&lt;br /&gt;
*Routines - andmete kuvamine ja lisamine töötavad, muutmine (ReferenceError: bodyPart is not defined) ja kustutamine (Bad request!) ei õnnestu&lt;br /&gt;
 &lt;br /&gt;
Vaadete puhul võib nuriseda selle üle, et iga kontrolleri kohta on tehtud ainult Index vaatefail, mis sisaldab endas nii põhiakna kui ka hüpikakende html-koodi. Need oleks võinud parema arusaadavuse huvides ju lahutada, isegi kui andmete laadimine toimub läbi sama kontrolleri. &lt;br /&gt;
 &lt;br /&gt;
Lähtekoodist ilmneb veel, et iga töötava vaate jaoks on tehtud eraldi moodul oma kontrolleriga, mis registreeritakse vastavas vaates. Keskne moodul failis app.js ei tööta, see on praegusel kujul mõeldud tokenipõhise autentimise realiseerimiseks ja eeldab üheleherakendust (ruutimisinfo on ka seal). Kõiki autentimise töölesaamiseks vajalikke mooduleid ei ole samas projekti lisatud (authService, authInterceptorService). Tegelikult oleks keskset app-moodulit võimalik (ilma ruutimiseta) siduda ka olemasolevate MVC-vaadetega.&lt;br /&gt;
 &lt;br /&gt;
Praeguse lahenduse üheks puuduseks on veel see, et kõik Http-päringud veebiteenusele tehakse otse Angulari kontrolleritest, puudub vahepealne service-kiht. Selle tagajärjel on päringud ja vaadete loogika koodis läbisegi. Hüpikaknas objektide muutmiseks ei pärita andmeid uuesti teenusest, vaid muudetakse juba varem põhiaknasse laetud andmeid. Lisaks on Angulari raamistiku kõrval kasutatud ka tavalisi jQuery võtteid, mis teeb üldpildi võrdlemisi kirjuks. Mõned funktsioonid ei tööta korrektselt ja nii on üsna keeruline aru saada, kus viga täpselt asub: kontrolleris või teenuse API poolel.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõttes võib tõdeda, et olemasolevate vaadetega on siiski vaeva nähtud ja suhtlus teenusega tööle saadud, mis selle aine puhul on ilmselt peamine. Mõned funktsionaalsused vajavad veel viimistlemist ja projekti üldine ülesehitus korrastamist. MVC kontrolleritega autentimise tööle saamiseks tuleks lisada eespool mainitud puuduvad teenused, siduda olemasolevad kontrollerid keskse app-mooduliga ning see omakorda jagatud Layout vaatega, millele tuleks ka lisada eraldi kontroller.&lt;br /&gt;
&lt;br /&gt;
JRT esitatud töö asub [https://wiki.itcollege.ee/index.php/JRT#J.C3.B5usaali_infos.C3.BCsteemi_anal.C3.BC.C3.BCs siin].&lt;br /&gt;
&lt;br /&gt;
=== Meeskond CoverMe retsensioon meeskonnale SPOT ===&lt;br /&gt;
&lt;br /&gt;
Meeskonna eesmärk oli luua veebiteenus, mis võimaldab saada infot pakutavate treeningute kohta, sisestada ja kuvada tunniplaani andmeid, registreerida osalejaid tundidesse ning end sealt eemaldada. Samuti oli ette nähtud, et administraatorid saavad lisada, muuta ja kustutada kõike sprodiklubiga seonduvat ning treenerid ja spordiklubi esindajad saavad toimetada treeningutega seotud andmete sisestamise ja muutmisega. Andmebaasimudel on tehtud väga põhjalikult ning tabelite kirjeldused on samuti välja toodud.&lt;br /&gt;
 &lt;br /&gt;
Meie hinnangul on eesmärk põhiosas täidetud, realiseeritud on enamus kavandatud must-have funktsionaalsusest (välja on jäänud logimine). Loodud on veebiteenus, mis kasutab REST arhitektuuri ja ASP.NET MVC Web Api tehnoloogiat. &lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse struktuur on üles ehitatud kihiliselt, mis võimaldab vajadusel süsteemi osasid lihtsamini muuta,  täiendada ja vajadusel välja vahetada. Kihid on jaotatud järgmiselt:&lt;br /&gt;
&lt;br /&gt;
BL - sisaldab DTO-sid ja nende koostamiseks vajalikke Factoreid. Samuti on siin Service klassid, milles on kirjas kõik päringud andmebaasist (Get mitmesugustes variantides, Add, Edit, Delete). Lisaks tavalistele CRUD meetoditele on tehtud ka spetsiifilisemad päringud , näiteks GetByIdForUser jne. Päringuid tehakse uow-de kaudu. Service’tele ja Factory’tele on loodud Interface’d.&lt;br /&gt;
&lt;br /&gt;
DAL - kasutatakse EFRepositoryFactory ja EFRepositoryProvidery põhimõtteid. DbInitializeris antakse ette lähteandmete seed’imine. Repositooriumid on omaette kaustas, kuhu on lisaks EFRepository-st päritud meetoditele juurde kirjutatud palju erinevaid meetodeid funktsionaalsuse täiendamiseks.&lt;br /&gt;
&lt;br /&gt;
Domain - andmebaasi mudelis  on kokku 12  olemit, mis on nõuetele vastav. Üldine andmebaasimudeli ülesehitus on loogiline ning listid on algselt väärtustatud, mis tagab selle, et ei pea NullReference Exceptione kontrollima. Vajalikesse kohtadesse on annotatsioonid juurde lisatud ja nendega ei ole üle pingutatud, et süsteemi liiga kirjuks ajada. Tõstame esile asjaolu, et kasutatud on  Base Entity’t, millest kõik ülejäänud olemid pärinevad. See ühtlustab rakenduse koodi ja on üldse väga hea mõte. Kasutatud on palju nullable tüüpi muutujaid, mis on antud juhul õigustatud, andes andmete sisestamisel paindlikkust, samas lisades mõneti riskantsust.&lt;br /&gt;
&lt;br /&gt;
Interfaces - Kõikide repositooriumide jaoks on loodud ka interface´d. Samuti leidub seal UOW jaoks interface.&lt;br /&gt;
 &lt;br /&gt;
WebApi - Kokku on kasutusel 6 kontrollerit, milles on realiseeritud CRUD meetodid koos mõne spetsiifilisema meetodiga (näiteks GetFilteredForPeriod). Kontrollerid saavad oma sisu vastavatest service’itest. Identity rakendamiseks on kontrollerite meetoditel kasutatatud Authorize annotatsioone. Samuti on läbi mõeldud, et mõnda meetodit on autoriseeritud kasutama ainult “Admin”-kasutaja. Näiteks ainult  “Admin”, saab salvestada treenereid andmebaasi. Kontrollerites on kenasti kasutatud erinevaid Http-staatuskoode, mitte ainult Ok(), vaid ka Forbidden(), NotFound() jne. Samuti kasutatakse edukalt sõltuvuste süstimist (Dependency Injection). Kasutatud on OAuth bearer token authentication’it.&lt;br /&gt;
 &lt;br /&gt;
Lisaks peame oluliseks märkida, et kood on kirjutatud heas stiilis, kõikjal inglise keeles, ei esine keelte segunemist. Paljudes kohtades oli kood kommenteeritud, kuid see tundus olevat ise kaasa tulnud. Meeskonna enda kommentaare ei paistnud.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõtteks võib öelda, et tegemist on väga hästi kavandatud ja realiseeritud veebiteenusega ja meeskonnaliikmete panus on olnud märkimisväärne, eriti arvestades seda, et tegemist oli vaid kahe liikmega.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=JRT&amp;diff=123697</id>
		<title>JRT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=JRT&amp;diff=123697"/>
		<updated>2017-06-15T05:58:40Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond CoverMe retsensioon meeskonnale SPOT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Riho Uusjärv &amp;lt;br&amp;gt;&lt;br /&gt;
Jevgeni Gavrilov &amp;lt;br&amp;gt;&lt;br /&gt;
Tiit Kuuskmäe&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Blog =&lt;br /&gt;
&lt;br /&gt;
19.03.2017 - Meeskonna loomine, teema välja mõtlemine, XML, XSD ja XSLT koostamine&amp;lt;br&amp;gt;&lt;br /&gt;
20.03.2017 - Teine XSLT koostamine ja valmis&amp;lt;br&amp;gt;&lt;br /&gt;
26.03.2017 - Retsenseerimine&amp;lt;br&amp;gt;&lt;br /&gt;
01.05.2017 - Analüüsi valmimine ja lisamine koos andmebaasi failiga&amp;lt;br&amp;gt;&lt;br /&gt;
11.06.2017 - Projekti faili lisamine&lt;br /&gt;
&lt;br /&gt;
= Tööd =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===Teema===&lt;br /&gt;
Spordisaalis on erinevad trennid, milles käivad erinevad isikud. XSLT jaoks siis teeme erinevad valitud filtreeringud&lt;br /&gt;
===Lae failid alla===&lt;br /&gt;
[http://enos.itcollege.ee/~jgavrilo/K1.rar Lae failid alla.]&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&amp;lt;pre&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;users&amp;gt;&lt;br /&gt;
  &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Balance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;50.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Gym&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;79.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;89.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;BodyPump&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Yoga&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;42.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;45.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;HotYoga&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;52.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;1&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Peeter]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Banaan]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[11.12.2000]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-08-26&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-01&amp;quot;&amp;gt;&amp;lt;![CDATA[Yoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55665566]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[peeter@gmail.ee]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[PeeterB]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;2&amp;quot; status=&amp;quot;silver&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Merlin]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Kuusk]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[11.07.1997]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[5123123]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;3&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Maarika]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Tamm]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[05.07.1999]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-08-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Yoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-11-23&amp;quot;&amp;gt;&amp;lt;![CDATA[HotYoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[maarika@gmail.com]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;4&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Peeter]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Tamm]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[22.03.2000]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55588899]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[PeeterT@gmail.com]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;5&amp;quot; status=&amp;quot;silver&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Mihkel]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Koopov]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[15.06.1994]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55588877]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[MKoopov]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;6&amp;quot; status=&amp;quot;standard&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Georg]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Karu]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[03.03.1994]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-12-17&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-01&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;7&amp;quot; status=&amp;quot;standard&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Liisa]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Leppmaa]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[15.06.1991]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-11&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-07-10&amp;quot;&amp;gt;&amp;lt;![CDATA[HotYoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55512377]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[LLee]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
&amp;lt;/users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;pre&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;users&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;subscriptions&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;subscription&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;prices&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;price&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:decimal&amp;quot;&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:attribute name=&amp;quot;type&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:attribute name=&amp;quot;currency&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: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;name&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:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;user&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;lastName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;subscriptions&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;subscription&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:string&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:attribute name=&amp;quot;expires&amp;quot; type=&amp;quot;xs:date&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: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;contacts&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;contact&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:string&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:attribute name=&amp;quot;type&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: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;born&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;sex&amp;quot; type=&amp;quot;xs:string&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;status&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:schema&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT 1===&lt;br /&gt;
Kuvab inimeste nime, liikme staatuse, treeningud koos hindedega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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;
  &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;title&amp;gt;&lt;br /&gt;
          Workout:&lt;br /&gt;
        &amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;People list with workout and price:&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;/users/user&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;Name: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;firstName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;lastName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;Member status: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:variable name=&amp;quot;Status&amp;quot; select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;subscriptions/subscription != &#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;Workouts and prices: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;     &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:variable name=&amp;quot;SelectedSubscription&amp;quot; select=&amp;quot;translate(text(), &#039; &#039;, &#039;&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:for-each select=&amp;quot;/users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:variable name=&amp;quot;Subscription&amp;quot; select=&amp;quot;@name&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:if test=&amp;quot;$Subscription= $SelectedSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:for-each select=&amp;quot;prices/price&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:if test=&amp;quot;$Status = @type&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;$Subscription&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;@currency&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Näidis====&lt;br /&gt;
[[File:3123131233.PNG]]&lt;br /&gt;
&lt;br /&gt;
===XSLT 2===&lt;br /&gt;
&amp;lt;pre&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;xml&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;main&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:for-each select=&amp;quot;users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;subscription&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:attribute name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:variable name=&amp;quot;currentSubscription&amp;quot; select=&amp;quot;@name&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;/users/user&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;currentUser&amp;quot; select=&amp;quot;.&amp;quot;&amp;gt;&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select=&amp;quot;subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:variable name=&amp;quot;sub&amp;quot; select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:if test=&amp;quot;$sub = $currentSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
                    &amp;lt;user&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;$currentUser/@id&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;$currentUser/firstName&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;$currentUser/lastName&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/user&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:variable name=&amp;quot;status&amp;quot; select=&amp;quot;$currentUser/@status&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:for-each select=&amp;quot;/users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:variable name=&amp;quot;subscr&amp;quot; select=&amp;quot;.&amp;quot;&amp;gt;&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:for-each select=&amp;quot;$subscr/prices/price&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;$subscr/@name = $currentSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:variable name=&amp;quot;curObj&amp;quot; select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:if test=&amp;quot;$curObj/@type = $status&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;price&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:attribute name=&amp;quot;currency&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:value-of select=&amp;quot;$curObj/@currency&amp;quot;/&amp;gt;&lt;br /&gt;
                              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:value-of select=&amp;quot;$curObj/@type&amp;quot;/&amp;gt;&lt;br /&gt;
                              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;/price&amp;gt;&lt;br /&gt;
                          &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                  &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
        &amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
    &amp;lt;/main&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;/pre&amp;gt;&lt;br /&gt;
====Näidis====&lt;br /&gt;
&amp;lt;pre&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;main&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;1&amp;quot; name=&amp;quot;Balance&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;2&amp;quot;&amp;gt;Merlin Kuusk&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;silver&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;6&amp;quot;&amp;gt;Georg Karu&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;50.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;2&amp;quot; name=&amp;quot;Gym&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;4&amp;quot;&amp;gt;Peeter Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;6&amp;quot;&amp;gt;Georg Karu&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;89.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;3&amp;quot; name=&amp;quot;BodyPump&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;2&amp;quot;&amp;gt;Merlin Kuusk&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;silver&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;4&amp;quot;&amp;gt;Peeter Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;7&amp;quot;&amp;gt;Liisa Leppmaa&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;4&amp;quot; name=&amp;quot;Yoga&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;3&amp;quot;&amp;gt;Maarika Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;5&amp;quot; name=&amp;quot;HotYoga&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;3&amp;quot;&amp;gt;Maarika Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;7&amp;quot;&amp;gt;Liisa Leppmaa&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
&amp;lt;/main&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jõusaali infosüsteemi analüüs==&lt;br /&gt;
&lt;br /&gt;
===Lühikirjeldus===&lt;br /&gt;
JRT on jõusaali kasutamise rakendus, mis on peamiselt mõeldud jõusaali külastajale, kes näevad erinevaid treeningkavasid ning harjutusi ja saavad üles märkida oma saavutusi. &lt;br /&gt;
&lt;br /&gt;
===Must have===&lt;br /&gt;
Kasutusgruppide alla kuuluvad rakenduse tavakasutajad, administraatorid ja treenerid. Lõppkasutajal on võimalik luua oma konto, kuhu ta sisestab regulaarselt oma kehamõõtusid. Tavakasutaja saab valida omale füüsilise aktiivsuse kestuse, treeningu tüübi ning harjutused, millest see koosneb. Tavakasutajad näevad treenerite kontaktandmeid, et nendega ühendust võtta, saamaks treeningkavasse soovitusi või lasta treeneritel teha neile päris enda treeningkava.&lt;br /&gt;
&lt;br /&gt;
===Nice to have===&lt;br /&gt;
Administraatoril on võimalik tutvuda statistikaga selle kohta, milliseid harjutusi kõige rohkem tehakse, millistele lihasegruppidele ning millistel aegadel on üht- või teistsugused harjutused populaarsemad. On loodud treenerite ja administraatorite kasutajaliides. Tavakasutajal on võimalik enda treeningute andmete põhjal tekitada igasuguseid graafikuid ja nende analüüsi. Tavakasutajal on võimalik saata teateid treeneritele ja teistele rakenduse tavakasutajatele. Treenerite kasutajaliidesest saab ülevaate selle kohta, millised tavakasutajad on tema õpilased, kuidas neil treeningutega läheb (statistika, teated) ning milline on tema enda eelseisev töögraafik. Administraatoril on võimalik saata kasutajatele teateid (näiteks, et klubi on suletud või et alanud on kampaaniaperiood).&lt;br /&gt;
&lt;br /&gt;
===Administraatori liides===&lt;br /&gt;
Administraatoril on võimalus hallata kõiki andmeid (näiteks lisada ja kustutada: kasutajaid, harjutusi, treenigukavasid jne).&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
Tavakasutaja liideses on võimalik sisestada oma keha kohta viimaseid andmeid, panna kirja infot viimase treeningu kohta ning lisada omale kontaktandmeid. Valida treeningukavasid ja paigutada need soovitud päevadele.&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi kirjeldus===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AB_GYM4.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Projekti fail===&lt;br /&gt;
&lt;br /&gt;
Projekt tehtud siis kahe liikme poolt: Riho Uusjärv ja Jevgeni Gavrilov ja projekti fail asub aadressil: https://drive.google.com/open?id=0B3nb9qMzOVSuQ1NOdk02bmhUT3c&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
== XML Retsensioonid ==&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;PC KartKicker&amp;quot; ===&lt;br /&gt;
Meeskonna &amp;quot;PC KartKicker&amp;quot; XML failide sisu leiab [https://wiki.itcollege.ee/index.php/PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;XML&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
XML fail valideerimisel ei olnud ühtegi viga. On olemas nõutud 4 loogilist dimensiooni ning atribuute on ka piisavalt ning need on sammuti piisavalt spetsiifilised ehk kõik õppejõu märgitud kriteeriumid on täidetud. XML jaotus on korrektne ja kergesti arusaadav. CDATA oleks võinud kastusel olla. &lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;Skeemifail (XSD)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
XML ei vasta XSD kirjelduses nõutud väljade parameetrile ehk storages-&amp;gt; storage -&amp;gt; type on XSD-s puudu.&lt;br /&gt;
Enda eelistused:&lt;br /&gt;
*maxGpuLength string -&amp;gt; integer&lt;br /&gt;
*maxCpuHeight string -&amp;gt; integer&lt;br /&gt;
*cooler string -&amp;gt; boolean&lt;br /&gt;
*ECC string -&amp;gt; boolean&lt;br /&gt;
*speed string -&amp;gt; decimal&lt;br /&gt;
*liquid string -&amp;gt; boolean&lt;br /&gt;
*usb3 string -&amp;gt; boolean&lt;br /&gt;
&lt;br /&gt;
Mitmed errorid:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;105&#039;, Column &#039;153&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;106&#039;, Column &#039;154&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;107&#039;, Column &#039;148&#039;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Transformatsioonid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vead:&amp;lt;br&amp;gt;&lt;br /&gt;
*Tegemist on mõlemal juhul vaid ühe for-each tsükliga&lt;br /&gt;
*Pole kasutatud tingimusi&lt;br /&gt;
*Pole tehtud eraldi HTML ja XML&lt;br /&gt;
 &lt;br /&gt;
Mõlemad XSLT-d ei vasta väljatoodud nõuetele&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kokkuvõtte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lohakas töö, tundub et üks liige on selle kiirelt ära teinud, et õigeks ajaks valmis saada ja teised ei vaevunud vaatamagi. Validaatoriga oleks võinud vähemalt üle lasta ja pisi vead likvideerida aga sedagi pole tehtud. Oleks soovitanud vähem vaeva näha kirju XML-iga ja seda aega kulutada korrektse XSD ja XSLT-d tegemiseks.&lt;br /&gt;
&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;Ninjas in pyjamas&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;XML&#039;&#039;&#039;&lt;br /&gt;
XML fail valideerub. Hea on see, et on kasutatud CDATA formaati. Siiski pole täidetud kõiki õppejõu poolt ettenähtud nõudeid: atribuute on (mis ei ole lihtsalt id) lisatud kahele dimensioonile (&#039;ticket&#039; ja &#039;user&#039;), kuid peaks olema lisatud kolmele dimensioonile. Lisaks pole väga hästi arusaadav (lugedes ideekirjeldust), miks osa kasutaja andmeid (e-kiri, roll) on määratud atribuudina, teised (kasutajanimi) jällegi elemendina.Atribuut role antud kontekstis ei oma mingid konkreetset väärtust (rollidel on id, aga kus on nende nimekiri?). Teine küsimus miks priority Id on 1 täht, on selles mingi vajadus? Lihtam kasutada int. CDATA pole kasutusel kõikidel väljadel, mis võib olla ohtlik. Kuigi seda tõenäoliselt hetkel ei pea hindama, siis meeskonnale võib olla kasulik teada, et juhul kui süsteem peab võrdlema päringu saabumise aega sellele vastamise ajaga, siis XML-is ei ole kellaaega, vaid on kuupäev. Ühtlasi puudub XML-is info selle kohta, kas päring on lahendatud või mitte.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Skeemifail (XSD)&#039;&#039;&#039;&lt;br /&gt;
XSD puhul annab validaator järgmised veateated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Not valid.&lt;br /&gt;
Error - Line 15, 90: org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 90; s4s-elt-must-match.1: The content of &#039;priority&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
Error - Line 22, 93: org.xml.sax.SAXParseException; lineNumber: 22; columnNumber: 93; s4s-elt-must-match.1: The content of &#039;user&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
Error - Line 35, 84: org.xml.sax.SAXParseException; lineNumber: 35; columnNumber: 84; s4s-elt-must-match.1: The content of &#039;attachment&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Veateadetest kõige ilmsem näib olevat element &amp;quot;priority&amp;quot;, mis võiks olla mitte &amp;quot;string&amp;quot;, vaid &amp;quot;int&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Transformatsioonid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Esimene XSLT valideerub (XSLT =&amp;gt; HTML). Paraku on seal sisuliselt ainult üks for-each klausel (asi, mille eest õppejõud hoiatab). Siinkohal jääb natuke segaseks varasemas XSL-is sisse toodud &amp;quot;title&amp;quot; element. Mida selle all mõeldakse? Kas iga päring saab pealkirja, mis on erinev probleemi kirjeldusest ja kasutaja andmetest?&lt;br /&gt;
&lt;br /&gt;
Teine XSLT (XSLT =&amp;gt; XML) ei valideeru. Veateade on järgmine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Not valid.&lt;br /&gt;
FatalError: javax.xml.transform.TransformerException: A location step was expected following the &#039;/&#039; or &#039;//&#039; token.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisulise poole pealt on tehtud üks &amp;quot;for-each&amp;quot; ja üks &amp;quot;sort&amp;quot;, ülejäänud on &amp;quot;value-of&amp;quot;-id. Muidu kõik kena, kuid natuke lühike ehk?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kokkuvõtte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tööd on küll esitatud ja vaeva nähtud, kuid kõik lahenduste aspektid ei vasta siiski õppejõu poolt ettenähtud nõuetele. Lisaks on probleeme osade koodide valideerumisega (XSD ja üks XSLT). Need asjad tasuks rakenduse edasist arendamist silmas pidades üle vaadata.&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;SPOT&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Retsenseeritavaks tööks oli valitud tiimi SPOT veebiteenus, mis on seotud spordiklubide treeningute haldamisega. Esialgses andmebaasi skeemis oli plaanitud teha 16 tabelit, millest 4 on entitytega seotud. Projektis oli ära tehtud 12 domeeni mudeleid + entitytega seotud automaatselt. Mudelid tunduvad loogilised olla. On kasutatud propertid, mida andmebaasi ei salvestata, aga kalkuleeritakse jooksvalt. On kasutatud ka BaseEntity, milles on CreatedAt jne, ja kõik teised olemid pärinevad sellest, minu arust väga hea lahendus. Teenuse seadistatus, et tagastada jsoni igasuguste settingutega. API Routing pole muudetud, eriolukordade jaoks kasutatakse routingu atribuutides. Rakenduses on realiseeritud Seed meetod, mis väärtustab andmebaasi testandmetega. On näha, et testandmete täitmisel on kasutatud üks väline xml fail, faili töötlemises on kasutatud nii foreach tsükleid, kui ka LINQ avaldisi. Oleks hea kui paljudes kohtades null reference exceptioni vältimiseks teeks checki, aga muidu kui võtta arvesse, et see XML ei muutu kunagi, siis tehtud/pakutud variant ka sobib. Data access layer on ilusasti tehtud, iga olemi jaoks tehtud repositoorium, mis oma korda implementeerib interface’i. Repositooriumide päringul on ka realiseeritud singletoni muster. Järgmisel tasemel on tehtud UOW, kus on kasutusel nii Custom Repo küsimine, kui ka Standard. NLOg logimine on ka ilusasti implementeeritud. Üldiselt DAL projekti vaadates tekib tunne, et tiim on seda läbi töötanud ja ilusasti häid praktikaid kasutades tegi ära. Järgmine projekt on “BL”, kohe näha, et projekt on ilusasti struktureeritud, kasutatakse factoreid ja serviceid, mil omakorda implementeerivad interface. Data Transfer objektides ei ole miksimist domeen olemitega, mis on hästi, kuna selline olukord tekitaks “lazy loading”-uga, et kõik seosed ja andmed tuleksid andmebaasist, mida pole vaja. DTO-des ei ole kasutatud atribuute, mis sõltuvalt olukorrast võib olla halb, kuna puudub igasugune kontroll mida kasutaja saadab teenuse peale. Nagu ennem oli öeldud, et interfacid on kasutusel, aga objekti loomisel ei kasutata DI mootorit, vaid luuakse otse new keyword’iga. Andmebaasi salvestamine käib läbi UOW. Kõik DTO-d, serviced ja factoryd tunduvad läbimõeldud. Solution’is eksisteerib projekt nimega “ConsoleApp” tundub, et tiim kasutas seda oma veebiteenuse testimiseks. Järgmine projekt on DataAnnotations, milles olemas ainuke klass “Precision”, Internetis otsides ja koodi vaadates, sain teada, et seda kasutatakse decimal täpsuse kindlaks tegemiseks ja sellist valmis lahenduse .net-is pole. SPOT tiimi solution’is ma kahjuks ei leidnud mitte ühtegi kohta kus seda kasutatakse. Järgmine projekt on Identity, kus on kõik olemid identity’ga seotud ja vajalikud services. Järgmine projekt ‘’Interfaces’’, kus hoitakse peaaegu kõik interfacid. Ja viimane projekt on “WebApi”, mis hoiab endas veebiteenuste kontrollereid, vaateid, scripte ja teisi faile. Kontrollerist on näha, et tiim tegi ümber Entity Useri primaarse võtme stringist integeri. On kasutusel Authorize atribuudid, mis piiravad liigipääsu erinevatele kontrolleritele/meetoditele. Samuti veebiteenuses eksisteerivad erinevad rollid (Admin ja treener), neid ka kasutatakse Authorize atribuutides. Samuti kontrollerites on kasutusel GET, POST, PUT ja DELETE päringute päised. Kontrollerites on implementeeritud sünkroonne lähenemine (pole kusagil olemas async võtmesõna). Kui rääkida tööst üldiselt, siis kohe näha, et tiim tegi suure töö (see pole mahulises mõttes lõpetatud, aga kogu baas on olemas, jäänud ainult DTO-de tegemine ja nende käsitlemine). Ainukesed puudused, mida ma näen, on DTO-des atribuutide puudumine. Aga muidu tuli välja ilus, loogiliselt struktureeritud veebiteenus.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=JRT&amp;diff=123696</id>
		<title>JRT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=JRT&amp;diff=123696"/>
		<updated>2017-06-15T05:57:36Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond CoverMe retsensioon meeskonnale SPOT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Riho Uusjärv &amp;lt;br&amp;gt;&lt;br /&gt;
Jevgeni Gavrilov &amp;lt;br&amp;gt;&lt;br /&gt;
Tiit Kuuskmäe&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Blog =&lt;br /&gt;
&lt;br /&gt;
19.03.2017 - Meeskonna loomine, teema välja mõtlemine, XML, XSD ja XSLT koostamine&amp;lt;br&amp;gt;&lt;br /&gt;
20.03.2017 - Teine XSLT koostamine ja valmis&amp;lt;br&amp;gt;&lt;br /&gt;
26.03.2017 - Retsenseerimine&amp;lt;br&amp;gt;&lt;br /&gt;
01.05.2017 - Analüüsi valmimine ja lisamine koos andmebaasi failiga&amp;lt;br&amp;gt;&lt;br /&gt;
11.06.2017 - Projekti faili lisamine&lt;br /&gt;
&lt;br /&gt;
= Tööd =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===Teema===&lt;br /&gt;
Spordisaalis on erinevad trennid, milles käivad erinevad isikud. XSLT jaoks siis teeme erinevad valitud filtreeringud&lt;br /&gt;
===Lae failid alla===&lt;br /&gt;
[http://enos.itcollege.ee/~jgavrilo/K1.rar Lae failid alla.]&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&amp;lt;pre&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;users&amp;gt;&lt;br /&gt;
  &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Balance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;50.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Gym&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;79.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;89.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;BodyPump&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Yoga&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;42.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;45.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;HotYoga&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;52.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;1&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Peeter]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Banaan]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[11.12.2000]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-08-26&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-01&amp;quot;&amp;gt;&amp;lt;![CDATA[Yoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55665566]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[peeter@gmail.ee]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[PeeterB]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;2&amp;quot; status=&amp;quot;silver&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Merlin]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Kuusk]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[11.07.1997]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[5123123]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;3&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Maarika]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Tamm]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[05.07.1999]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-08-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Yoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-11-23&amp;quot;&amp;gt;&amp;lt;![CDATA[HotYoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[maarika@gmail.com]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;4&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Peeter]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Tamm]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[22.03.2000]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55588899]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[PeeterT@gmail.com]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;5&amp;quot; status=&amp;quot;silver&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Mihkel]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Koopov]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[15.06.1994]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55588877]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[MKoopov]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;6&amp;quot; status=&amp;quot;standard&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Georg]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Karu]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[03.03.1994]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-12-17&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-01&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;7&amp;quot; status=&amp;quot;standard&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Liisa]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Leppmaa]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[15.06.1991]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-11&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-07-10&amp;quot;&amp;gt;&amp;lt;![CDATA[HotYoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55512377]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[LLee]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
&amp;lt;/users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;pre&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;users&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;subscriptions&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;subscription&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;prices&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;price&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:decimal&amp;quot;&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:attribute name=&amp;quot;type&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:attribute name=&amp;quot;currency&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: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;name&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:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;user&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;lastName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;subscriptions&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;subscription&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:string&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:attribute name=&amp;quot;expires&amp;quot; type=&amp;quot;xs:date&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: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;contacts&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;contact&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:string&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:attribute name=&amp;quot;type&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: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;born&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;sex&amp;quot; type=&amp;quot;xs:string&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;status&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:schema&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT 1===&lt;br /&gt;
Kuvab inimeste nime, liikme staatuse, treeningud koos hindedega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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;
  &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;title&amp;gt;&lt;br /&gt;
          Workout:&lt;br /&gt;
        &amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;People list with workout and price:&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;/users/user&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;Name: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;firstName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;lastName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;Member status: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:variable name=&amp;quot;Status&amp;quot; select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;subscriptions/subscription != &#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;Workouts and prices: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;     &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:variable name=&amp;quot;SelectedSubscription&amp;quot; select=&amp;quot;translate(text(), &#039; &#039;, &#039;&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:for-each select=&amp;quot;/users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:variable name=&amp;quot;Subscription&amp;quot; select=&amp;quot;@name&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:if test=&amp;quot;$Subscription= $SelectedSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:for-each select=&amp;quot;prices/price&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:if test=&amp;quot;$Status = @type&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;$Subscription&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;@currency&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Näidis====&lt;br /&gt;
[[File:3123131233.PNG]]&lt;br /&gt;
&lt;br /&gt;
===XSLT 2===&lt;br /&gt;
&amp;lt;pre&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;xml&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;main&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:for-each select=&amp;quot;users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;subscription&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:attribute name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:variable name=&amp;quot;currentSubscription&amp;quot; select=&amp;quot;@name&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;/users/user&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;currentUser&amp;quot; select=&amp;quot;.&amp;quot;&amp;gt;&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select=&amp;quot;subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:variable name=&amp;quot;sub&amp;quot; select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:if test=&amp;quot;$sub = $currentSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
                    &amp;lt;user&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;$currentUser/@id&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;$currentUser/firstName&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;$currentUser/lastName&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/user&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:variable name=&amp;quot;status&amp;quot; select=&amp;quot;$currentUser/@status&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:for-each select=&amp;quot;/users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:variable name=&amp;quot;subscr&amp;quot; select=&amp;quot;.&amp;quot;&amp;gt;&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:for-each select=&amp;quot;$subscr/prices/price&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;$subscr/@name = $currentSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:variable name=&amp;quot;curObj&amp;quot; select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:if test=&amp;quot;$curObj/@type = $status&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;price&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:attribute name=&amp;quot;currency&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:value-of select=&amp;quot;$curObj/@currency&amp;quot;/&amp;gt;&lt;br /&gt;
                              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:value-of select=&amp;quot;$curObj/@type&amp;quot;/&amp;gt;&lt;br /&gt;
                              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;/price&amp;gt;&lt;br /&gt;
                          &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                  &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
        &amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
    &amp;lt;/main&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;/pre&amp;gt;&lt;br /&gt;
====Näidis====&lt;br /&gt;
&amp;lt;pre&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;main&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;1&amp;quot; name=&amp;quot;Balance&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;2&amp;quot;&amp;gt;Merlin Kuusk&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;silver&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;6&amp;quot;&amp;gt;Georg Karu&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;50.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;2&amp;quot; name=&amp;quot;Gym&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;4&amp;quot;&amp;gt;Peeter Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;6&amp;quot;&amp;gt;Georg Karu&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;89.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;3&amp;quot; name=&amp;quot;BodyPump&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;2&amp;quot;&amp;gt;Merlin Kuusk&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;silver&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;4&amp;quot;&amp;gt;Peeter Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;7&amp;quot;&amp;gt;Liisa Leppmaa&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;4&amp;quot; name=&amp;quot;Yoga&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;3&amp;quot;&amp;gt;Maarika Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;5&amp;quot; name=&amp;quot;HotYoga&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;3&amp;quot;&amp;gt;Maarika Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;7&amp;quot;&amp;gt;Liisa Leppmaa&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
&amp;lt;/main&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jõusaali infosüsteemi analüüs==&lt;br /&gt;
&lt;br /&gt;
===Lühikirjeldus===&lt;br /&gt;
JRT on jõusaali kasutamise rakendus, mis on peamiselt mõeldud jõusaali külastajale, kes näevad erinevaid treeningkavasid ning harjutusi ja saavad üles märkida oma saavutusi. &lt;br /&gt;
&lt;br /&gt;
===Must have===&lt;br /&gt;
Kasutusgruppide alla kuuluvad rakenduse tavakasutajad, administraatorid ja treenerid. Lõppkasutajal on võimalik luua oma konto, kuhu ta sisestab regulaarselt oma kehamõõtusid. Tavakasutaja saab valida omale füüsilise aktiivsuse kestuse, treeningu tüübi ning harjutused, millest see koosneb. Tavakasutajad näevad treenerite kontaktandmeid, et nendega ühendust võtta, saamaks treeningkavasse soovitusi või lasta treeneritel teha neile päris enda treeningkava.&lt;br /&gt;
&lt;br /&gt;
===Nice to have===&lt;br /&gt;
Administraatoril on võimalik tutvuda statistikaga selle kohta, milliseid harjutusi kõige rohkem tehakse, millistele lihasegruppidele ning millistel aegadel on üht- või teistsugused harjutused populaarsemad. On loodud treenerite ja administraatorite kasutajaliides. Tavakasutajal on võimalik enda treeningute andmete põhjal tekitada igasuguseid graafikuid ja nende analüüsi. Tavakasutajal on võimalik saata teateid treeneritele ja teistele rakenduse tavakasutajatele. Treenerite kasutajaliidesest saab ülevaate selle kohta, millised tavakasutajad on tema õpilased, kuidas neil treeningutega läheb (statistika, teated) ning milline on tema enda eelseisev töögraafik. Administraatoril on võimalik saata kasutajatele teateid (näiteks, et klubi on suletud või et alanud on kampaaniaperiood).&lt;br /&gt;
&lt;br /&gt;
===Administraatori liides===&lt;br /&gt;
Administraatoril on võimalus hallata kõiki andmeid (näiteks lisada ja kustutada: kasutajaid, harjutusi, treenigukavasid jne).&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
Tavakasutaja liideses on võimalik sisestada oma keha kohta viimaseid andmeid, panna kirja infot viimase treeningu kohta ning lisada omale kontaktandmeid. Valida treeningukavasid ja paigutada need soovitud päevadele.&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi kirjeldus===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AB_GYM4.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Projekti fail===&lt;br /&gt;
&lt;br /&gt;
Projekt tehtud siis kahe liikme poolt: Riho Uusjärv ja Jevgeni Gavrilov ja projekti fail asub aadressil: https://drive.google.com/open?id=0B3nb9qMzOVSuQ1NOdk02bmhUT3c&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
== XML Retsensioonid ==&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;PC KartKicker&amp;quot; ===&lt;br /&gt;
Meeskonna &amp;quot;PC KartKicker&amp;quot; XML failide sisu leiab [https://wiki.itcollege.ee/index.php/PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;XML&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
XML fail valideerimisel ei olnud ühtegi viga. On olemas nõutud 4 loogilist dimensiooni ning atribuute on ka piisavalt ning need on sammuti piisavalt spetsiifilised ehk kõik õppejõu märgitud kriteeriumid on täidetud. XML jaotus on korrektne ja kergesti arusaadav. CDATA oleks võinud kastusel olla. &lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;Skeemifail (XSD)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
XML ei vasta XSD kirjelduses nõutud väljade parameetrile ehk storages-&amp;gt; storage -&amp;gt; type on XSD-s puudu.&lt;br /&gt;
Enda eelistused:&lt;br /&gt;
*maxGpuLength string -&amp;gt; integer&lt;br /&gt;
*maxCpuHeight string -&amp;gt; integer&lt;br /&gt;
*cooler string -&amp;gt; boolean&lt;br /&gt;
*ECC string -&amp;gt; boolean&lt;br /&gt;
*speed string -&amp;gt; decimal&lt;br /&gt;
*liquid string -&amp;gt; boolean&lt;br /&gt;
*usb3 string -&amp;gt; boolean&lt;br /&gt;
&lt;br /&gt;
Mitmed errorid:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;105&#039;, Column &#039;153&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;106&#039;, Column &#039;154&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;107&#039;, Column &#039;148&#039;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Transformatsioonid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vead:&amp;lt;br&amp;gt;&lt;br /&gt;
*Tegemist on mõlemal juhul vaid ühe for-each tsükliga&lt;br /&gt;
*Pole kasutatud tingimusi&lt;br /&gt;
*Pole tehtud eraldi HTML ja XML&lt;br /&gt;
 &lt;br /&gt;
Mõlemad XSLT-d ei vasta väljatoodud nõuetele&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kokkuvõtte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lohakas töö, tundub et üks liige on selle kiirelt ära teinud, et õigeks ajaks valmis saada ja teised ei vaevunud vaatamagi. Validaatoriga oleks võinud vähemalt üle lasta ja pisi vead likvideerida aga sedagi pole tehtud. Oleks soovitanud vähem vaeva näha kirju XML-iga ja seda aega kulutada korrektse XSD ja XSLT-d tegemiseks.&lt;br /&gt;
&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;Ninjas in pyjamas&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;XML&#039;&#039;&#039;&lt;br /&gt;
XML fail valideerub. Hea on see, et on kasutatud CDATA formaati. Siiski pole täidetud kõiki õppejõu poolt ettenähtud nõudeid: atribuute on (mis ei ole lihtsalt id) lisatud kahele dimensioonile (&#039;ticket&#039; ja &#039;user&#039;), kuid peaks olema lisatud kolmele dimensioonile. Lisaks pole väga hästi arusaadav (lugedes ideekirjeldust), miks osa kasutaja andmeid (e-kiri, roll) on määratud atribuudina, teised (kasutajanimi) jällegi elemendina.Atribuut role antud kontekstis ei oma mingid konkreetset väärtust (rollidel on id, aga kus on nende nimekiri?). Teine küsimus miks priority Id on 1 täht, on selles mingi vajadus? Lihtam kasutada int. CDATA pole kasutusel kõikidel väljadel, mis võib olla ohtlik. Kuigi seda tõenäoliselt hetkel ei pea hindama, siis meeskonnale võib olla kasulik teada, et juhul kui süsteem peab võrdlema päringu saabumise aega sellele vastamise ajaga, siis XML-is ei ole kellaaega, vaid on kuupäev. Ühtlasi puudub XML-is info selle kohta, kas päring on lahendatud või mitte.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Skeemifail (XSD)&#039;&#039;&#039;&lt;br /&gt;
XSD puhul annab validaator järgmised veateated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Not valid.&lt;br /&gt;
Error - Line 15, 90: org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 90; s4s-elt-must-match.1: The content of &#039;priority&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
Error - Line 22, 93: org.xml.sax.SAXParseException; lineNumber: 22; columnNumber: 93; s4s-elt-must-match.1: The content of &#039;user&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
Error - Line 35, 84: org.xml.sax.SAXParseException; lineNumber: 35; columnNumber: 84; s4s-elt-must-match.1: The content of &#039;attachment&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Veateadetest kõige ilmsem näib olevat element &amp;quot;priority&amp;quot;, mis võiks olla mitte &amp;quot;string&amp;quot;, vaid &amp;quot;int&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Transformatsioonid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Esimene XSLT valideerub (XSLT =&amp;gt; HTML). Paraku on seal sisuliselt ainult üks for-each klausel (asi, mille eest õppejõud hoiatab). Siinkohal jääb natuke segaseks varasemas XSL-is sisse toodud &amp;quot;title&amp;quot; element. Mida selle all mõeldakse? Kas iga päring saab pealkirja, mis on erinev probleemi kirjeldusest ja kasutaja andmetest?&lt;br /&gt;
&lt;br /&gt;
Teine XSLT (XSLT =&amp;gt; XML) ei valideeru. Veateade on järgmine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Not valid.&lt;br /&gt;
FatalError: javax.xml.transform.TransformerException: A location step was expected following the &#039;/&#039; or &#039;//&#039; token.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisulise poole pealt on tehtud üks &amp;quot;for-each&amp;quot; ja üks &amp;quot;sort&amp;quot;, ülejäänud on &amp;quot;value-of&amp;quot;-id. Muidu kõik kena, kuid natuke lühike ehk?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kokkuvõtte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tööd on küll esitatud ja vaeva nähtud, kuid kõik lahenduste aspektid ei vasta siiski õppejõu poolt ettenähtud nõuetele. Lisaks on probleeme osade koodide valideerumisega (XSD ja üks XSLT). Need asjad tasuks rakenduse edasist arendamist silmas pidades üle vaadata.&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
=== Meeskond CoverMe retsensioon meeskonnale SPOT ===&lt;br /&gt;
&lt;br /&gt;
Meeskonna eesmärk oli luua veebiteenus, mis võimaldab saada infot pakutavate treeningute kohta, sisestada ja kuvada tunniplaani andmeid, registreerida osalejaid tundidesse ning end sealt eemaldada. Samuti oli ette nähtud, et administraatorid saavad lisada, muuta ja kustutada kõike sprodiklubiga seonduvat ning treenerid ja spordiklubi esindajad saavad toimetada treeningutega seotud andmete sisestamise ja muutmisega. Andmebaasimudel on tehtud väga põhjalikult ning tabelite kirjeldused on samuti välja toodud.&lt;br /&gt;
 &lt;br /&gt;
Meie hinnangul on eesmärk põhiosas täidetud, realiseeritud on enamus kavandatud must-have funktsionaalsusest (välja on jäänud logimine). Loodud on veebiteenus, mis kasutab REST arhitektuuri ja ASP.NET MVC Web Api tehnoloogiat. &lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse struktuur on üles ehitatud kihiliselt, mis võimaldab vajadusel süsteemi osasid lihtsamini muuta,  täiendada ja vajadusel välja vahetada. Kihid on jaotatud järgmiselt:&lt;br /&gt;
&lt;br /&gt;
BL - sisaldab DTO-sid ja nende koostamiseks vajalikke Factoreid. Samuti on siin Service klassid, milles on kirjas kõik päringud andmebaasist (Get mitmesugustes variantides, Add, Edit, Delete). Lisaks tavalistele CRUD meetoditele on tehtud ka spetsiifilisemad päringud , näiteks GetByIdForUser jne. Päringuid tehakse uow-de kaudu. Service’tele ja Factory’tele on loodud Interface’d.&lt;br /&gt;
&lt;br /&gt;
DAL - kasutatakse EFRepositoryFactory ja EFRepositoryProvidery põhimõtteid. DbInitializeris antakse ette lähteandmete seed’imine. Repositooriumid on omaette kaustas, kuhu on lisaks EFRepository-st päritud meetoditele juurde kirjutatud palju erinevaid meetodeid funktsionaalsuse täiendamiseks.&lt;br /&gt;
&lt;br /&gt;
Domain - andmebaasi mudelis  on kokku 12  olemit, mis on nõuetele vastav. Üldine andmebaasimudeli ülesehitus on loogiline ning listid on algselt väärtustatud, mis tagab selle, et ei pea NullReference Exceptione kontrollima. Vajalikesse kohtadesse on annotatsioonid juurde lisatud ja nendega ei ole üle pingutatud, et süsteemi liiga kirjuks ajada. Tõstame esile asjaolu, et kasutatud on  Base Entity’t, millest kõik ülejäänud olemid pärinevad. See ühtlustab rakenduse koodi ja on üldse väga hea mõte. Kasutatud on palju nullable tüüpi muutujaid, mis on antud juhul õigustatud, andes andmete sisestamisel paindlikkust, samas lisades mõneti riskantsust.&lt;br /&gt;
&lt;br /&gt;
Interfaces - Kõikide repositooriumide jaoks on loodud ka interface´d. Samuti leidub seal UOW jaoks interface.&lt;br /&gt;
 &lt;br /&gt;
WebApi - Kokku on kasutusel 6 kontrollerit, milles on realiseeritud CRUD meetodid koos mõne spetsiifilisema meetodiga (näiteks GetFilteredForPeriod). Kontrollerid saavad oma sisu vastavatest service’itest. Identity rakendamiseks on kontrollerite meetoditel kasutatatud Authorize annotatsioone. Samuti on läbi mõeldud, et mõnda meetodit on autoriseeritud kasutama ainult “Admin”-kasutaja. Näiteks ainult  “Admin”, saab salvestada treenereid andmebaasi. Kontrollerites on kenasti kasutatud erinevaid Http-staatuskoode, mitte ainult Ok(), vaid ka Forbidden(), NotFound() jne. Samuti kasutatakse edukalt sõltuvuste süstimist (Dependency Injection). Kasutatud on OAuth bearer token authentication’it.&lt;br /&gt;
 &lt;br /&gt;
Lisaks peame oluliseks märkida, et kood on kirjutatud heas stiilis, kõikjal inglise keeles, ei esine keelte segunemist. Paljudes kohtades oli kood kommenteeritud, kuid see tundus olevat ise kaasa tulnud. Meeskonna enda kommentaare ei paistnud.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõtteks võib öelda, et tegemist on väga hästi kavandatud ja realiseeritud veebiteenusega ja meeskonnaliikmete panus on olnud märkimisväärne, eriti arvestades seda, et tegemist oli vaid kahe liikmega.&lt;br /&gt;
&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;SPOT&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Retsenseeritavaks tööks oli valitud tiimi SPOT veebiteenus, mis on seotud spordiklubide treeningute haldamisega. Esialgses andmebaasi skeemis oli plaanitud teha 16 tabelit, millest 4 on entitytega seotud. Projektis oli ära tehtud 12 domeeni mudeleid + entitytega seotud automaatselt. Mudelid tunduvad loogilised olla. On kasutatud propertid, mida andmebaasi ei salvestata, aga kalkuleeritakse jooksvalt. On kasutatud ka BaseEntity, milles on CreatedAt jne, ja kõik teised olemid pärinevad sellest, minu arust väga hea lahendus. Teenuse seadistatus, et tagastada jsoni igasuguste settingutega. API Routing pole muudetud, eriolukordade jaoks kasutatakse routingu atribuutides. Rakenduses on realiseeritud Seed meetod, mis väärtustab andmebaasi testandmetega. On näha, et testandmete täitmisel on kasutatud üks väline xml fail, faili töötlemises on kasutatud nii foreach tsükleid, kui ka LINQ avaldisi. Oleks hea kui paljudes kohtades null reference exceptioni vältimiseks teeks checki, aga muidu kui võtta arvesse, et see XML ei muutu kunagi, siis tehtud/pakutud variant ka sobib. Data access layer on ilusasti tehtud, iga olemi jaoks tehtud repositoorium, mis oma korda implementeerib interface’i. Repositooriumide päringul on ka realiseeritud singletoni muster. Järgmisel tasemel on tehtud UOW, kus on kasutusel nii Custom Repo küsimine, kui ka Standard. NLOg logimine on ka ilusasti implementeeritud. Üldiselt DAL projekti vaadates tekib tunne, et tiim on seda läbi töötanud ja ilusasti häid praktikaid kasutades tegi ära. Järgmine projekt on “BL”, kohe näha, et projekt on ilusasti struktureeritud, kasutatakse factoreid ja serviceid, mil omakorda implementeerivad interface. Data Transfer objektides ei ole miksimist domeen olemitega, mis on hästi, kuna selline olukord tekitaks “lazy loading”-uga, et kõik seosed ja andmed tuleksid andmebaasist, mida pole vaja. DTO-des ei ole kasutatud atribuute, mis sõltuvalt olukorrast võib olla halb, kuna puudub igasugune kontroll mida kasutaja saadab teenuse peale. Nagu ennem oli öeldud, et interfacid on kasutusel, aga objekti loomisel ei kasutata DI mootorit, vaid luuakse otse new keyword’iga. Andmebaasi salvestamine käib läbi UOW. Kõik DTO-d, serviced ja factoryd tunduvad läbimõeldud. Solution’is eksisteerib projekt nimega “ConsoleApp” tundub, et tiim kasutas seda oma veebiteenuse testimiseks. Järgmine projekt on DataAnnotations, milles olemas ainuke klass “Precision”, Internetis otsides ja koodi vaadates, sain teada, et seda kasutatakse decimal täpsuse kindlaks tegemiseks ja sellist valmis lahenduse .net-is pole. SPOT tiimi solution’is ma kahjuks ei leidnud mitte ühtegi kohta kus seda kasutatakse. Järgmine projekt on Identity, kus on kõik olemid identity’ga seotud ja vajalikud services. Järgmine projekt ‘’Interfaces’’, kus hoitakse peaaegu kõik interfacid. Ja viimane projekt on “WebApi”, mis hoiab endas veebiteenuste kontrollereid, vaateid, scripte ja teisi faile. Kontrollerist on näha, et tiim tegi ümber Entity Useri primaarse võtme stringist integeri. On kasutusel Authorize atribuudid, mis piiravad liigipääsu erinevatele kontrolleritele/meetoditele. Samuti veebiteenuses eksisteerivad erinevad rollid (Admin ja treener), neid ka kasutatakse Authorize atribuutides. Samuti kontrollerites on kasutusel GET, POST, PUT ja DELETE päringute päised. Kontrollerites on implementeeritud sünkroonne lähenemine (pole kusagil olemas async võtmesõna). Kui rääkida tööst üldiselt, siis kohe näha, et tiim tegi suure töö (see pole mahulises mõttes lõpetatud, aga kogu baas on olemas, jäänud ainult DTO-de tegemine ja nende käsitlemine). Ainukesed puudused, mida ma näen, on DTO-des atribuutide puudumine. Aga muidu tuli välja ilus, loogiliselt struktureeritud veebiteenus.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=JRT&amp;diff=123695</id>
		<title>JRT</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=JRT&amp;diff=123695"/>
		<updated>2017-06-15T05:55:31Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Veebiteenuse Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Meeskond =&lt;br /&gt;
&lt;br /&gt;
Riho Uusjärv &amp;lt;br&amp;gt;&lt;br /&gt;
Jevgeni Gavrilov &amp;lt;br&amp;gt;&lt;br /&gt;
Tiit Kuuskmäe&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Blog =&lt;br /&gt;
&lt;br /&gt;
19.03.2017 - Meeskonna loomine, teema välja mõtlemine, XML, XSD ja XSLT koostamine&amp;lt;br&amp;gt;&lt;br /&gt;
20.03.2017 - Teine XSLT koostamine ja valmis&amp;lt;br&amp;gt;&lt;br /&gt;
26.03.2017 - Retsenseerimine&amp;lt;br&amp;gt;&lt;br /&gt;
01.05.2017 - Analüüsi valmimine ja lisamine koos andmebaasi failiga&amp;lt;br&amp;gt;&lt;br /&gt;
11.06.2017 - Projekti faili lisamine&lt;br /&gt;
&lt;br /&gt;
= Tööd =&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
===Teema===&lt;br /&gt;
Spordisaalis on erinevad trennid, milles käivad erinevad isikud. XSLT jaoks siis teeme erinevad valitud filtreeringud&lt;br /&gt;
===Lae failid alla===&lt;br /&gt;
[http://enos.itcollege.ee/~jgavrilo/K1.rar Lae failid alla.]&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&amp;lt;pre&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;users&amp;gt;&lt;br /&gt;
  &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Balance&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;50.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Gym&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;79.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;89.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;BodyPump&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;Yoga&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;42.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;45.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;subscription name=&amp;quot;HotYoga&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;prices&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;gold&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;silver&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;52.99&amp;lt;/price&amp;gt;&lt;br /&gt;
        &amp;lt;price type=&amp;quot;standard&amp;quot; currency=&amp;quot;EUR&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/prices&amp;gt;&lt;br /&gt;
    &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;1&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Peeter]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Banaan]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[11.12.2000]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-08-26&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-01&amp;quot;&amp;gt;&amp;lt;![CDATA[Yoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55665566]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[peeter@gmail.ee]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[PeeterB]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;2&amp;quot; status=&amp;quot;silver&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Merlin]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Kuusk]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[11.07.1997]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[5123123]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;3&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Maarika]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Tamm]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[05.07.1999]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-08-11&amp;quot;&amp;gt;&amp;lt;![CDATA[Yoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-11-23&amp;quot;&amp;gt;&amp;lt;![CDATA[HotYoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[maarika@gmail.com]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;4&amp;quot; status=&amp;quot;gold&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Peeter]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Tamm]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[22.03.2000]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-05-13&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55588899]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;![CDATA[PeeterT@gmail.com]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;5&amp;quot; status=&amp;quot;silver&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Mihkel]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Koopov]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[15.06.1994]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55588877]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[MKoopov]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;6&amp;quot; status=&amp;quot;standard&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Georg]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Karu]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[03.03.1994]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[M]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-12-17&amp;quot;&amp;gt;&amp;lt;![CDATA[Balance]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-01&amp;quot;&amp;gt;&amp;lt;![CDATA[Gym]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user id=&amp;quot;7&amp;quot; status=&amp;quot;standard&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;firstName&amp;gt;&amp;lt;![CDATA[Liisa]]&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br /&gt;
    &amp;lt;lastName&amp;gt;&amp;lt;![CDATA[Leppmaa]]&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;born&amp;gt;&amp;lt;![CDATA[15.06.1991]]&amp;gt;&amp;lt;/born&amp;gt;&lt;br /&gt;
    &amp;lt;sex&amp;gt;&amp;lt;![CDATA[W]]&amp;gt;&amp;lt;/sex&amp;gt;&lt;br /&gt;
    &amp;lt;subscriptions&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-09-11&amp;quot;&amp;gt;&amp;lt;![CDATA[BodyPump]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;subscription expires=&amp;quot;2017-07-10&amp;quot;&amp;gt;&amp;lt;![CDATA[HotYoga]]&amp;gt;&amp;lt;/subscription&amp;gt;&lt;br /&gt;
    &amp;lt;/subscriptions&amp;gt;&lt;br /&gt;
    &amp;lt;contacts&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;![CDATA[55512377]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
      &amp;lt;contact type=&amp;quot;skype&amp;quot;&amp;gt;&amp;lt;![CDATA[LLee]]&amp;gt;&amp;lt;/contact&amp;gt;&lt;br /&gt;
    &amp;lt;/contacts&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
&amp;lt;/users&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;pre&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;users&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;subscriptions&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;subscription&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;prices&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;price&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:decimal&amp;quot;&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:attribute name=&amp;quot;type&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                                  &amp;lt;xs:attribute name=&amp;quot;currency&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: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;name&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:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;user&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;lastName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;subscriptions&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;subscription&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:string&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:attribute name=&amp;quot;expires&amp;quot; type=&amp;quot;xs:date&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: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;contacts&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;contact&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:string&amp;quot;&amp;gt;&lt;br /&gt;
                              &amp;lt;xs:attribute name=&amp;quot;type&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: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;born&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;xs:element name=&amp;quot;sex&amp;quot; type=&amp;quot;xs:string&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;status&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:schema&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT 1===&lt;br /&gt;
Kuvab inimeste nime, liikme staatuse, treeningud koos hindedega&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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;
  &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;title&amp;gt;&lt;br /&gt;
          Workout:&lt;br /&gt;
        &amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;People list with workout and price:&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;/users/user&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;Name: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;firstName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;lastName&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:text&amp;gt;Member status: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:variable name=&amp;quot;Status&amp;quot; select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;subscriptions/subscription != &#039;&#039;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:text&amp;gt;Workouts and prices: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;     &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:variable name=&amp;quot;SelectedSubscription&amp;quot; select=&amp;quot;translate(text(), &#039; &#039;, &#039;&#039;)&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:for-each select=&amp;quot;/users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:variable name=&amp;quot;Subscription&amp;quot; select=&amp;quot;@name&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:if test=&amp;quot;$Subscription= $SelectedSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:for-each select=&amp;quot;prices/price&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:if test=&amp;quot;$Status = @type&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;$Subscription&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:text&amp;gt;: &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;xsl:value-of select=&amp;quot;@currency&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                  &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;br&amp;gt;&amp;lt;/br&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Näidis====&lt;br /&gt;
[[File:3123131233.PNG]]&lt;br /&gt;
&lt;br /&gt;
===XSLT 2===&lt;br /&gt;
&amp;lt;pre&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;xml&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;main&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:for-each select=&amp;quot;users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;subscription&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;position()&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:attribute name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;@name&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:variable name=&amp;quot;currentSubscription&amp;quot; select=&amp;quot;@name&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;/users/user&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:variable name=&amp;quot;currentUser&amp;quot; select=&amp;quot;.&amp;quot;&amp;gt;&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select=&amp;quot;subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:variable name=&amp;quot;sub&amp;quot; select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:if test=&amp;quot;$sub = $currentSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
                    &amp;lt;user&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;$currentUser/@id&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;$currentUser/firstName&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;$currentUser/lastName&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/user&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:variable name=&amp;quot;status&amp;quot; select=&amp;quot;$currentUser/@status&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:for-each select=&amp;quot;/users/subscriptions/subscription&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:variable name=&amp;quot;subscr&amp;quot; select=&amp;quot;.&amp;quot;&amp;gt;&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:for-each select=&amp;quot;$subscr/prices/price&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;$subscr/@name = $currentSubscription&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:variable name=&amp;quot;curObj&amp;quot; select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:if test=&amp;quot;$curObj/@type = $status&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;price&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:attribute name=&amp;quot;currency&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:value-of select=&amp;quot;$curObj/@currency&amp;quot;/&amp;gt;&lt;br /&gt;
                              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
                                &amp;lt;xsl:value-of select=&amp;quot;$curObj/@type&amp;quot;/&amp;gt;&lt;br /&gt;
                              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                              &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
                            &amp;lt;/price&amp;gt;&lt;br /&gt;
                          &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                    &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                  &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
        &amp;lt;/subscription&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
    &amp;lt;/main&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;/pre&amp;gt;&lt;br /&gt;
====Näidis====&lt;br /&gt;
&amp;lt;pre&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;main&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;1&amp;quot; name=&amp;quot;Balance&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;2&amp;quot;&amp;gt;Merlin Kuusk&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;silver&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;6&amp;quot;&amp;gt;Georg Karu&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;50.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;2&amp;quot; name=&amp;quot;Gym&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;4&amp;quot;&amp;gt;Peeter Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;69.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;6&amp;quot;&amp;gt;Georg Karu&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;89.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;3&amp;quot; name=&amp;quot;BodyPump&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;2&amp;quot;&amp;gt;Merlin Kuusk&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;silver&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;4&amp;quot;&amp;gt;Peeter Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;44.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;7&amp;quot;&amp;gt;Liisa Leppmaa&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;4&amp;quot; name=&amp;quot;Yoga&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;1&amp;quot;&amp;gt;Peeter Banaan&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;3&amp;quot;&amp;gt;Maarika Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;39.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
  &amp;lt;subscription id=&amp;quot;5&amp;quot; name=&amp;quot;HotYoga&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;usersWithPrices&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;3&amp;quot;&amp;gt;Maarika Tamm&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;gold&amp;quot;&amp;gt;49.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
      &amp;lt;userWithPrice&amp;gt;&lt;br /&gt;
        &amp;lt;user id=&amp;quot;7&amp;quot;&amp;gt;Liisa Leppmaa&amp;lt;/user&amp;gt;&lt;br /&gt;
        &amp;lt;price currency=&amp;quot;EUR&amp;quot; type=&amp;quot;standard&amp;quot;&amp;gt;55.99&amp;lt;/price&amp;gt;&lt;br /&gt;
      &amp;lt;/userWithPrice&amp;gt;&lt;br /&gt;
    &amp;lt;/usersWithPrices&amp;gt;&lt;br /&gt;
  &amp;lt;/subscription&amp;gt;&lt;br /&gt;
&amp;lt;/main&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Jõusaali infosüsteemi analüüs==&lt;br /&gt;
&lt;br /&gt;
===Lühikirjeldus===&lt;br /&gt;
JRT on jõusaali kasutamise rakendus, mis on peamiselt mõeldud jõusaali külastajale, kes näevad erinevaid treeningkavasid ning harjutusi ja saavad üles märkida oma saavutusi. &lt;br /&gt;
&lt;br /&gt;
===Must have===&lt;br /&gt;
Kasutusgruppide alla kuuluvad rakenduse tavakasutajad, administraatorid ja treenerid. Lõppkasutajal on võimalik luua oma konto, kuhu ta sisestab regulaarselt oma kehamõõtusid. Tavakasutaja saab valida omale füüsilise aktiivsuse kestuse, treeningu tüübi ning harjutused, millest see koosneb. Tavakasutajad näevad treenerite kontaktandmeid, et nendega ühendust võtta, saamaks treeningkavasse soovitusi või lasta treeneritel teha neile päris enda treeningkava.&lt;br /&gt;
&lt;br /&gt;
===Nice to have===&lt;br /&gt;
Administraatoril on võimalik tutvuda statistikaga selle kohta, milliseid harjutusi kõige rohkem tehakse, millistele lihasegruppidele ning millistel aegadel on üht- või teistsugused harjutused populaarsemad. On loodud treenerite ja administraatorite kasutajaliides. Tavakasutajal on võimalik enda treeningute andmete põhjal tekitada igasuguseid graafikuid ja nende analüüsi. Tavakasutajal on võimalik saata teateid treeneritele ja teistele rakenduse tavakasutajatele. Treenerite kasutajaliidesest saab ülevaate selle kohta, millised tavakasutajad on tema õpilased, kuidas neil treeningutega läheb (statistika, teated) ning milline on tema enda eelseisev töögraafik. Administraatoril on võimalik saata kasutajatele teateid (näiteks, et klubi on suletud või et alanud on kampaaniaperiood).&lt;br /&gt;
&lt;br /&gt;
===Administraatori liides===&lt;br /&gt;
Administraatoril on võimalus hallata kõiki andmeid (näiteks lisada ja kustutada: kasutajaid, harjutusi, treenigukavasid jne).&lt;br /&gt;
&lt;br /&gt;
===Kasutajaliides===&lt;br /&gt;
Tavakasutaja liideses on võimalik sisestada oma keha kohta viimaseid andmeid, panna kirja infot viimase treeningu kohta ning lisada omale kontaktandmeid. Valida treeningukavasid ja paigutada need soovitud päevadele.&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi kirjeldus===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AB_GYM4.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Projekti fail===&lt;br /&gt;
&lt;br /&gt;
Projekt tehtud siis kahe liikme poolt: Riho Uusjärv ja Jevgeni Gavrilov ja projekti fail asub aadressil: https://drive.google.com/open?id=0B3nb9qMzOVSuQ1NOdk02bmhUT3c&lt;br /&gt;
&lt;br /&gt;
=Retsensioonid=&lt;br /&gt;
== XML Retsensioonid ==&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;PC KartKicker&amp;quot; ===&lt;br /&gt;
Meeskonna &amp;quot;PC KartKicker&amp;quot; XML failide sisu leiab [https://wiki.itcollege.ee/index.php/PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;XML&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
XML fail valideerimisel ei olnud ühtegi viga. On olemas nõutud 4 loogilist dimensiooni ning atribuute on ka piisavalt ning need on sammuti piisavalt spetsiifilised ehk kõik õppejõu märgitud kriteeriumid on täidetud. XML jaotus on korrektne ja kergesti arusaadav. CDATA oleks võinud kastusel olla. &lt;br /&gt;
 &lt;br /&gt;
*&#039;&#039;&#039;Skeemifail (XSD)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
XML ei vasta XSD kirjelduses nõutud väljade parameetrile ehk storages-&amp;gt; storage -&amp;gt; type on XSD-s puudu.&lt;br /&gt;
Enda eelistused:&lt;br /&gt;
*maxGpuLength string -&amp;gt; integer&lt;br /&gt;
*maxCpuHeight string -&amp;gt; integer&lt;br /&gt;
*cooler string -&amp;gt; boolean&lt;br /&gt;
*ECC string -&amp;gt; boolean&lt;br /&gt;
*speed string -&amp;gt; decimal&lt;br /&gt;
*liquid string -&amp;gt; boolean&lt;br /&gt;
*usb3 string -&amp;gt; boolean&lt;br /&gt;
&lt;br /&gt;
Mitmed errorid:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;102&#039;, Column &#039;140&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;103&#039;, Column &#039;142&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-datatype-valid.1.2.1: &#039;&#039; Is Not A Valid Value For &#039;integer&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-attribute.3: The Value &#039;&#039; Of Attribute &#039;rpm&#039; On Element &#039;storage&#039; Is Not Valid With Respect To Its Type, &#039;integer&#039;., Line &#039;104&#039;, Column &#039;143&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;105&#039;, Column &#039;153&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;106&#039;, Column &#039;154&#039;.&lt;br /&gt;
Cvc-complex-type.3.2.2: Attribute &#039;type&#039; Is Not Allowed To Appear In Element &#039;storage&#039;., Line &#039;107&#039;, Column &#039;148&#039;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Transformatsioonid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vead:&amp;lt;br&amp;gt;&lt;br /&gt;
*Tegemist on mõlemal juhul vaid ühe for-each tsükliga&lt;br /&gt;
*Pole kasutatud tingimusi&lt;br /&gt;
*Pole tehtud eraldi HTML ja XML&lt;br /&gt;
 &lt;br /&gt;
Mõlemad XSLT-d ei vasta väljatoodud nõuetele&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kokkuvõtte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lohakas töö, tundub et üks liige on selle kiirelt ära teinud, et õigeks ajaks valmis saada ja teised ei vaevunud vaatamagi. Validaatoriga oleks võinud vähemalt üle lasta ja pisi vead likvideerida aga sedagi pole tehtud. Oleks soovitanud vähem vaeva näha kirju XML-iga ja seda aega kulutada korrektse XSD ja XSLT-d tegemiseks.&lt;br /&gt;
&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;Ninjas in pyjamas&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;XML&#039;&#039;&#039;&lt;br /&gt;
XML fail valideerub. Hea on see, et on kasutatud CDATA formaati. Siiski pole täidetud kõiki õppejõu poolt ettenähtud nõudeid: atribuute on (mis ei ole lihtsalt id) lisatud kahele dimensioonile (&#039;ticket&#039; ja &#039;user&#039;), kuid peaks olema lisatud kolmele dimensioonile. Lisaks pole väga hästi arusaadav (lugedes ideekirjeldust), miks osa kasutaja andmeid (e-kiri, roll) on määratud atribuudina, teised (kasutajanimi) jällegi elemendina.Atribuut role antud kontekstis ei oma mingid konkreetset väärtust (rollidel on id, aga kus on nende nimekiri?). Teine küsimus miks priority Id on 1 täht, on selles mingi vajadus? Lihtam kasutada int. CDATA pole kasutusel kõikidel väljadel, mis võib olla ohtlik. Kuigi seda tõenäoliselt hetkel ei pea hindama, siis meeskonnale võib olla kasulik teada, et juhul kui süsteem peab võrdlema päringu saabumise aega sellele vastamise ajaga, siis XML-is ei ole kellaaega, vaid on kuupäev. Ühtlasi puudub XML-is info selle kohta, kas päring on lahendatud või mitte.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Skeemifail (XSD)&#039;&#039;&#039;&lt;br /&gt;
XSD puhul annab validaator järgmised veateated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Not valid.&lt;br /&gt;
Error - Line 15, 90: org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 90; s4s-elt-must-match.1: The content of &#039;priority&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
Error - Line 22, 93: org.xml.sax.SAXParseException; lineNumber: 22; columnNumber: 93; s4s-elt-must-match.1: The content of &#039;user&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
Error - Line 35, 84: org.xml.sax.SAXParseException; lineNumber: 35; columnNumber: 84; s4s-elt-must-match.1: The content of &#039;attachment&#039; must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: attribute.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Veateadetest kõige ilmsem näib olevat element &amp;quot;priority&amp;quot;, mis võiks olla mitte &amp;quot;string&amp;quot;, vaid &amp;quot;int&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Transformatsioonid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Esimene XSLT valideerub (XSLT =&amp;gt; HTML). Paraku on seal sisuliselt ainult üks for-each klausel (asi, mille eest õppejõud hoiatab). Siinkohal jääb natuke segaseks varasemas XSL-is sisse toodud &amp;quot;title&amp;quot; element. Mida selle all mõeldakse? Kas iga päring saab pealkirja, mis on erinev probleemi kirjeldusest ja kasutaja andmetest?&lt;br /&gt;
&lt;br /&gt;
Teine XSLT (XSLT =&amp;gt; XML) ei valideeru. Veateade on järgmine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Not valid.&lt;br /&gt;
FatalError: javax.xml.transform.TransformerException: A location step was expected following the &#039;/&#039; or &#039;//&#039; token.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sisulise poole pealt on tehtud üks &amp;quot;for-each&amp;quot; ja üks &amp;quot;sort&amp;quot;, ülejäänud on &amp;quot;value-of&amp;quot;-id. Muidu kõik kena, kuid natuke lühike ehk?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kokkuvõtte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tööd on küll esitatud ja vaeva nähtud, kuid kõik lahenduste aspektid ei vasta siiski õppejõu poolt ettenähtud nõuetele. Lisaks on probleeme osade koodide valideerumisega (XSD ja üks XSLT). Need asjad tasuks rakenduse edasist arendamist silmas pidades üle vaadata.&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
=== Meeskond CoverMe retsensioon meeskonnale SPOT ===&lt;br /&gt;
&lt;br /&gt;
Meeskonna eesmärk oli luua veebiteenus, mis võimaldab saada infot pakutavate treeningute kohta, sisestada ja kuvada tunniplaani andmeid, registreerida osalejaid tundidesse ning end sealt eemaldada. Samuti oli ette nähtud, et administraatorid saavad lisada, muuta ja kustutada kõike sprodiklubiga seonduvat ning treenerid ja spordiklubi esindajad saavad toimetada treeningutega seotud andmete sisestamise ja muutmisega. Andmebaasimudel on tehtud väga põhjalikult ning tabelite kirjeldused on samuti välja toodud.&lt;br /&gt;
 &lt;br /&gt;
Meie hinnangul on eesmärk põhiosas täidetud, realiseeritud on enamus kavandatud must-have funktsionaalsusest (välja on jäänud logimine). Loodud on veebiteenus, mis kasutab REST arhitektuuri ja ASP.NET MVC Web Api tehnoloogiat. &lt;br /&gt;
 &lt;br /&gt;
Veebiteenuse struktuur on üles ehitatud kihiliselt, mis võimaldab vajadusel süsteemi osasid lihtsamini muuta,  täiendada ja vajadusel välja vahetada. Kihid on jaotatud järgmiselt:&lt;br /&gt;
BL - sisaldab DTO-sid ja nende koostamiseks vajalikke Factoreid. Samuti on siin Service klassid, milles on kirjas kõik päringud andmebaasist (Get mitmesugustes variantides, Add, Edit, Delete). Lisaks tavalistele CRUD meetoditele on tehtud ka spetsiifilisemad päringud , näiteks GetByIdForUser jne. Päringuid tehakse uow-de kaudu. Service’tele ja Factory’tele on loodud Interface’d.&lt;br /&gt;
DAL - kasutatakse EFRepositoryFactory ja EFRepositoryProvidery põhimõtteid. DbInitializeris antakse ette lähteandmete seed’imine. Repositooriumid on omaette kaustas, kuhu on lisaks EFRepository-st päritud meetoditele juurde kirjutatud palju erinevaid meetodeid funktsionaalsuse täiendamiseks.&lt;br /&gt;
Domain - andmebaasi mudelis  on kokku 12  olemit, mis on nõuetele vastav. Üldine andmebaasimudeli ülesehitus on loogiline ning listid on algselt väärtustatud, mis tagab selle, et ei pea NullReference Exceptione kontrollima. Vajalikesse kohtadesse on annotatsioonid juurde lisatud ja nendega ei ole üle pingutatud, et süsteemi liiga kirjuks ajada. Tõstame esile asjaolu, et kasutatud on  Base Entity’t, millest kõik ülejäänud olemid pärinevad. See ühtlustab rakenduse koodi ja on üldse väga hea mõte. Kasutatud on palju nullable tüüpi muutujaid, mis on antud juhul õigustatud, andes andmete sisestamisel paindlikkust, samas lisades mõneti riskantsust.&lt;br /&gt;
Interfaces - Kõikide repositooriumide jaoks on loodud ka interface´d. Samuti leidub seal UOW jaoks interface. &lt;br /&gt;
WebApi - Kokku on kasutusel 6 kontrollerit, milles on realiseeritud CRUD meetodid koos mõne spetsiifilisema meetodiga (näiteks GetFilteredForPeriod). Kontrollerid saavad oma sisu vastavatest service’itest. Identity rakendamiseks on kontrollerite meetoditel kasutatatud Authorize annotatsioone. Samuti on läbi mõeldud, et mõnda meetodit on autoriseeritud kasutama ainult “Admin”-kasutaja. Näiteks ainult  “Admin”, saab salvestada treenereid andmebaasi. Kontrollerites on kenasti kasutatud erinevaid Http-staatuskoode, mitte ainult Ok(), vaid ka Forbidden(), NotFound() jne. Samuti kasutatakse edukalt sõltuvuste süstimist (Dependency Injection). Kasutatud on OAuth bearer token authentication’it.&lt;br /&gt;
 &lt;br /&gt;
Lisaks peame oluliseks märkida, et kood on kirjutatud heas stiilis, kõikjal inglise keeles, ei esine keelte segunemist. Paljudes kohtades oli kood kommenteeritud, kuid see tundus olevat ise kaasa tulnud. Meeskonna enda kommentaare ei paistnud.&lt;br /&gt;
 &lt;br /&gt;
Kokkuvõtteks võib öelda, et tegemist on väga hästi kavandatud ja realiseeritud veebiteenusega ja meeskonnaliikmete panus on olnud märkimisväärne, eriti arvestades seda, et tegemist oli vaid kahe liikmega.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== Retsensioon meeskonnale &amp;quot;SPOT&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Retsenseeritavaks tööks oli valitud tiimi SPOT veebiteenus, mis on seotud spordiklubide treeningute haldamisega. Esialgses andmebaasi skeemis oli plaanitud teha 16 tabelit, millest 4 on entitytega seotud. Projektis oli ära tehtud 12 domeeni mudeleid + entitytega seotud automaatselt. Mudelid tunduvad loogilised olla. On kasutatud propertid, mida andmebaasi ei salvestata, aga kalkuleeritakse jooksvalt. On kasutatud ka BaseEntity, milles on CreatedAt jne, ja kõik teised olemid pärinevad sellest, minu arust väga hea lahendus. Teenuse seadistatus, et tagastada jsoni igasuguste settingutega. API Routing pole muudetud, eriolukordade jaoks kasutatakse routingu atribuutides. Rakenduses on realiseeritud Seed meetod, mis väärtustab andmebaasi testandmetega. On näha, et testandmete täitmisel on kasutatud üks väline xml fail, faili töötlemises on kasutatud nii foreach tsükleid, kui ka LINQ avaldisi. Oleks hea kui paljudes kohtades null reference exceptioni vältimiseks teeks checki, aga muidu kui võtta arvesse, et see XML ei muutu kunagi, siis tehtud/pakutud variant ka sobib. Data access layer on ilusasti tehtud, iga olemi jaoks tehtud repositoorium, mis oma korda implementeerib interface’i. Repositooriumide päringul on ka realiseeritud singletoni muster. Järgmisel tasemel on tehtud UOW, kus on kasutusel nii Custom Repo küsimine, kui ka Standard. NLOg logimine on ka ilusasti implementeeritud. Üldiselt DAL projekti vaadates tekib tunne, et tiim on seda läbi töötanud ja ilusasti häid praktikaid kasutades tegi ära. Järgmine projekt on “BL”, kohe näha, et projekt on ilusasti struktureeritud, kasutatakse factoreid ja serviceid, mil omakorda implementeerivad interface. Data Transfer objektides ei ole miksimist domeen olemitega, mis on hästi, kuna selline olukord tekitaks “lazy loading”-uga, et kõik seosed ja andmed tuleksid andmebaasist, mida pole vaja. DTO-des ei ole kasutatud atribuute, mis sõltuvalt olukorrast võib olla halb, kuna puudub igasugune kontroll mida kasutaja saadab teenuse peale. Nagu ennem oli öeldud, et interfacid on kasutusel, aga objekti loomisel ei kasutata DI mootorit, vaid luuakse otse new keyword’iga. Andmebaasi salvestamine käib läbi UOW. Kõik DTO-d, serviced ja factoryd tunduvad läbimõeldud. Solution’is eksisteerib projekt nimega “ConsoleApp” tundub, et tiim kasutas seda oma veebiteenuse testimiseks. Järgmine projekt on DataAnnotations, milles olemas ainuke klass “Precision”, Internetis otsides ja koodi vaadates, sain teada, et seda kasutatakse decimal täpsuse kindlaks tegemiseks ja sellist valmis lahenduse .net-is pole. SPOT tiimi solution’is ma kahjuks ei leidnud mitte ühtegi kohta kus seda kasutatakse. Järgmine projekt on Identity, kus on kõik olemid identity’ga seotud ja vajalikud services. Järgmine projekt ‘’Interfaces’’, kus hoitakse peaaegu kõik interfacid. Ja viimane projekt on “WebApi”, mis hoiab endas veebiteenuste kontrollereid, vaateid, scripte ja teisi faile. Kontrollerist on näha, et tiim tegi ümber Entity Useri primaarse võtme stringist integeri. On kasutusel Authorize atribuudid, mis piiravad liigipääsu erinevatele kontrolleritele/meetoditele. Samuti veebiteenuses eksisteerivad erinevad rollid (Admin ja treener), neid ka kasutatakse Authorize atribuutides. Samuti kontrollerites on kasutusel GET, POST, PUT ja DELETE päringute päised. Kontrollerites on implementeeritud sünkroonne lähenemine (pole kusagil olemas async võtmesõna). Kui rääkida tööst üldiselt, siis kohe näha, et tiim tegi suure töö (see pole mahulises mõttes lõpetatud, aga kogu baas on olemas, jäänud ainult DTO-de tegemine ja nende käsitlemine). Ainukesed puudused, mida ma näen, on DTO-des atribuutide puudumine. Aga muidu tuli välja ilus, loogiliselt struktureeritud veebiteenus.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123516</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123516"/>
		<updated>2017-06-12T14:36:55Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Lähtekood */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
&lt;br /&gt;
[[File:coverme.JPG|border|CoverME]]&lt;br /&gt;
&lt;br /&gt;
===Lähtekood===&lt;br /&gt;
Lähtekood on allalaetav [https://www.dropbox.com/s/n73pgvlpgxsyako/Sten%20Kaasik%20-%20CoverMe.zip?dl=0 siit].&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 31.04.17 Arutelu veebiteenuse ülesühituse osas, veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;br /&gt;
* 14.05.17 Klassid, repod, interface, entity framework - vaatame üle tehtud töö ja jagame järgmised ülesanded&lt;br /&gt;
* 19.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 24.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 25.05.17 Ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 28.05.17 Kontrollerid, nende õiged get-id, post-id koos oma tavaliste (Ok) ja eriliste tagastustega&lt;br /&gt;
* 30.05.17 Kas servicid või uow-d, klientrakenduse alustamine&lt;br /&gt;
* 31.05.17 Päringud, mida antud teenuses peab saama teha&lt;br /&gt;
* 04.06.17 Security, identity, klientrakendus&lt;br /&gt;
* 05.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 06.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 07.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 08.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 09.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123515</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123515"/>
		<updated>2017-06-12T14:35:34Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Lähtekood */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
&lt;br /&gt;
[[File:coverme.JPG|border|CoverME]]&lt;br /&gt;
&lt;br /&gt;
===Lähtekood===&lt;br /&gt;
Lähtekood on allalaetav [https://www.dropbox.com/home/IT%20Kolled%C5%BE?preview=Sten+Kaasik+-+CoverMe.zip siit].&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 31.04.17 Arutelu veebiteenuse ülesühituse osas, veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;br /&gt;
* 14.05.17 Klassid, repod, interface, entity framework - vaatame üle tehtud töö ja jagame järgmised ülesanded&lt;br /&gt;
* 19.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 24.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 25.05.17 Ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 28.05.17 Kontrollerid, nende õiged get-id, post-id koos oma tavaliste (Ok) ja eriliste tagastustega&lt;br /&gt;
* 30.05.17 Kas servicid või uow-d, klientrakenduse alustamine&lt;br /&gt;
* 31.05.17 Päringud, mida antud teenuses peab saama teha&lt;br /&gt;
* 04.06.17 Security, identity, klientrakendus&lt;br /&gt;
* 05.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 06.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 07.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 08.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 09.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123514</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123514"/>
		<updated>2017-06-12T13:57:43Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
&lt;br /&gt;
[[File:coverme.JPG|border|CoverME]]&lt;br /&gt;
&lt;br /&gt;
===Lähtekood===&lt;br /&gt;
Lähtekood on allalaetav [https://www.dropbox.com/sh/3w96n3r6hhd9dyg/AADy8Lmn-cJK5nQN1vD65qpua?dl=0 siit].&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 31.04.17 Arutelu veebiteenuse ülesühituse osas, veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;br /&gt;
* 14.05.17 Klassid, repod, interface, entity framework - vaatame üle tehtud töö ja jagame järgmised ülesanded&lt;br /&gt;
* 19.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 24.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 25.05.17 Ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 28.05.17 Kontrollerid, nende õiged get-id, post-id koos oma tavaliste (Ok) ja eriliste tagastustega&lt;br /&gt;
* 30.05.17 Kas servicid või uow-d, klientrakenduse alustamine&lt;br /&gt;
* 31.05.17 Päringud, mida antud teenuses peab saama teha&lt;br /&gt;
* 04.06.17 Security, identity, klientrakendus&lt;br /&gt;
* 05.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 06.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 07.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 08.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 09.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123351</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123351"/>
		<updated>2017-06-09T17:02:53Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Logi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
&lt;br /&gt;
[[File:coverme.JPG|border|CoverME]]&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 31.04.17 Arutelu veebiteenuse ülesühituse osas, veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;br /&gt;
* 14.05.17 Klassid, repod, interface, entity framework - vaatame üle tehtud töö ja jagame järgmised ülesanded&lt;br /&gt;
* 19.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 24.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 25.05.17 Ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 28.05.17 Kontrollerid, nende õiged get-id, post-id koos oma tavaliste (Ok) ja eriliste tagastustega&lt;br /&gt;
* 30.05.17 Kas servicid või uow-d, klientrakenduse alustamine&lt;br /&gt;
* 31.05.17 Päringud, mida antud teenuses peab saama teha&lt;br /&gt;
* 04.06.17 Security, identity, klientrakendus&lt;br /&gt;
* 05.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 06.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 07.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 08.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 09.06.17 Tekkinud küsimuste arutelu, ühekordsete ülesannete ühine lahendamine&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123021</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123021"/>
		<updated>2017-05-28T18:32:15Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Logi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
&lt;br /&gt;
[[File:coverme.JPG|border|CoverME]]&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 31.04.17 Arutelu veebiteenuse ülesühituse osas, veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;br /&gt;
* 14.05.17 Klassid, repod, interface, entity framework - vaatame üle tehtud töö ja jagame järgmised ülesanded&lt;br /&gt;
* 19.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 24.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 25.05.17 Ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 28.05.17&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123020</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=123020"/>
		<updated>2017-05-28T18:30:27Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Logi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
&lt;br /&gt;
[[File:coverme.JPG|border|CoverME]]&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 17.04.17 Esialgne veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 31.04.17 Arutelu veebiteenuse ülesühituse osas.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;br /&gt;
* 14.05.17 Klassid, repod, interface, entity framework - vaatame üle tehtud töö ja jagame järgmised ülesanded&lt;br /&gt;
* 19.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 24.05.17 Kohtumine teemal seedimine, dependencyd, uow-d ja factory-d, ülesannete jagamine&lt;br /&gt;
* 25.05.17 Ühekordsete ülesannete ühine lahendamine&lt;br /&gt;
* 28.05.17&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=122923</id>
		<title>I027 iseseisvad tööd</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=122923"/>
		<updated>2017-05-25T17:55:06Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käesolev artikkel on loodud aine &amp;quot;[[Sissejuhatus infotehnoloogiasse ja riistvarasse]] (ainekoodiga I027)&amp;quot; iseseisvate tööde haldamiseks.&lt;br /&gt;
Aines on vaja teha 3 praktilist tööd ja seminaritöö, mis on kõik kirjeldatud &amp;quot;Praktikumid&amp;quot; pealkirja all viidatud dokumendis.&lt;br /&gt;
&lt;br /&gt;
Palun siia dokumenti panna kirja valitud praktikumi nimetus. Ülikooli kasutajaga saavad tudengid ka vikit muuta. Muudatused salvestuvad ka ajaloos.&lt;br /&gt;
&lt;br /&gt;
See üllas eesmärk on, et võimalikult erinevaid praktikumid ja probleemilahendus saaks valitud.&lt;br /&gt;
Siit dokumendist te näete, mida keegi parasjagu tegemas on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Igor Budnitski, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Närep, DK11 - SSH vestlus&lt;br /&gt;
* Ingvar Lukas, 14 - Info riistvara kohta&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Rommot, 13 - Linuxile teine töölaud&lt;br /&gt;
* Nele Naris, IA18 - Info riistvara kohta&lt;br /&gt;
* Katrin Lasberg, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrek Laanemets, 11 - Info riistvara kohta&lt;br /&gt;
* Peeter Fridolin, 13 - SSH Windows + Linux&lt;br /&gt;
* Kristo Tero, IA18 - LAMP paigaldus&lt;br /&gt;
* Siim Kustassoo, IA18 - Info riistavara kohta&lt;br /&gt;
* Rain Adamson, 41 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Rein Remsu, IA17 - SSH Windows + Linux&lt;br /&gt;
* Piret Spitsõn, DK11 - Info riistvara kohta&lt;br /&gt;
* Tanel Vari, DK13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mihkel-Erik Mägi - Linuxile teine töölaud&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Info riistvara kohta&lt;br /&gt;
* Sander Ratassepp, 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Info riistvara kohta&lt;br /&gt;
* Triin Palm, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Maie Palmeos, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Dmitri Lukaš, DK11 - Info ristvara kohta&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Info riistvara kohta&lt;br /&gt;
* Leonid Grigorjevski,  IA18 - Info riistvara kohta&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Iakov Kanyuchka, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Roosioks, D22 - Info riistvara kohta&lt;br /&gt;
* Rauno Lõhmus, 13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maile Mäesalu, DK14 - Info riistvara kohta&lt;br /&gt;
* Alan Alliksoo, DK11 - Info riistvara kohta&lt;br /&gt;
* Reilika Saks, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Andres Tambek, DK12 - Info riistvara kohta&lt;br /&gt;
* Hardi Tiitus, DK12 - Info riistvara kohta&lt;br /&gt;
* Jan Pentšuk, DK12 - Info riistvara kohta&lt;br /&gt;
* Pille Ulmas, DK13 - Info riistvara kohta&lt;br /&gt;
* Peeter Stamberg, DK 11 - Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kreet Solnask, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristo Leesmann, 13 - LAMP paigaldus&lt;br /&gt;
* Kristjan Leotoots, DK12 - SSH Windows + Linux&lt;br /&gt;
* Erki Aas, 12 - LAMP paigaldus&lt;br /&gt;
* Liis Talimaa, DK12, Info riistvara kohta&lt;br /&gt;
* Irina Geidarova, IA18 Linuxi tööjaama paigaldus&lt;br /&gt;
* Ruudi Vinter, DK12 - Info riistvara kohta&lt;br /&gt;
* Anton Kuksov, 12 - LAMP paigaldus&lt;br /&gt;
* Eduard Kõre, AK11 - Info riistvara kohta&lt;br /&gt;
* Marie Udam, DK14 - Info riistvara kohta&lt;br /&gt;
* Erik Ehrbach, DK14 - LAMP paigaldus&lt;br /&gt;
* Jüri Ahhundov, DK11 - Info riistvara kohta&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Info riistvara kohta&lt;br /&gt;
* Kaisa Lindström, 15 - Info riistvara kohta&lt;br /&gt;
* Marko Esna, AK11 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Jana Kindlam, DK12 – info riistvara kohta&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - info riistvara kohta&lt;br /&gt;
* Kadi Koppelmann, DK14 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Võrklaev, AK11 - Info riistvara kohta&lt;br /&gt;
* Rudolf Purge, AK11 - Info riistvara kohta&lt;br /&gt;
* Ilmar Ermus, IA17 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Leho Kivistik, 14 - Info riistvara kohta&lt;br /&gt;
* Hannes Mäeorg, 14 - Info riistvara kohta&lt;br /&gt;
* Alexander Teder, 12 - Info riistvara kohta&lt;br /&gt;
* Jüri Vinnal, IA18 - Info riistvara kohta&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - Info riistvara kohta&lt;br /&gt;
* Radne Kaal, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Pärtel, 14 - Lapikute serverite töökorrastamine: Riistvara, Arch ja SSH.&lt;br /&gt;
* Kuldar Teinmann, AK11 - LAMP paigaldus&lt;br /&gt;
* Pavel Fleišer, 14 - LAMP paigaldus&lt;br /&gt;
* Katrin Kello, 14 - Info riistvara kohta&lt;br /&gt;
* Madis Liik, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - LAMP paigaldus&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Filip Fjodorov, AK11 - Info riistvara kohta&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - info riistvara kohta&lt;br /&gt;
* Ruti Kerro, IA17 - LAMP paigaldus&lt;br /&gt;
* Artur Kapranov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Annika Kask, 11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Anton Meženin, DK14 - Info riistvara kohta&lt;br /&gt;
* Martti-Heiki Must, IA17 - Info riistvara kohta&lt;br /&gt;
* Marten Tammeleht, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Indro Kottise, 15 - Info riistvara kohta&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Info riistvara kohta&lt;br /&gt;
* Merike Meizner, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Info riistvara kohta&lt;br /&gt;
* Henri Annilo, DK13 - SSH Windows + Linux&lt;br /&gt;
* Laura Lenbaum, IA18 - Info riistvara kohta&lt;br /&gt;
* Donna Nurmbek, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Kurel, 12 - Info riistvara kohta&lt;br /&gt;
* Joonas Rihma, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Helen Oppar, DK12 - Info riistvara kohta&lt;br /&gt;
* Tanel Peep, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Brit Valdek, DK14 - Info riistvara kohta&lt;br /&gt;
* Oliver Nurk, 11 - Info riistvara kohta&lt;br /&gt;
* Erik Kaup, 13 - Info riistvara kohta&lt;br /&gt;
* Rait Rand, 11 - Info riistvara kohtan&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Meelis Mikk, 11 - Info riistvara kohta&lt;br /&gt;
* Karoliina Vasli - LAMP paigaldus&lt;br /&gt;
* Aare Taveter - IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Sirkas, 15 - Info riistvara kohta&lt;br /&gt;
* Mihkel Tääkre, 15 - Info riistvara kohta&lt;br /&gt;
* Annely Vattis AK11- Info riistvara kohta&lt;br /&gt;
* Valdo Taevere, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Anni- Bessie Kitt, DK14 - Info riistvara kohta&lt;br /&gt;
* Reio Meiusi, 15 - Info riistvara kohta&lt;br /&gt;
* Marju Niinemaa IA17 - Info riistvara kohta&lt;br /&gt;
* Tarmo Luugus, 14 - Info riistvara kohta&lt;br /&gt;
* Martin Laadoga, 14 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Rasmus Tammets, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Sirli Mürk, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rene Väli, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrei Pugatšov, DK14 - Info riistvara kohta&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anna Levijeva, 12 - LAMP paigaldus&lt;br /&gt;
* Maarja-Liisa Pilvik, DK14 - Info riistvara kohta&lt;br /&gt;
* Henrik Prangel, 12 - Info riistvara kohta&lt;br /&gt;
* Vjatsheslav Aprelkov, DK11 - Info riistvara kohta&lt;br /&gt;
* Sergei Kaganski, DK14 - Info riistvara kohta&lt;br /&gt;
* Andrei Tomba, DK14 - info riistvara kohta&lt;br /&gt;
* Siim Oselein, ISa11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Lisette Noor, D23 - Info riistvara kohta&lt;br /&gt;
* Kirstin Saluveer, DK13 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Lauri Üksti, DK14 - info riistvara kohta&lt;br /&gt;
* Arnika Rästa, ISd14 - info riistvara kohta&lt;br /&gt;
* Alo Avi, ISd14 - LAMP paigaldus&lt;br /&gt;
* Gert Vesterberg, DK11 - LAMP paigaldus&lt;br /&gt;
* Anna Amelkina, AK11 - Info riistvara kohta&lt;br /&gt;
* Egert Loss, DK14, Linux serveri paigaldus&lt;br /&gt;
* Ahto Ahven, 15, Info riistvara kohta&lt;br /&gt;
* Villem Markus Loigom, 11, SSH vestlus&lt;br /&gt;
* Frank Karl Koppel, 11, SSH vestlus&lt;br /&gt;
* Juta Jaama, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Kaine, DK12 - Info riistvara kohta&lt;br /&gt;
* Kert Saarma, 12 - Info riistvara kohta&lt;br /&gt;
* Martin Kokk, 11 - Linuxi serveri paigaldus&lt;br /&gt;
* Artur Tammiste, 14 - Info riistvara kohta&lt;br /&gt;
* Paul Richard Lettens, 12 - Info riistvara kohta&lt;br /&gt;
* Liina Laumets, DK13 - Info riistvara kohta&lt;br /&gt;
* Martin Tammai, 11 - Info riistvara kohta&lt;br /&gt;
* Margus Põlma, 15, LAMP paigaldus&lt;br /&gt;
* Kersti Perandi, DK13 - Info riistvara kohta&lt;br /&gt;
* Tõnis Prants, 15, Linuxi tööjaama paigaldus&lt;br /&gt;
* Andres Kalavus, 12, APT-i analoog Windowsis&lt;br /&gt;
* Sven Veelaid, ISd14 - info riistvara kohta&lt;br /&gt;
* Helen Riisalu, 11 - Info riistvara kohta&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Info riistvara kohta&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Info riistvara kohta&lt;br /&gt;
* Karl Erik Õunapuu, 15 - LAMP paigaldus&lt;br /&gt;
* Marite Rammo, 15 - Info riistvara kohta&lt;br /&gt;
* Georg Kahest, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Jekaterina Losseva, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Niinelt, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Tammekänd, DK12 - Info riistvara kohta&lt;br /&gt;
* Brita Pentšuk, 13 - Info riistvara kohta&lt;br /&gt;
* Dmitri Kiriljuk, AK11 - Info riistvara kohta&lt;br /&gt;
* Joonas Ervald, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Priit Järv, 12 - Info riistvara kohta&lt;br /&gt;
* Henri Paves, AK11 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Info riistvara kohta&lt;br /&gt;
* Sander Pihelgas, AK11 - Info riistvara kohta&lt;br /&gt;
* Andreas Porman, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Andres Leppik, DK13 - Info riistvara kohta&lt;br /&gt;
* Kristina Rästas, 13 - Linux serveri paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - Info riistvara kohta&lt;br /&gt;
* Meelis Osi, AK11 - Info riistvara kohta&lt;br /&gt;
* Liis Talsi, DK14 - Info riistvara kohta&lt;br /&gt;
* Edgar Tereping, 14 - Info riistvara kohta&lt;br /&gt;
* Karen Grigorjan, DK12 - LAMP Paigaldus&lt;br /&gt;
* Marek Skorohhodov, AK11 - Info riistvara kohta + Linux serveri paigaldus&lt;br /&gt;
&lt;br /&gt;
=2.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxile Teine Töölaud&lt;br /&gt;
* Egert Närep, DK11 - SSH Windows+Linux&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxile teine töölaud&lt;br /&gt;
* Rando Rommot, 13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Lasberg, DK13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrek Laanemets, 11 - Linuxile teine töölaud&lt;br /&gt;
* Kristo Tero, IA18 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Siim Kustassoo, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Rain Adamson, 41 - LibreOffice&#039;i hulgipaigaldus&lt;br /&gt;
* Rein Remsu, IA17 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Mihkel-Erik Mägi, 13 - Teine GUI Windowsile.&lt;br /&gt;
* Nele Naris, IA18 - LAMP paigaldus&lt;br /&gt;
* Piret Spitsõn, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Tanel Vari, DK 13 - Info riistvara kohta&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Madis Roosioks, D22 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Triin Palm, IA18 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maie Palmeos, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Dmitri Lukaš, DK11 - Windows Subsystem for Linux / APT&#039;i analoog Windowsile&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Alan Alliksoo, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Reilika Saks, IA17 - E-posti krüpto&lt;br /&gt;
* Andres Tambek, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Hardi Tiitus, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jan Pentšuk, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Irina Geidarova, IA18 Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Linuxile teine töölaud&lt;br /&gt;
* Kreet Solnask, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristjan Leotoots, DK12 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Liis Talimaa, DK12, SSH Windows+Linux&lt;br /&gt;
* Eduard Kõre, AK12 - SSH Windows+Linux&lt;br /&gt;
* Erik Ehrbach, DK14 - SSH Windows+Linux&lt;br /&gt;
* Helen Oppar, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jüri Ahhundov, DK11 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristina Garmatjuk, DK11 - LAMP paigaldus&lt;br /&gt;
* Jana Kindlam, DK12 – Linuxi tööjaama paigaldus&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - LAMP paigaldus&lt;br /&gt;
* Marko Esna, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Alexander Teder, 12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - LAMP paigaldus&lt;br /&gt;
* Madis Liik, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Annika Kask, 11 - Info riistvara kohta&lt;br /&gt;
* Rando Kurel, 12- Linuxi tööjaama paigaldus&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Ingvar Lukas, 14 - LAMP paigaldus&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxi serveri paigaldus&lt;br /&gt;
* Brita Pentšuk, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Anton Kuksov, 12 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristo Leesmann, 13 - APT-i analoog Windowsile&lt;br /&gt;
* Sander Ratassepp, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Peeter Fridolin, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Rihma, DK11 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Vjatšeslav Aprelkov, DK11 - Linuxile teine töölaud&lt;br /&gt;
* Sergei Kaganski, DK14 - Raspberry Pi&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - LAMP paigaldus&lt;br /&gt;
* Merike Meizner, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrei Pugatšov, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Ervald, DK11 - Raspberry Pi&lt;br /&gt;
* Kuldar Teinmann, AK11 - SSH Windows+Linux&lt;br /&gt;
* Lauri Üksti, DK14 - Mac+Windows kaksikkäivitus, uusim LTS, uus vaikimisi töölaua keskkond&lt;br /&gt;
* Pavel Fleišer, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Linuxile Teine Töölaud&lt;br /&gt;
* Marten Tammeleht, 13 - Teine GUI Windowsile&lt;br /&gt;
* Anna Levijeva, 12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - E-posti krüpto&lt;br /&gt;
* Laura Lenbaum IA18- E-posti krüpto&lt;br /&gt;
* Henri Paves, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Ruti Kerro, IA17 - APT analoog Windowsile&lt;br /&gt;
* Merilyn Merisalu, 13 - LAMP paigaldus&lt;br /&gt;
* Anton Meženin, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Marie Udam, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Ilmar Ermus, IA17 - SSH Windows + Linux&lt;br /&gt;
* Madis Niinelt, IA18 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Maile Mäesalu, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Andreas Porman, DK13 - LAMP paigaldus&lt;br /&gt;
* Pille Ulmas, DK13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Henrik Prangel, 12 - Linuxile teine töölaud&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Radne Kaal, IA18 - E-posti krüpto&lt;br /&gt;
* Sander Pihelgas, AK11 - LAMP paigaldus&lt;br /&gt;
* Andres Leppik, DK13 - Linuxile teine töölaud&lt;br /&gt;
* Lisette Noor, D23 - Teine GUI Windowsile&lt;br /&gt;
* Annely Vattis, AK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kristina Rästas, 13 - LAMP paigaldus&lt;br /&gt;
* Andres Kalavus, 12 - Info riistvara kohta&lt;br /&gt;
* Aleksandra Sepp, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Tanel Peep, AK11 - LAMP paigaldus&lt;br /&gt;
* Andrei Tomba, DK14 - Linuxile teine töölaud&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxile teine töölaud&lt;br /&gt;
* Igor Budnitski, IA17 - SSH Windows+Linux&lt;br /&gt;
* Brit Valdek, DK14 - Raspberry PI&lt;br /&gt;
* Martin Kokk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Meelis Mikk, 11 - Linuxile teine töölaud&lt;br /&gt;
* Artur Kapranov - LAMP Paigaldus&lt;br /&gt;
* Jooni Soots, IA17 - E-posti krüpto&lt;br /&gt;
* Mihkel Tääkre, 15 - LAMP Paigaldus&lt;br /&gt;
* Tõnis Prants, 15 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Georg Kahest, AK11 - E-posti krüpto&lt;br /&gt;
* Meelis Osi, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Kert Saarma, 12 - Linuxile teine töölaud&lt;br /&gt;
* Ruudi Vinter, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Alo Avi, 14 - E-posti krüpto&lt;br /&gt;
* Indro Kottise, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anni-Bessie Kitt DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Liis Talsi DK14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Aleksandr Petrušihin - DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Kaarel Kaine, DK12 - Linux serveri paigaldus, LAMP serveri paigaldus&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Linuxile teine töölaud&lt;br /&gt;
* Ahto Ahven, 15 - Linuxile teine töölaud&lt;br /&gt;
* Hannes Mäeorg, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Edgar Tereping, 14 - E-posti krüpto&lt;br /&gt;
* Karen Grigorjan, DK12 - E-posti krüpto&lt;br /&gt;
* Henri Annilo, DK13 - E-posti krüpto&lt;br /&gt;
* Jekaterina Losseva, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Leho Kivistik, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Loss, DK14, MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Rene Väli, DK13 - LAMP Paigaldus&lt;br /&gt;
* Katrin Kello 12- LAMP paigaldus&lt;br /&gt;
*Alvar Suun DK13- SSH Windows+Linux&lt;br /&gt;
* Siim Ošur, ISd13 - Katkematu kaughaldus (GUI+CLI) piiratud võrgus&lt;br /&gt;
&lt;br /&gt;
=Probleemilahendus=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - EXT4 on Windows. &lt;br /&gt;
* Egert Närep, DK11 - VPN Linuxis&lt;br /&gt;
* Jaan Veikesaar, 11 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Laura Lenbaum, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Nele Naris, IA18 - ePub loomine Windowsis&lt;br /&gt;
* Madis Roosioks, D22 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Katrin Lasberg, DK13 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Andrek Laanemets, 11 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Kristo Tero, IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Siim Kustassoo IA18 - ePub loomine Windowsis&lt;br /&gt;
* Rain Adamson, 41 - Ajastatud toimingute keelamine kasutajatele Linuxis.&lt;br /&gt;
* Rein Remsu, IA17 - Sügavkülmutus Linuxis&lt;br /&gt;
* Jooni Soots, IA17 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Piret Spitsõn, DK11 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Kreet Solnask, IA17 - ePub loomine MacOS-is&lt;br /&gt;
* Tanel Vari, DK 13 - QR kood MacOS-s &lt;br /&gt;
* Jaan Koolmeister, DK 13 - Kiirusetest Linuxis&lt;br /&gt;
* Rando Rommot, 13 - Kasutaja lukustamine Linuxis.&lt;br /&gt;
* Marilyn Võsu, DK11 - Kustunud faili(de) taastamine&lt;br /&gt;
* Triin Palm, IA18 - Pilveketas sõltumata operatsioonisüsteemist&lt;br /&gt;
* Maie Palmeos, DK11 - Automaatne privaatne veebilehitseja Windowsis&lt;br /&gt;
* Dmitri Lukaš, DK11 - ePub loomine Windowsis / Programmide automaatkäivitus / Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Dmitri Tšurjumov. IA17 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Unustatud salasõna taastamine&lt;br /&gt;
* Alan Alliksoo, DK11 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Reilika Saks, IA17 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Andres Tambek, DK12 - Külalise kasutaja disainimine Linuxis.&lt;br /&gt;
* Jan Pentšuk, DK12 - Kustunud faili(de) taastamine&lt;br /&gt;
* Filip Fjodorov, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Karit Kilgi, DK 32 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Eduard Kõre, AK12 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Jüri Ahhundov, DK11 - Kodukataloogi krüpteerimine.&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Madis Võrklaev, AK11 - Kioskirežiim Linuxis&lt;br /&gt;
* Marko Esna, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Alexander Teder, 12 Automaatne Windowsi uuendamine etteantud ajal.&lt;br /&gt;
* Merilyn Merisalu, 13 - Automaatne sisselogimine külalise kontoga&lt;br /&gt;
* Ruti Kerro, IA17 - Programmi sulgemine jõuga ja kokkujooksmise vältimine Linuxis&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Markus Kildemaa, 15 - Külalise konto vaikimisi sisse logima&lt;br /&gt;
* Brita Pentšuk, 13 - Failisüsteemi haakimine - NTFS Linuxis&lt;br /&gt;
* Peeter Fridolin, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Andrei Tomba, DK14 - Kiirusetest Linuxis&lt;br /&gt;
* Priit Rätsep, DK12 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Annika Kask, 11 - ePubi loomine Windowsis&lt;br /&gt;
* Ingvar Lukas, 14 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Joonas Ervald, DK11 - Protsessori ülekiirendamine&lt;br /&gt;
* Merike Meizner, DK11, Automaatne privaatne veebilehitsemine Linuxis&lt;br /&gt;
* Kuldar Teinmann, AK11 - Failijagamine FTP-ga Linuxis&lt;br /&gt;
* Madis Niinelt, IA18 - Kioskirežiim Linuxis&lt;br /&gt;
* Pavel Fleišer, 14 - Failijagamine FTP-ga Linuxis / Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Simo Jaanus, 13 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Marten Tammeleht, 13 - Külalise kasutaja disainimine Linuxis&lt;br /&gt;
* Hardi Tiitus, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Helen Oppar, DK12 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Henri Paves, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
* Andrei Pugatšov, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Anton Meženin, DK14 - Viirusetõrje Linuxis&lt;br /&gt;
* Kristo Leesmann, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Vjatsheslav Aprelkov,DK11 - Paigaldatud teise töölauakeskkonna eemaldamine &lt;br /&gt;
* Anita Sepp, DK12 - Teine töölauakeskkond Linuxile&lt;br /&gt;
* Radne Kaal, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Andero Samelselg, 15 - Vabavaraline salasõnade haldur; ePub loomine Linuxis&lt;br /&gt;
* Pille Ulmas, DK13 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Henrik Prangel, 12 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Lisette Noor, D23 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Andreas Porman, DK13- Kiirustest Linuxis&lt;br /&gt;
* Anton Kuksov, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Andres Kalavus, 12 - Automaatne privaatne veebilehitsemine Windowsis&lt;br /&gt;
* Sander Pihelgas, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Tanel Peep, AK11 - Ajastatud toimingute keelamine kasutajatele Linuxis ja skripti loomine CRONi&lt;br /&gt;
* Anna Levijeva, 12 - Sügavkülmutus Linuxis&lt;br /&gt;
* Elizaveta Romanova, 11 - Turvaline Skype’i analoog Linuxile &lt;br /&gt;
* Meelis Osi, AK11 - Grep käsk Windowsi keskkonnas&lt;br /&gt;
*Kristina Rästas, 13 - Adobe Reader Linuxile&lt;br /&gt;
* Brit Valdek, DK14 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Sergei Kaganski, DK14 -ePub loomine MacOS-is&lt;br /&gt;
* Joonas Rihma, DK11 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Mihkel Tääkre, 15 - Photoshop installimine Linuxis&lt;br /&gt;
* Martin Kokk, 11 - Salasõna eemaldamine PDF faililt&lt;br /&gt;
* Maile Mäesalu, DK14 - Paigaldatud teise töölauakeskkonna eemaldamine Linuxis&lt;br /&gt;
* Marko Linde(Mõznikov), DK12 - DWG-failide avamine Linuxis. &lt;br /&gt;
* Jevgeni Jurtsenko DK13, 59 - Võtmefailiga SSH sisselogimine&lt;br /&gt;
* Georg Kahest AK11, - Võtmefailiga SSH sisselogimine / NTP&lt;br /&gt;
* Konstantin Dmitrijev IA18 - DWG-failide avamine Linuxis&lt;br /&gt;
* Kert Saarma, 12 - VPN Linuxile&lt;br /&gt;
* Ruudi Vinter, DK12 - Teise töölauakeskonna eemaldamine Linuxis, Linuxi kioskirežiim&lt;br /&gt;
* Alo Avi, 14 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Indro Kottise, 15 - Automaatne Windowsi uuendamine etteantud ajal&lt;br /&gt;
* Kaarel Kaine, DK12 - Automaatne sisselogimine külalise kontoga, Linuxi kioskirežiim&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - EPUB loomine Windowsis&lt;br /&gt;
* Anni - Bessie Kitt, DK14 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Karen Grigorjan, DK12 - GRUBi taastamine&lt;br /&gt;
* Leho Kivistik, 14 - EPUB loomine Windowsis&lt;br /&gt;
* Egert Loss, DK14, Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Tõnis Prants, 15, Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Henri ANnilo, DK13, QR kood Windowsis&lt;br /&gt;
* Rene Väli, DK13 - Sügavkülmutus Windowsis&lt;br /&gt;
* Edgar Tereping, 14 - EPUB loomine Windowsis&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=File:Coverme.JPG&amp;diff=122487</id>
		<title>File:Coverme.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=File:Coverme.JPG&amp;diff=122487"/>
		<updated>2017-05-13T12:26:57Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: Kkilgi uploaded a new version of File:Coverme.JPG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=File:Coverme.JPG&amp;diff=122486</id>
		<title>File:Coverme.JPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=File:Coverme.JPG&amp;diff=122486"/>
		<updated>2017-05-13T12:22:46Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=122485</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=122485"/>
		<updated>2017-05-13T12:21:16Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
===Andmebaasi skeem===&lt;br /&gt;
&lt;br /&gt;
[[File:coverme.JPG|border|CoverME]]&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 17.04.17 Esialgne veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=121323</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=121323"/>
		<updated>2017-05-07T17:58:24Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;br /&gt;
&lt;br /&gt;
== Logi ==&lt;br /&gt;
* 17.03.17 Esimene kohtumine. Idee. Wiki leht&lt;br /&gt;
* 31.03.17 Idee arutelu. &lt;br /&gt;
* 07.04.17 XML failide ja idee analüüsi ning retsensioonidega seotud ülesannete jaotamine.&lt;br /&gt;
* 14.04.17 Jaotatud ülesannete üleslaadimine, nendega tutvumine.&lt;br /&gt;
* 16.04.17 XML failide, analüüsi ja retsensioonide teemaline kohtumine. &lt;br /&gt;
* 17.04.17 XML failide, retsensioonide ja analüüsi laadimine wikisse.&lt;br /&gt;
* 28.04.17 Veebiteenuse andmebaasimudeli koostamine.&lt;br /&gt;
* 17.04.17 Esialgne veebiteenuse analüüs ja kavand valmis.&lt;br /&gt;
* 07.05.17 Veebiteenuse andmebaasi mudeli viimistlemine ning veebiteenusega seotud arutelu, ülesannete jagamine.&lt;/div&gt;</summary>
		<author><name>Kkilgi</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=120334</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=120334"/>
		<updated>2017-04-19T20:42:07Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Meeskond: CoverMe */&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;
&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;
===[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;
[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]&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;
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;
===[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>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120333</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120333"/>
		<updated>2017-04-19T20:39:59Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120332</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120332"/>
		<updated>2017-04-19T20:38:58Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
XML failide retsensioon meeskonnale PC KartKicker: [https://wiki.itcollege.ee/index.php/Talk:Team_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 analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120331</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120331"/>
		<updated>2017-04-19T20:36:51Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
XML failide retsensioon meeskonnale PC KartKicker: [https://wiki.itcollege.ee/index.php/Talk:Team_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:Team_Ticketer Talk:Team_Ticketer]&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:Ticketer&amp;diff=120330</id>
		<title>Talk:Ticketer</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:Ticketer&amp;diff=120330"/>
		<updated>2017-04-19T20:35:24Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Retsensioon meeskonna Ticketer esitatud XML-failidele=&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Meeskond:_CoverMe]&lt;br /&gt;
&lt;br /&gt;
Meeskond Ticketer on kokku esitanud viis faili: XML-faili, skeemifaili, kaks XSLT faili HTML formaati transformeerimiseks ning XSLT faili XML formaati transformeerimiseks.&lt;br /&gt;
XML fail sisaldab endas nelja loogilist dimensiooni ja lisaks on kasutatud vähemalt kolmel dimensioonil atribuute, mis on enamat kui ID. Kõik andmed on defineeritud atribuutide väärtustena. XML-fail on kergesti jälgitav ning kood läbib validaatori validatsiooni. Plussina võib välja tuua CDATA korrektse kasutuse.&lt;br /&gt;
Skeemifail (XSD) on korrektselt formuleeritud ning läbis edukalt validaatori kontrolli.&lt;br /&gt;
HTML formaati genereerimiseks mõeldud kahes XSLT failis on kasutatud enam kui ühte for-each klauslit ning kontrollitud erinevaid tingimusi. Antud transformatsioon on korrektselt koostatud ning esitatud tingimustele vastav.&lt;br /&gt;
XML formaati transformeerimiseks mõeldud XSLT on samuti korrektselt koostatud ning vastab kodutööle esitatud nõudmistele.&lt;br /&gt;
Eeltoodu põhjal võibki tõdeda, et antud meeskond on esitanud antud kodutöö raames korrektsed ning õigesti formuleeritud failid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retsenseerinud tiim: [https://wiki.itcollege.ee/index.php/DevHelpVR DevHelp]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retsensioon meeskonna Ticketer esitatud XML failidele&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Meeskond Ticketer esitas kodutööna sobiva XML-faili, XSD skeemifaili ja kolm XSLT transformatsiooni. Kaks transformatsiooni olid tehtud HTML-i jaoks, kolmas teistsugusele XML-i kujule transformeermiseks. Transformatsioonides kasutatakse muuhulgas malle, mille abil kirjeldatakse ära, kuidas andmeid väljundis näidata. Malle kasutatakse selleks, et kuvatud info oleks loetav ning korrektne. Mõlemas HTML transformatsioonis kui ka XML transformatsioonis on kasutatud for-each tsükleid. Nimelt on esimeses HTML transformatsioonis 2 for-each tsüklit ja 1 if tingimus, teises HTML transformatsioonis on 2 for-each tsüklit ja 2 if tingimust, kolmandas transformatsioonis, mis teeb uue XML faili on samuti 2 for-each tsüklit ja 2 if tingimust. Loogilisi dimensioone on XML failil rohkem kui püstitatud miinimum 4. XML fail on muuhulgas valideeruv. Seega loodud failid vastavad õppejõu poolt püstitatud ülesande tingimustele. &lt;br /&gt;
&lt;br /&gt;
Elementide &amp;quot;Category&amp;quot;, &amp;quot;Municipality&amp;quot;,  &amp;quot;Category&amp;quot;, &amp;quot;Performer&amp;quot;, &amp;quot;Description&amp;quot; esinemise hulk on määratud XSD failis tüübiga unbounded, mis on meie arvates õigustatud.&lt;br /&gt;
Id-atribuutide väärtuste unikaalsus ei ole tagatud. Läbivalt XSD-s on näha, et Id-d ei ole määratud unikaalseks. Näide, kuidas on võimalik teha Id unikaalseks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xs:unique name=&amp;quot;nimi &amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;Categories&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@Id&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Esimene HTML transformatsioon:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ticketer1.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teine HTML transformatsioon:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ticketer.png]]&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120329</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120329"/>
		<updated>2017-04-19T20:31:47Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Retsensioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
XML failide retsensioon meeskonnale PC KartKicker: [https://wiki.itcollege.ee/index.php/Talk:Team_PC_KartKicker Talk:Team_PC_KartKicker]&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:PC_KartKicker&amp;diff=120301</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=120301"/>
		<updated>2017-04-17T20:14:33Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Retsensioon meeskonna PC KartKicker esitatud XML-failidele */&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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Üldiselt võiks öelda, et kehvake ja tuleks veel pingutada. Oluline õppeinfo ja praktiseerimise võimalus on jäänud kasutamata.&lt;br /&gt;
Eriti mis puudatab arvutusi ja tingimuste kontrolli transformatsioonis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Retsensioon meeskonna PC KartKicker esitatud XML-failidele=&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Ninjas_in_pyjamas Ninjas in pyjamas]&lt;br /&gt;
&lt;br /&gt;
Meeskonna &amp;quot;PC KartKicker&amp;quot; XML failide sisu leiate [https://wiki.itcollege.ee/index.php/PC_KartKicker SIIT]&lt;br /&gt;
&lt;br /&gt;
== XML ja XSD==&lt;br /&gt;
XML fail valideerib ja valideerimise lõpptulemusena ei ole tulnud ühtegi viga. Dimensioonide arv vastab õppejõu nõutud tingimustele ja antud töös neid isegi 5. Dimensioonid on hästi spetsifitseeritud, palju atribuute, kuid samas selle tõttu ka antud fail natuke raskem loetav. Ei ole ühtegi unikaalseid elemente - ehk numbrilisi väärtuseid pole, nagu näiteks ID. Ühelt poolt see ei ole probleem, kuna on olemas palju teisi, aga teiselt poolt see on vastane andmebaasi identifitseerimise põhimõttele, kus on alati olemas numbriline Primary Key. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transformatsioonid ==&lt;br /&gt;
Tehtud kaks transformatsioone. Mõlemad sisaldavad ainult üht for-each klauslit, mistõttu nad ei vasta õppejõu poolt väljatoodud nõuetele. Samas transformatsioonides puuduvad tingimusi ja nende kontroll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; HTML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Puudub &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Väga lühike&lt;br /&gt;
&lt;br /&gt;
3. Tundub, et meeskond teinud vigade parandust, kuna nüüd validaatoris ei ole enam vigu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; XML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pole tehtud eraldi, kuid validaatoris kood saab läbi ilma veata.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
XML fail on korrektne ja meie arvates, liiga mahukas - näha on, et rohkem jõudu meeskond pani just selle osale, kuid samas võiksid rohkem süvineda XSLT-de tegemisse. Samas nad on tublid, kuna parandasid enda pisiveod, mis olid varemates retsensioonides märgitud. Aga vaja ikka juurde teha XML -&amp;gt; XML transformatsiooni.&lt;br /&gt;
&lt;br /&gt;
= Retsensioon meeskonna PC KartKicker esitatud XML-failidele=&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Meeskond:_CoverMe]&lt;br /&gt;
&lt;br /&gt;
Meeskond PC KartKicker on kokku esitanud neli faili: XML-faili, skeemifaili, XSLT faili HTML formaati transformeerimiseks ning XSLT faili XML formaati transformeerimiseks. &lt;br /&gt;
XML fail sisaldab endas nelja loogilist dimensiooni. ID atribuute pole kasutatud, mis ei taga 100% atribuutide unikaalsust, kuid sobiv on see, et  andmed on defineeritud atribuutide väärtustena. Kodutöös nõutud 3-el dimensioonil ID-st enamate atribuutide kasutamine on täidetud nõuetele vastavalt. Samuti läbib XML-fail erroriteta validaatori poolse kontrolli.&lt;br /&gt;
Skeemifail (XSD) on korrektselt formuleeritud ning läbis edukalt validaatori kontrolli.&lt;br /&gt;
Olemas on kaks XSLT fail HTML ja XML formaati transformeerimiseks, kuid need ei ole tehtud eraldi. Failid sisaldavab vaid ühte for-each klauslit ning ei sisalda tingimuskontrolle. &#039;&#039;head&#039;&#039; elemendi sees on &#039;&#039;H1&#039;&#039; element, mis peaks kuuluma &#039;&#039;body&#039;&#039; elementi.  Antud meeskonna esitatud failid täidavad vaid osaliselt kodutööle esitatud nõuded.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:PC_KartKicker&amp;diff=120300</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=120300"/>
		<updated>2017-04-17T20:13:32Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Retsensioon meeskonna PC KartKicker esitatud XML-failidele */&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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Üldiselt võiks öelda, et kehvake ja tuleks veel pingutada. Oluline õppeinfo ja praktiseerimise võimalus on jäänud kasutamata.&lt;br /&gt;
Eriti mis puudatab arvutusi ja tingimuste kontrolli transformatsioonis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Retsensioon meeskonna PC KartKicker esitatud XML-failidele=&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Ninjas_in_pyjamas Ninjas in pyjamas]&lt;br /&gt;
&lt;br /&gt;
Meeskonna &amp;quot;PC KartKicker&amp;quot; XML failide sisu leiate [https://wiki.itcollege.ee/index.php/PC_KartKicker SIIT]&lt;br /&gt;
&lt;br /&gt;
== XML ja XSD==&lt;br /&gt;
XML fail valideerib ja valideerimise lõpptulemusena ei ole tulnud ühtegi viga. Dimensioonide arv vastab õppejõu nõutud tingimustele ja antud töös neid isegi 5. Dimensioonid on hästi spetsifitseeritud, palju atribuute, kuid samas selle tõttu ka antud fail natuke raskem loetav. Ei ole ühtegi unikaalseid elemente - ehk numbrilisi väärtuseid pole, nagu näiteks ID. Ühelt poolt see ei ole probleem, kuna on olemas palju teisi, aga teiselt poolt see on vastane andmebaasi identifitseerimise põhimõttele, kus on alati olemas numbriline Primary Key. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transformatsioonid ==&lt;br /&gt;
Tehtud kaks transformatsioone. Mõlemad sisaldavad ainult üht for-each klauslit, mistõttu nad ei vasta õppejõu poolt väljatoodud nõuetele. Samas transformatsioonides puuduvad tingimusi ja nende kontroll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; HTML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Puudub &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Väga lühike&lt;br /&gt;
&lt;br /&gt;
3. Tundub, et meeskond teinud vigade parandust, kuna nüüd validaatoris ei ole enam vigu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; XML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pole tehtud eraldi, kuid validaatoris kood saab läbi ilma veata.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
XML fail on korrektne ja meie arvates, liiga mahukas - näha on, et rohkem jõudu meeskond pani just selle osale, kuid samas võiksid rohkem süvineda XSLT-de tegemisse. Samas nad on tublid, kuna parandasid enda pisiveod, mis olid varemates retsensioonides märgitud. Aga vaja ikka juurde teha XML -&amp;gt; XML transformatsiooni.&lt;br /&gt;
&lt;br /&gt;
= Retsensioon meeskonna PC KartKicker esitatud XML-failidele=&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Meeskond:_CoverMe]&lt;br /&gt;
&lt;br /&gt;
Meeskond PC KartKicker on kokku esitanud neli faili: XML-faili, skeemifaili, XSLT faili HTML formaati transformeerimiseks ning XSLT faili XML formaati transformeerimiseks. &lt;br /&gt;
XML fail sisaldab endas nelja loogilist dimensiooni. ID atribuute pole kasutatud, mis ei taga 100% atribuutide unikaalsust, kuid sobiv on see, et  andmed on defineeritud atribuutide väärtustena. Kodutöös nõutud 3-el dimensioonil ID-st enamate atribuutide kasutamine on täidetud nõuetele vastavalt. Samuti läbib XML-fail erroriteta validaatori poolse kontrolli.&lt;br /&gt;
Skeemifail (XSD) on korrektselt formuleeritud ning läbis edukalt validaatori kontrolli.&lt;br /&gt;
Olemas on kaks XSLT fail HTML ja XML formaati transformeerimiseks, kuid need ei ole tehtud eraldi. Failid sisaldavab vaid ühte for-each klauslit ning ei sisalda tingimuskontrolle. &#039;&#039;head&#039;&#039; elemendi sees on &amp;lt;H1&amp;gt; element, mis peaks kuuluma &#039;&#039;body&#039;&#039; elementi.  Antud meeskonna esitatud failid täidavad vaid osaliselt kodutööle esitatud nõuded.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:PC_KartKicker&amp;diff=120299</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=120299"/>
		<updated>2017-04-17T20:12:04Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Üldiselt võiks öelda, et kehvake ja tuleks veel pingutada. Oluline õppeinfo ja praktiseerimise võimalus on jäänud kasutamata.&lt;br /&gt;
Eriti mis puudatab arvutusi ja tingimuste kontrolli transformatsioonis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Retsensioon meeskonna PC KartKicker esitatud XML-failidele=&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Ninjas_in_pyjamas Ninjas in pyjamas]&lt;br /&gt;
&lt;br /&gt;
Meeskonna &amp;quot;PC KartKicker&amp;quot; XML failide sisu leiate [https://wiki.itcollege.ee/index.php/PC_KartKicker SIIT]&lt;br /&gt;
&lt;br /&gt;
== XML ja XSD==&lt;br /&gt;
XML fail valideerib ja valideerimise lõpptulemusena ei ole tulnud ühtegi viga. Dimensioonide arv vastab õppejõu nõutud tingimustele ja antud töös neid isegi 5. Dimensioonid on hästi spetsifitseeritud, palju atribuute, kuid samas selle tõttu ka antud fail natuke raskem loetav. Ei ole ühtegi unikaalseid elemente - ehk numbrilisi väärtuseid pole, nagu näiteks ID. Ühelt poolt see ei ole probleem, kuna on olemas palju teisi, aga teiselt poolt see on vastane andmebaasi identifitseerimise põhimõttele, kus on alati olemas numbriline Primary Key. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transformatsioonid ==&lt;br /&gt;
Tehtud kaks transformatsioone. Mõlemad sisaldavad ainult üht for-each klauslit, mistõttu nad ei vasta õppejõu poolt väljatoodud nõuetele. Samas transformatsioonides puuduvad tingimusi ja nende kontroll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; HTML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Puudub &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Väga lühike&lt;br /&gt;
&lt;br /&gt;
3. Tundub, et meeskond teinud vigade parandust, kuna nüüd validaatoris ei ole enam vigu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML -&amp;gt; XML transformatsioon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pole tehtud eraldi, kuid validaatoris kood saab läbi ilma veata.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
XML fail on korrektne ja meie arvates, liiga mahukas - näha on, et rohkem jõudu meeskond pani just selle osale, kuid samas võiksid rohkem süvineda XSLT-de tegemisse. Samas nad on tublid, kuna parandasid enda pisiveod, mis olid varemates retsensioonides märgitud. Aga vaja ikka juurde teha XML -&amp;gt; XML transformatsiooni.&lt;br /&gt;
&lt;br /&gt;
= Retsensioon meeskonna PC KartKicker esitatud XML-failidele=&lt;br /&gt;
Koostaja: [https://wiki.itcollege.ee/index.php/Meeskond:_CoverMe]&lt;br /&gt;
&lt;br /&gt;
Meeskond PC KartKicker on kokku esitanud neli faili: XML-faili, skeemifaili, XSLT faili HTML formaati transformeerimiseks ning XSLT faili XML formaati transformeerimiseks. &lt;br /&gt;
XML fail sisaldab endas nelja loogilist dimensiooni. ID atribuute pole kasutatud, mis ei taga 100% atribuutide unikaalsust, kuid sobiv on see, et  andmed on defineeritud atribuutide väärtustena. Kodutöös nõutud 3-el dimensioonil ID-st enamate atribuutide kasutamine on täidetud nõuetele vastavalt. Samuti läbib XML-fail erroriteta validaatori poolse kontrolli.&lt;br /&gt;
Skeemifail (XSD) on korrektselt formuleeritud ning läbis edukalt validaatori kontrolli.&lt;br /&gt;
Olemas on kaks XSLT fail HTML ja XML formaati transformeerimiseks, kuid need ei ole tehtud eraldi. Failid sisaldavab vaid ühte for-each klauslit ning ei sisalda tingimuskontrolle. &amp;lt;head&amp;gt; elemendi sees on &amp;lt;H1&amp;gt; element, mis peaks kuuluma &amp;lt;body&amp;gt; elementi.  Antud meeskonna esitatud failid täidavad vaid osaliselt kodutööle esitatud nõuded.&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120293</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120293"/>
		<updated>2017-04-17T20:02:36Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Veebiteenuse analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120292</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120292"/>
		<updated>2017-04-17T20:02:01Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* Veebiteenuse analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
Must have&lt;br /&gt;
* Sisselogimine&lt;br /&gt;
* Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
* Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
* Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
* Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
* Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
* Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
* Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
* Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
* Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
* Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
* Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120290</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120290"/>
		<updated>2017-04-17T19:58:29Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;
== Retsensioonid ==&lt;br /&gt;
&lt;br /&gt;
== Veebiteenuse analüüs ==&lt;br /&gt;
&lt;br /&gt;
Rakenduse eesmärk on võimaldada tööandjatel leida ettevõttesse/asutusse asenduseks sobivaid inimesi lühikese etteteatamisajaga. Näiteks kui kaupluse kassapidaja peaks jääma haigeks või õpetaja jääb lapsega hoolduslehele. Tööhuvilistel on võimalik andmebaasi lisada oma võimalikud töötamise ajad, oskused ning tasusoov. Tööandjad saavad teha andmebaasist päringut samadel alustel. Rakendus on sarnane GoWorkaBit (https://goworkabit.com) rakendusele, kuid meie juhul on andmebaasist päringute tegijateks tööandjad ja andmete sisestajateks töötajad ise.&lt;br /&gt;
Must have&lt;br /&gt;
·         Sisselogimine&lt;br /&gt;
·         Sisseloginud kasutaja saab lisada enda kohta vabasid aegasid 1 nädal ette&lt;br /&gt;
·         Profiilis määratakse oskused (rippmenüü) ja soovitud tasu 1 h kohta&lt;br /&gt;
·         Kasutaja saab otsida töötajaid vastavalt enda poolt sisestatud ajale vabadele aegadele, oskustele ning töötasule&lt;br /&gt;
·         Kui leitakse sobivad töötajad, saadetakse neile teade.&lt;br /&gt;
.	 Kõikidel väljavalitutel on võimalik pakkumisega nõustuda, kuid vaid kiireim vastanu saab lepingu&lt;br /&gt;
·         Kasutaja saab oma profiili ja vabasid aegasid muuta ning  kustutada&lt;br /&gt;
·         Teenuse kasutajate ja kasutusstatistika üle arve pidamine kasutajate lõikes&lt;br /&gt;
·         Teenuse poole pöördumiste arvu piiramine ja piirangute haldamine&lt;br /&gt;
Nice to have&lt;br /&gt;
·         Tööandjast kasutaja saab vaadata, millistel aegadel on kõige rohkem töötajaid kättesaadavad&lt;br /&gt;
.	Kasutajad saavad vaadata erinevat statistikat, näiteks millised on töötasusoovid erinevate oskustega isikutel või millist tasu erinevate tööde eest üldiselt pakutakse&lt;br /&gt;
.	Ekstreemselt äge kasutusmugavus, kaasahaarav kasutajaliides&lt;br /&gt;
.	Töötajatel, kes ei jõudnud tööd vastu võtta, on võimalus jääda varutööliste järjekorda&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120289</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120289"/>
		<updated>2017-04-17T19:50:39Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&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;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120288</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120288"/>
		<updated>2017-04-17T19:46:28Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* XSLT 1 (html) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&lt;br /&gt;
===XML===&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSD===&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;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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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;
&lt;br /&gt;
===XSLT 1 (html)===&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;
&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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
&lt;br /&gt;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120287</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120287"/>
		<updated>2017-04-17T19:45:39Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* XSLT 2 (xml) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&lt;br /&gt;
===XML===&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSD===&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;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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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;
&lt;br /&gt;
===XSLT 1 (html)===&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;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;
    &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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
&lt;br /&gt;
===XSLT 2 (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;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;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120286</id>
		<title>Meeskond: CoverMe</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond:_CoverMe&amp;diff=120286"/>
		<updated>2017-04-17T19:44:07Z</updated>

		<summary type="html">&lt;p&gt;Kkilgi: /* XSLT 2 (xml) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Meeskond: CoverMe ==&lt;br /&gt;
&lt;br /&gt;
* Karit Kilgi&lt;br /&gt;
* Sten Kaasik&lt;br /&gt;
* Ragne Auling&lt;br /&gt;
* Silja Kralik&lt;br /&gt;
&lt;br /&gt;
== Idee == &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== XML fail ==&lt;br /&gt;
&lt;br /&gt;
===XML===&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;employees&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10012&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;768-22-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://yt3.ggpht.com/-V92UP8yaNyQ/AAAAAAAAAAI/AAAAAAAAAAA/zOYDMx8Qk3c/s900-c-k-no-mo-rj-c0xffffff/photo.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Lucia&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;J.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gaskill&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1959-04-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;904-366-8831&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;LuciaJGaskill@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;1&amp;quot; startDate=&amp;quot;2002-02-05&amp;quot; endDate=&amp;quot;2008-03-15&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Cashier&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;!-- töökoormus tundides nädal kohta--&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2003-03-20&amp;quot; endDate=&amp;quot;2003-04-20&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Cleaner&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;80&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;2&amp;quot; startDate=&amp;quot;2008-03-16&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Manager&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10013&amp;quot; available=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;769-48-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Martha&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Cornwell&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Sugu: 0 - määramata, 1 - naine, 2 - mees --&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1998-07-05&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;123-456-7785&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;MarthaCornwall@jourrapide.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Status: 0 - tööl, 1 - puhkusel jne. --&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;5&amp;quot; startDate=&amp;quot;2001-03-21&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Cadbury&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Service&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Servant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;10234&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;019-05-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://weknowyourdreams.com/images/dog/dog-08.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;James&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Gibson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;2&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1957-08-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;781-896-5862&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JamesGibson@armyspy.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;3&amp;quot; startDate=&amp;quot;2016-12-27&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Brilliant Home Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Accounting&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Accountant&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11454&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;623-11-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://www.mein-schoener-garten.de/sites/default/files/styles/inline_l/public/eichhoernchen-winter-2617791-blp-fotolia.jpg?itok=2UsYbm24&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Elizabeth&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;L.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;May&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1997-01-12&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;ElizabethLMay@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;4&amp;quot; startDate=&amp;quot;2015-05-23&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Information and record clerk&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;20&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;10&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11455&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;624-54-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;http://www.miksike.ee/docs/referaadid2005/kiirgliblikas_evelin.jpg&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Judy&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;middleName&amp;gt;A.&amp;lt;/middleName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;April&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;1&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1970-02-22&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;530-730-0818&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;JudyAApril@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;9&amp;quot; startDate=&amp;quot;2010-07-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Helpdesk&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Secretary&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-22&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;16&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
  &amp;lt;employee id=&amp;quot;11456&amp;quot; available=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;personalCode&amp;gt;1157-02-XXXX&amp;lt;/personalCode&amp;gt;&lt;br /&gt;
    &amp;lt;image&amp;gt;https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS7I-9NIN5ys4TUSF61BYALQ_O_01w_XNNzQw5_mfueta0IQbvAqA&amp;lt;/image&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;&lt;br /&gt;
      &amp;lt;firstName&amp;gt;Tom&amp;lt;/firstName&amp;gt;&lt;br /&gt;
      &amp;lt;lastName&amp;gt;Johnson&amp;lt;/lastName&amp;gt;&lt;br /&gt;
    &amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;gender&amp;gt;0&amp;lt;/gender&amp;gt;&lt;br /&gt;
    &amp;lt;birthDate&amp;gt;1972-02-02&amp;lt;/birthDate&amp;gt;&lt;br /&gt;
    &amp;lt;phone&amp;gt;124-548-998&amp;lt;/phone&amp;gt;&lt;br /&gt;
    &amp;lt;email&amp;gt;TomJohnson@dayrep.com&amp;lt;/email&amp;gt;&lt;br /&gt;
    &amp;lt;contract id=&amp;quot;14&amp;quot; startDate=&amp;quot;1995-11-23&amp;quot; status=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;company&amp;gt;Corinthian Designs&amp;lt;/company&amp;gt;&lt;br /&gt;
      &amp;lt;department&amp;gt;Analysis&amp;lt;/department&amp;gt;&lt;br /&gt;
      &amp;lt;occupation&amp;gt;Analyst&amp;lt;/occupation&amp;gt;&lt;br /&gt;
      &amp;lt;workload&amp;gt;40&amp;lt;/workload&amp;gt;&lt;br /&gt;
      &amp;lt;extraWork id=&amp;quot;1&amp;quot; startDate=&amp;quot;2016-03-20&amp;quot; endDate=&amp;quot;2016-03-25&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;company&amp;gt;Mr Fables&amp;lt;/company&amp;gt;&lt;br /&gt;
        &amp;lt;task&amp;gt;Data processor&amp;lt;/task&amp;gt;&lt;br /&gt;
        &amp;lt;totalHours&amp;gt;30&amp;lt;/totalHours&amp;gt;&lt;br /&gt;
      &amp;lt;/extraWork&amp;gt;&lt;br /&gt;
    &amp;lt;/contract&amp;gt;&lt;br /&gt;
  &amp;lt;/employee&amp;gt;&lt;br /&gt;
&amp;lt;/employees&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSD===&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;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;employees&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 minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;employee&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;personalCode&amp;quot; type=&amp;quot;xs:string&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;image&amp;quot; type=&amp;quot;xs:string&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;name&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;firstName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;middleName&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;lastName&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;gender&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; nillable=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;birthDate&amp;quot; type=&amp;quot;xs:date&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;phone&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element name=&amp;quot;email&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;contract&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;department&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;occupation&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element name=&amp;quot;workload&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; /&amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element minOccurs=&amp;quot;0&amp;quot; maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;extraWork&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;company&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;task&amp;quot; type=&amp;quot;xs:string&amp;quot; /&amp;gt;&lt;br /&gt;
                          &amp;lt;xs:element name=&amp;quot;totalHours&amp;quot; type=&amp;quot;xs:unsignedByte&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:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;startDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;endDate&amp;quot; type=&amp;quot;xs:date&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;status&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:attribute name=&amp;quot;id&amp;quot; type=&amp;quot;xs:unsignedInt&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;available&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: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;
&lt;br /&gt;
===XSLT 1 (html)===&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;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;
    &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;title&amp;gt;Employees&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;style&amp;gt;&lt;br /&gt;
          &amp;lt;/style&amp;gt;&lt;br /&gt;
        &amp;lt;/head&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;&lt;br /&gt;
          &amp;lt;h1&amp;gt;Employees&amp;lt;/h1&amp;gt;&lt;br /&gt;
            &amp;lt;table border =&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt; &lt;br /&gt;
                  &amp;lt;th&amp;gt;First name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Last name&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Present occupation&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Available for extra work&amp;lt;/th&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;Image&amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:for-each select =&amp;quot;/employees/employee&amp;quot;&amp;gt; &lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/firstName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;td&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;name/lastName&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
                  &lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:if test=&amp;quot;contract/@endDate = 0&amp;quot;&amp;gt;&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;contract/company&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;contract/occupation&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/td&amp;gt;&lt;br /&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;@available = &#039;true&#039; &amp;quot;&amp;gt;&lt;br /&gt;
                        Yes&lt;br /&gt;
                      &amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
                        No&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:choose&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:when test=&amp;quot;not(normalize-space(image)=&#039;&#039;)&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;img width=&amp;quot;150&amp;quot; height=&amp;quot;95&amp;quot; src=&amp;quot;{image}&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;
                        Image not available&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;/tr&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/table&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;
&lt;br /&gt;
===XSLT 2 (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;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;
    &amp;lt;xsl:output method=&amp;quot;xml&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;xsl:element name=&amp;quot;contracts&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:for-each select=&amp;quot;//employee&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:sort select=&amp;quot;contract/@id&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:element name=&amp;quot;contract&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;startDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@startDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;endDate&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@endDate&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:value-of select=&amp;quot;@status&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:element name=&amp;quot;employee&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@id&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:attribute name=&amp;quot;available&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;../@available&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../name&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:copy-of select=&amp;quot;../personalCode&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;&amp;gt;&amp;lt;/xsl:copy-of&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kkilgi</name></author>
	</entry>
</feed>