LLL: Difference between revisions
No edit summary |
|||
(49 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
* Joonas Püüa | * Joonas Püüa | ||
* Janno | * Janno Tomingas | ||
* Janek Kople | * Janek Kople | ||
* Roland Krindal | * Roland Krindal | ||
==Idee== | ==Idee== | ||
===Terviseleht=== | |||
====Ülesanne==== | |||
Ülesandeks on see, et leida terviselehele tehniline lahendus, mis oleks kaasaegne ning pilkupüüdev. | |||
===Analüüs=== | |||
====Rakenduse üldkirjeldus==== | |||
Terviseleht on mõeldud inimestele , kes peavad oma tervisest lugu. Samas ka neile , kes seda veel ei tee aga on huvitatud antud teemast. Terviseleht proovib oma kasutajaid teavitada erinevatest tervisega seotud probleemidest ja lahendustest. Selleks lubame kasutajatel postiada huvitavaid artikleid ja muud tervisega seotud inforrmatsiooni. Lisaks sellele pakub terviseleht enesepoolt mõndaasid huvitavaid artikleid. Põhi eesmärk on tuua kokku tervisest lugu pidavad inimesed , kes aitaksid oma nõuannete ariklitega teisigi tervisest lugu pidama panna. | |||
====Problemaatika==== | |||
Kuna see rakendus toetub kasutajate poolt generaaritavale sisule ja tagasisidele ning nende aktiivse kasutuse realiseerimine ühtse ja toimiva kasutajakeskonnale. Peab tagama andmete turve, hea valideerumise ning ressurside, s.t kasutajaliidese ja serveri vahelise andmete, õiges käsitlemises. | |||
Lisaks sellele peab arvestama: | |||
*Standardeid | |||
*Töökindlust erinevates veebilehitsejates | |||
====Funktsionaalsused==== | |||
Rakenduse üldufunktsionaalsus on kasutaja sõbralikus ehk tagada kasutajatele arusaamine sellest, et mis toimub terve rakenduse raames pärast iga tema tehtud käiku. See nõuab korraliku tagaside ja andmete valideerimissüsteemi. | |||
Tervisleht peab võimaldama kasutajatel artikleid postidada ja teiste artikleid lugeda. Artikleid peab saama kategooriatesse jagada, mille järgi on neid hiljem kerge leida. Lisaks kategooria vaatele on üldine “otsing”, mis võimaldab artikleid otsida pealkirja,kuupäeva ja muude parameetrite järgi. Kõik lisatud artiklid paigutatakse arhiivi, kust neid hiljem on võimalik kätte saada. Lisaks on lehekülje adminil võimalik seadistada erinevaid küsitlusi, mille vastused on kõigile avalikud. Ka küsitluste jaoks peaks olema arhiivi, et neid hiljem ka näha saaks. | |||
====Must Have==== | |||
* Uute arktiklite postitamine | |||
* Võimalus artikleid lehtedeks jagada | |||
* Võimalus artikleid kategooriateks jagada | |||
* Võimalus artikleid "sildistada" | |||
** Arhiiv | |||
** Otsing | |||
** Küsitlus | |||
====Nice to Have==== | |||
* Võimalda Terviselehte mugavalt lugeda ka mobiilsete seadmetega, sh uue iPadi ja "vana" - iPhonega, | |||
* sündmuste kalender | |||
** piiratud võimalused partneritele sündmuste kalendrisse sündmuste lisamiseks | |||
* lisada võimalused kasutamaks videolõike, telereklaame jne | |||
* luua (ID kaardiga) kommenteerimisvõimalus ?!!??!?!?!?? | |||
* tekitada väike veebipood | |||
* üle vaadata kogu reklaamide paigutuse, suuruste, võimaluste osa | |||
* luua piiratud ligipääsuga tasuline ala | |||
==XML== | ==XML== | ||
Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. | Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. | ||
Line 16: | Line 50: | ||
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID. | Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID. | ||
===XML (Janno)=== | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | ||
<osakonnad> | |||
<osakond id="1" nimi="Arendus"> | |||
<isikud> | <isikud> | ||
<isik id="01" ametinimetus="arendaja"> | <isik id="01" ametinimetus="arendaja"> | ||
Line 60: | Line 95: | ||
</osakond> | </osakond> | ||
<osakond id="2" nimi="testimine"> | <osakond id="2" nimi="testimine"> | ||
<isik id="04" ametinimetus="testija"> | <isikud> | ||
<isik id="04" ametinimetus="testija"> | |||
<nimi eesnimi="Doris" perenimi="Diivan"/> | |||
<kontaktid> | |||
<telefon>2213451</telefon> | |||
<e-mail>doris.diivan@firma.ee</e-mail> | |||
</kontaktid> | |||
</isik> | |||
<isik id="09" ametinimetus="testija"> | |||
<nimi eesnimi="Illimar" perenimi="Ida"/> | |||
<kontaktid> | |||
<telefon>2223451</telefon> | |||
</ | <e-mail>illimar.ida@firma.ee</e-mail> | ||
</kontaktid> | |||
</isik> | |||
<isik id="12" ametinimetus="testija"> | |||
<nimi eesnimi="Liina" perenimi="Lillakas"/> | |||
<kontaktid> | |||
<telefon>2210451</telefon> | |||
<e-mail>liina.lillakas@firma.ee</e-mail> | |||
</kontaktid> | |||
</isik> | |||
<isik id="13" ametinimetus="testija"> | |||
<nimi eesnimi="Mari" perenimi="Metslane"/> | |||
<kontaktid> | |||
<telefon>2213491</telefon> | |||
</ | <e-mail>metsamari@firma.ee</e-mail> | ||
</ | </kontaktid> | ||
</isik> | |||
</isikud> | |||
</osakond> | </osakond> | ||
<osakond id="3" nimi="turundus"> | <osakond id="3" nimi="turundus"> | ||
<isik id="05" ametinimetus="turundusspetsialist"> | <isikud> | ||
<isik id="05" ametinimetus="turundusspetsialist"> | |||
<nimi eesnimi="Eduard" perenimi="Edev"/> | |||
<kontaktid> | |||
<telefon>3213451</telefon> | |||
<e-mail>eduard.edev@firma.ee</e-mail> | |||
</kontaktid> | |||
</isik> | |||
<isik id="10" ametinimetus="alam-turundusjuht"> | |||
<nimi eesnimi="Jaanus" perenimi="Jalakas"/> | |||
<kontaktid> | |||
<telefon>3243451</telefon> | |||
<e-mail>jaanus.jalakas@firma.ee</e-mail> | |||
</kontaktid> | |||
</isik> | |||
<isik id="11" ametinimetus="kokk"> | |||
<nimi eesnimi="Kallis" perenimi="Kaalikas"/> | |||
<kontaktid> | |||
<telefon>3213459</telefon> | |||
</ | <e-mail>kkaalikas@firma.ee</e-mail> | ||
</ | </kontaktid> | ||
</isik> | |||
</isikud> | |||
</osakond> | </osakond> | ||
<osakond id="4" nimi="HR"> | <osakond id="4" nimi="HR"> | ||
<isik id="06" ametinimetus="personalijuht"> | <isikud> | ||
<isik id="06" ametinimetus="personalijuht"> | |||
<nimi eesnimi="Francis" perenimi="Felicita"/> | |||
<kontaktid> | |||
<telefon>4213451</telefon> | |||
</ | <e-mail>f.felicita@firma.ee</e-mail> | ||
</ | </kontaktid> | ||
</isik> | |||
</isikud> | |||
</osakond> | </osakond> | ||
</osakonnad> | |||
</source> | |||
===XML schema (Joonas)=== | ===XML schema (Joonas)=== | ||
<source lang="xml"> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |||
<xs:element name="osakonnad"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="unbounded" name="osakond"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="isikud"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="unbounded" name="isik"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="nimi"> | |||
<xs:complexType> | |||
<xs:attribute name="eesnimi" type="xs:string" use="required" /> | |||
<xs:attribute name="perenimi" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="kontaktid"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="telefon" type="xs:string" /> | |||
<xs:element name="e-mail" type="xs:string" /> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="id" type="xs:unsignedByte" use="required" /> | |||
<xs:attribute name="ametinimetus" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="id" type="xs:unsignedByte" use="required" /> | |||
<xs:attribute name="nimi" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:schema> | |||
</source> | |||
=== Paar kolm XSL === | |||
==== Esimene (Roland) ==== | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | |||
<xsl:template match="/"> | |||
<html> | |||
<body> | |||
<h2>Osakonnad</h2> | |||
<xsl:for-each select="osakonnad/osakond"> | |||
<table style="border: 1px solid black; width: 500px; margin-bottom: 5px;"> | |||
<tr bgcolor="#9acd32"> | |||
<th>ID</th> | |||
<th>Osakond</th> | |||
</tr> | |||
<tr> | |||
<td> | |||
<xsl:value-of select="@id"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="@nimi"/> | |||
</td> | |||
</tr> | |||
</table> | |||
<table style="border: 1px solid black; width: 500px; margin-bottom: 30px;" bgcolor="#F0F0F0"> | |||
<tr bgcolor="#FF9933"> | |||
<th>ID</th> | |||
<th>Ametinimetus</th> | |||
<th>Eesnimi</th> | |||
<th>Perenimi</th> | |||
<th>Telefon</th> | |||
<th>E-mail</th> | |||
</tr> | |||
<xsl:for-each select="isikud/isik"> | |||
<tr> | |||
<td> | |||
<xsl:value-of select="@id"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="@ametinimetus"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="nimi/@eesnimi"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="nimi/@perenimi"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="kontaktid/telefon"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="kontaktid/e-mail"/> | |||
</td> | |||
</tr> | |||
</xsl:for-each> | |||
</table> | |||
</xsl:for-each> | |||
</body> | |||
</html> | |||
</xsl:template> | |||
</xsl:stylesheet> | |||
</source> | |||
==== Teine (Janno) ==== | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | |||
<xsl:template match="/"> | |||
<html> | |||
<head> | |||
Töötajate nimekiri | |||
</head> | |||
<body> | |||
<h2>Töötajate nimekiri</h2> | |||
<table style="border: 1px solid black; width: 500px; margin-bottom: 30px;" bgcolor="#F0F0F0"> | |||
<tr bgcolor="#FF9933"> | |||
<th>ID</th> | |||
<th>Ametinimetus</th> | |||
<th>Eesnimi</th> | |||
<th>Perenimi</th> | |||
<th>Telefon</th> | |||
<th>E-mail</th> | |||
</tr> | |||
<xsl:for-each select="osakonnad/osakond/isikud/isik"> | |||
<xsl:sort select="@id"/> | |||
<tr> | |||
<td> | |||
<xsl:value-of select="@id"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="@ametinimetus"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="nimi/@eesnimi"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="nimi/@perenimi"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="kontaktid/telefon"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="kontaktid/e-mail"/> | |||
</td> | |||
</tr> | |||
</xsl:for-each> | |||
</table> | |||
</body> | |||
</html> | |||
</xsl:template> | |||
</xsl:stylesheet> | |||
</source> | |||
==== Kolmas (Janek) ==== | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | |||
<xsl:template match="/"> | |||
<html> | |||
<body> | |||
<h2>Töötajate kontaktide nimekiri</h2> | |||
<table style="border: 1px solid black; width: 500px; margin-bottom: 30px;" bgcolor="#FFFFFF"> | |||
<tr bgcolor="#ccFFEE"> | |||
<th>Perenimi</th> | |||
<th>Eesnimi</th> | |||
<th>Telefon</th> | |||
<th>E-mail</th> | |||
<th>Osakond</th> | |||
<th>Ametinimetus</th> | |||
</tr> | |||
<xsl:for-each select="osakonnad/osakond"> | |||
<xsl:variable name="OsakondNimetus" select="@nimi"/> | |||
<xsl:for-each select="isikud/isik"> | |||
<xsl:sort select="nimi/@perenimi" order="ascending"/> | |||
<tr> | |||
<td> | |||
<xsl:value-of select="nimi/@perenimi"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="nimi/@eesnimi"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="kontaktid/telefon"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="kontaktid/e-mail"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="$OsakondNimetus"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="@ametinimetus"/> | |||
</td> | |||
</tr> | |||
</xsl:for-each> | |||
</xsl:for-each> | |||
</table> | |||
</body> | |||
</html> | |||
</xsl:template> | |||
</xsl:stylesheet> | |||
</source> | |||
== Veebiteenus == | |||
http://enos.itcollege.ee/~jtominga/Service.rar | |||
Uuendatud ja täiendatud versioon on koos klientrakendusega gitis. | |||
== Klient == | |||
https://jtominga@github.com/jtominga/Terviseleht.git |
Latest revision as of 09:45, 24 May 2012
Meeskond
- Joonas Püüa
- Janno Tomingas
- Janek Kople
- Roland Krindal
Idee
Terviseleht
Ülesanne
Ülesandeks on see, et leida terviselehele tehniline lahendus, mis oleks kaasaegne ning pilkupüüdev.
Analüüs
Rakenduse üldkirjeldus
Terviseleht on mõeldud inimestele , kes peavad oma tervisest lugu. Samas ka neile , kes seda veel ei tee aga on huvitatud antud teemast. Terviseleht proovib oma kasutajaid teavitada erinevatest tervisega seotud probleemidest ja lahendustest. Selleks lubame kasutajatel postiada huvitavaid artikleid ja muud tervisega seotud inforrmatsiooni. Lisaks sellele pakub terviseleht enesepoolt mõndaasid huvitavaid artikleid. Põhi eesmärk on tuua kokku tervisest lugu pidavad inimesed , kes aitaksid oma nõuannete ariklitega teisigi tervisest lugu pidama panna.
Problemaatika
Kuna see rakendus toetub kasutajate poolt generaaritavale sisule ja tagasisidele ning nende aktiivse kasutuse realiseerimine ühtse ja toimiva kasutajakeskonnale. Peab tagama andmete turve, hea valideerumise ning ressurside, s.t kasutajaliidese ja serveri vahelise andmete, õiges käsitlemises. Lisaks sellele peab arvestama:
- Standardeid
- Töökindlust erinevates veebilehitsejates
Funktsionaalsused
Rakenduse üldufunktsionaalsus on kasutaja sõbralikus ehk tagada kasutajatele arusaamine sellest, et mis toimub terve rakenduse raames pärast iga tema tehtud käiku. See nõuab korraliku tagaside ja andmete valideerimissüsteemi.
Tervisleht peab võimaldama kasutajatel artikleid postidada ja teiste artikleid lugeda. Artikleid peab saama kategooriatesse jagada, mille järgi on neid hiljem kerge leida. Lisaks kategooria vaatele on üldine “otsing”, mis võimaldab artikleid otsida pealkirja,kuupäeva ja muude parameetrite järgi. Kõik lisatud artiklid paigutatakse arhiivi, kust neid hiljem on võimalik kätte saada. Lisaks on lehekülje adminil võimalik seadistada erinevaid küsitlusi, mille vastused on kõigile avalikud. Ka küsitluste jaoks peaks olema arhiivi, et neid hiljem ka näha saaks.
Must Have
- Uute arktiklite postitamine
- Võimalus artikleid lehtedeks jagada
- Võimalus artikleid kategooriateks jagada
- Võimalus artikleid "sildistada"
- Arhiiv
- Otsing
- Küsitlus
Nice to Have
- Võimalda Terviselehte mugavalt lugeda ka mobiilsete seadmetega, sh uue iPadi ja "vana" - iPhonega,
- sündmuste kalender
- piiratud võimalused partneritele sündmuste kalendrisse sündmuste lisamiseks
- lisada võimalused kasutamaks videolõike, telereklaame jne
- luua (ID kaardiga) kommenteerimisvõimalus ?!!??!?!?!??
- tekitada väike veebipood
- üle vaadata kogu reklaamide paigutuse, suuruste, võimaluste osa
- luua piiratud ligipääsuga tasuline ala
XML
Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks.
XML-il peab olema vähemalt 4 loogilist dimensiooni.
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.
XML (Janno)
<?xml version="1.0" encoding="utf-8" ?>
<osakonnad>
<osakond id="1" nimi="Arendus">
<isikud>
<isik id="01" ametinimetus="arendaja">
<nimi eesnimi="Aadu" perenimi="Aas"/>
<kontaktid>
<telefon>1213451</telefon>
<e-mail>aadu.aas@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="02" ametinimetus="arendaja">
<nimi eesnimi="Belle" perenimi="Bastion"/>
<kontaktid>
<telefon>1213452</telefon>
<e-mail>b.b@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="03" ametinimetus="arendaja">
<nimi eesnimi="Calvin" perenimi="Calvin"/>
<kontaktid>
<telefon>1313451</telefon>
<e-mail>calvin.calvin@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="07" ametinimetus="arendaja">
<nimi eesnimi="Georg" perenimi="Gregorius"/>
<kontaktid>
<telefon>1213471</telefon>
<e-mail>georg.gregorius@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="08" ametinimetus="koristaja">
<nimi eesnimi="Heldur" perenimi="Help"/>
<kontaktid>
<telefon>1213410</telefon>
<e-mail>heldur.help@firma.ee</e-mail>
</kontaktid>
</isik>
</isikud>
</osakond>
<osakond id="2" nimi="testimine">
<isikud>
<isik id="04" ametinimetus="testija">
<nimi eesnimi="Doris" perenimi="Diivan"/>
<kontaktid>
<telefon>2213451</telefon>
<e-mail>doris.diivan@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="09" ametinimetus="testija">
<nimi eesnimi="Illimar" perenimi="Ida"/>
<kontaktid>
<telefon>2223451</telefon>
<e-mail>illimar.ida@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="12" ametinimetus="testija">
<nimi eesnimi="Liina" perenimi="Lillakas"/>
<kontaktid>
<telefon>2210451</telefon>
<e-mail>liina.lillakas@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="13" ametinimetus="testija">
<nimi eesnimi="Mari" perenimi="Metslane"/>
<kontaktid>
<telefon>2213491</telefon>
<e-mail>metsamari@firma.ee</e-mail>
</kontaktid>
</isik>
</isikud>
</osakond>
<osakond id="3" nimi="turundus">
<isikud>
<isik id="05" ametinimetus="turundusspetsialist">
<nimi eesnimi="Eduard" perenimi="Edev"/>
<kontaktid>
<telefon>3213451</telefon>
<e-mail>eduard.edev@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="10" ametinimetus="alam-turundusjuht">
<nimi eesnimi="Jaanus" perenimi="Jalakas"/>
<kontaktid>
<telefon>3243451</telefon>
<e-mail>jaanus.jalakas@firma.ee</e-mail>
</kontaktid>
</isik>
<isik id="11" ametinimetus="kokk">
<nimi eesnimi="Kallis" perenimi="Kaalikas"/>
<kontaktid>
<telefon>3213459</telefon>
<e-mail>kkaalikas@firma.ee</e-mail>
</kontaktid>
</isik>
</isikud>
</osakond>
<osakond id="4" nimi="HR">
<isikud>
<isik id="06" ametinimetus="personalijuht">
<nimi eesnimi="Francis" perenimi="Felicita"/>
<kontaktid>
<telefon>4213451</telefon>
<e-mail>f.felicita@firma.ee</e-mail>
</kontaktid>
</isik>
</isikud>
</osakond>
</osakonnad>
XML schema (Joonas)
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="osakonnad">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="osakond">
<xs:complexType>
<xs:sequence>
<xs:element name="isikud">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="isik">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi">
<xs:complexType>
<xs:attribute name="eesnimi" type="xs:string" use="required" />
<xs:attribute name="perenimi" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="kontaktid">
<xs:complexType>
<xs:sequence>
<xs:element name="telefon" type="xs:string" />
<xs:element name="e-mail" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
<xs:attribute name="ametinimetus" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
<xs:attribute name="nimi" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Paar kolm XSL
Esimene (Roland)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Osakonnad</h2>
<xsl:for-each select="osakonnad/osakond">
<table style="border: 1px solid black; width: 500px; margin-bottom: 5px;">
<tr bgcolor="#9acd32">
<th>ID</th>
<th>Osakond</th>
</tr>
<tr>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<xsl:value-of select="@nimi"/>
</td>
</tr>
</table>
<table style="border: 1px solid black; width: 500px; margin-bottom: 30px;" bgcolor="#F0F0F0">
<tr bgcolor="#FF9933">
<th>ID</th>
<th>Ametinimetus</th>
<th>Eesnimi</th>
<th>Perenimi</th>
<th>Telefon</th>
<th>E-mail</th>
</tr>
<xsl:for-each select="isikud/isik">
<tr>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<xsl:value-of select="@ametinimetus"/>
</td>
<td>
<xsl:value-of select="nimi/@eesnimi"/>
</td>
<td>
<xsl:value-of select="nimi/@perenimi"/>
</td>
<td>
<xsl:value-of select="kontaktid/telefon"/>
</td>
<td>
<xsl:value-of select="kontaktid/e-mail"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Teine (Janno)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
Töötajate nimekiri
</head>
<body>
<h2>Töötajate nimekiri</h2>
<table style="border: 1px solid black; width: 500px; margin-bottom: 30px;" bgcolor="#F0F0F0">
<tr bgcolor="#FF9933">
<th>ID</th>
<th>Ametinimetus</th>
<th>Eesnimi</th>
<th>Perenimi</th>
<th>Telefon</th>
<th>E-mail</th>
</tr>
<xsl:for-each select="osakonnad/osakond/isikud/isik">
<xsl:sort select="@id"/>
<tr>
<td>
<xsl:value-of select="@id"/>
</td>
<td>
<xsl:value-of select="@ametinimetus"/>
</td>
<td>
<xsl:value-of select="nimi/@eesnimi"/>
</td>
<td>
<xsl:value-of select="nimi/@perenimi"/>
</td>
<td>
<xsl:value-of select="kontaktid/telefon"/>
</td>
<td>
<xsl:value-of select="kontaktid/e-mail"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Kolmas (Janek)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Töötajate kontaktide nimekiri</h2>
<table style="border: 1px solid black; width: 500px; margin-bottom: 30px;" bgcolor="#FFFFFF">
<tr bgcolor="#ccFFEE">
<th>Perenimi</th>
<th>Eesnimi</th>
<th>Telefon</th>
<th>E-mail</th>
<th>Osakond</th>
<th>Ametinimetus</th>
</tr>
<xsl:for-each select="osakonnad/osakond">
<xsl:variable name="OsakondNimetus" select="@nimi"/>
<xsl:for-each select="isikud/isik">
<xsl:sort select="nimi/@perenimi" order="ascending"/>
<tr>
<td>
<xsl:value-of select="nimi/@perenimi"/>
</td>
<td>
<xsl:value-of select="nimi/@eesnimi"/>
</td>
<td>
<xsl:value-of select="kontaktid/telefon"/>
</td>
<td>
<xsl:value-of select="kontaktid/e-mail"/>
</td>
<td>
<xsl:value-of select="$OsakondNimetus"/>
</td>
<td>
<xsl:value-of select="@ametinimetus"/>
</td>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Veebiteenus
http://enos.itcollege.ee/~jtominga/Service.rar
Uuendatud ja täiendatud versioon on koos klientrakendusega gitis.