VRII2018: Difference between revisions
(16 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
* Teet Adamson | * Teet Adamson | ||
* Kaspar Kaal | * Kaspar Kaal | ||
* Rahel Kangur | * Rahel Kangur (lahkunud) | ||
Team Foundation Version Control: https:// | Team Foundation Version Control: https://majutuus.visualstudio.com/MajuTuus | ||
==Analüüs== | ==Analüüs== | ||
Line 16: | Line 16: | ||
neid punktiskaalal hinnata ning anda rendile andjatele selgust rentniku puhul, kas teda usaldada või mitte ja vastupidi. | neid punktiskaalal hinnata ning anda rendile andjatele selgust rentniku puhul, kas teda usaldada või mitte ja vastupidi. | ||
Kuna kinnisvaraturg moodustab väga suure osa majandusest ning inimestel on vaja kohta, kus elada kuid elukoha eest maksmine peaks olema mõistliku hinnaga, usaldusväärne ning võimaldama keskkonda, mis on standardiks vastavas riigis. Erinevatel riikidel on erinevad standardid, nägemused ja visioonid elamispinnast. Tihtipeale on väga suurtes linnades renditurul kriis, olukorda raskendab veelgi kahe osapoole vahelise usalduse leidmine. Samuti tuleb ette rentimisel väga palju "üllatusi" ja möödarääkimisi. Tihtipeale esitatakse rendikuulutuses "arved hinna sees" kuid reaalsuses see nii ei ole. Esinevad ka arusaamatused tubade arvu ja | Kuna kinnisvaraturg moodustab väga suure osa majandusest ning inimestel on vaja kohta, kus elada kuid elukoha eest maksmine peaks olema mõistliku hinnaga, usaldusväärne ning võimaldama keskkonda, mis on standardiks vastavas riigis. Erinevatel riikidel on erinevad standardid, nägemused ja visioonid elamispinnast. Tihtipeale on väga suurtes linnades renditurul kriis, olukorda raskendab veelgi kahe osapoole vahelise usalduse leidmine. Samuti tuleb ette rentimisel väga palju "üllatusi" ja möödarääkimisi. Tihtipeale esitatakse rendikuulutuses "arved hinna sees" kuid reaalsuses see nii ei ole. Esinevad ka arusaamatused tubade arvu ja osapoolte vahelises kokkulepetest kinnipidamises, rendipinna puudustes ning kvaliteedis. Leiame, et olenemata nõudlusest ei peaks kehva kvaliteediga elamispinnad olema väga suurte rendihindadega või vähemalt peegeldama reaalsust koha üle, mida parasjagu renditakse, et aidata inimestel teha kaalutud ja läbimõeldud otsus elamispinna valikul. Samuti leiame, et ausa konkurentsi põhimõttel peavad rendileandjad pakkuma turul elamispindu, mis on määratud kindla standardi järgi ning olema mõistliku hinnaga. | ||
Põhjused miks sellist rakendust oleks vaja on: | Põhjused miks sellist rakendust oleks vaja on: | ||
Line 26: | Line 26: | ||
* petuskeemid korterite renditurul | * petuskeemid korterite renditurul | ||
Järjest kallinev | Järjest kallinev kinnisvaraturg ning linnastumine on pannud noored inimesed, kes tahavad üksi elada keerulisse olukorda, kus rendihinnad on liiga kõrged, | ||
rendile andjatega on raske tingida kuna nõudlus on suur ning tihtipeale ei vasta ka renditavad kohad ootustele ja rendilepingud võivad olla väga eksitavad. | rendile andjatega on raske tingida kuna nõudlus on suur ning tihtipeale ei vasta ka renditavad kohad ootustele ja rendilepingud võivad olla väga eksitavad. | ||
Selleks, et renditurgu | Selleks, et renditurgu ühtustada on tarvis luua süsteem kinnisvaraturul olevate ruumidega ning erinevate hinnangute läbi neid kontrollida ja sel teel ühtlustada turu rendihindu. Selliseks eeskujuks on näiteks | ||
Berliin, Saksamaal, kus renditurg on reglementeeritud (rendihinnad rajoonide kohta on fikseeritud, rendile andjaid ei tohi tegeleda lühiajaliste rendile andmistega nagu | Berliin, Saksamaal, kus renditurg on reglementeeritud (rendihinnad rajoonide kohta on fikseeritud, rendile andjaid ei tohi tegeleda lühiajaliste rendile andmistega nagu | ||
näiteks AirBnB) kuid seda raskendab keeruline bürokraatlik korraldus, mis koosneb kohtumisest, otsustamisest ning taustauuringust ning kogu protsess võib kesta nädal aega. | näiteks AirBnB) kuid seda raskendab keeruline bürokraatlik korraldus, mis koosneb kohtumisest, otsustamisest ning taustauuringust ning kogu protsess võib kesta nädal aega. | ||
Meie projekti idee on koguda andmeid | Meie projekti idee on koguda andmeid hindamise järgi, mis loob rentija ja rendile andja vahelise usalduse. Hinnanguks on punktiskaala, mis arvutatakse kokku eelnevate hinnangutega elamispindadel kuna tänapäeval | ||
on | on normaalne, et kolitakse | ||
1) kehva elukoha tingimuste pärast | 1) kehva elukoha tingimuste pärast või saadakse parema palgaga töökoht ja soovitakse paremaid elutingimusi | ||
2) ei | 2) ei sobi korterikaaslastega | ||
3) ümberkorraldused eluteel | 3) ümberkorraldused eluteel | ||
4) ümberkorraldused rendile andja poolt. Need nimetatuid kriteeriumeid annab hinnata ning anda parema pildi renditavast kohast ning rendile andjast. | 4) ümberkorraldused rendile andja poolt. | ||
Need nimetatuid kriteeriumeid annab hinnata ning anda parema pildi renditavast kohast ning rendile andjast. | |||
Tänapäeval levivad pigem "word of mouth" stiilis arvamused ning hinnangud erinevate korterite ja majade kohta kuid sotsiaalmeedias levib väga palju juhtumeid, kus on ka näiteks | Tänapäeval levivad pigem "word of mouth" stiilis arvamused ning hinnangud erinevate korterite ja majade kohta kuid sotsiaalmeedias levib väga palju juhtumeid, kus on ka näiteks | ||
rendile andja rikkunud põhimõttelisi reegleid. Samuti võib olla ka väga stabiilne rentija olla tüliks naabritele tema käitumise tõttu (öörahu rikkumine, reeglite mitte täitmine) | rendile andja rikkunud põhimõttelisi reegleid. Samuti võib olla ka väga stabiilne rentija olla tüliks naabritele tema käitumise tõttu (öörahu rikkumine, reeglite mitte täitmine) | ||
Projekti ideeks on hõlbustada lepingu | Projekti ideeks on hõlbustada lepingu sõlmimist - aidata rentijal välja valida talle sobiv koht ning aidata rendile andjal valida sobiv kandidaat. | ||
Kasutajad saavad valida endale sobiva renditava pinna, neile sobiva hinna ja nendele sobiva hinnanguga. Kasutaja Hinnangut mõjutavad järgmised faktorid: maksmata arved, kolimiste arv ja põhjused, stabiilsus. Haldaja | Kasutajad saavad valida endale sobiva renditava pinna, neile sobiva hinna ja nendele sobiva hinnanguga. Kasutaja Hinnangut mõjutavad järgmised faktorid: maksmata arved, kolimiste arv ja põhjused, stabiilsus. Haldaja hinnangut mõjutavad järgmised faktorid: elamispinna kvaliteet, elanike arv ühel pinnal ja nende vahetumine, asukoht (mugavused ja infrastruktuur), konkreetsed juhtumid. | ||
Kasutatakse: | Kasutatakse: | ||
Veebiteenus kasutab andmebaasi, mis koosnevad registreeritud kasutajatest. | Veebiteenus kasutab andmebaasi, mis koosnevad registreeritud kasutajatest. Rakenduses kasutaja registreerib end kasutajaks kas "rentijana" või "rendile andjana." Rendile andja saab lisada kuulutuse oma rendile antavast elamispinnast ning rentnikud saavad pinda valida. | ||
Kuidas peaks mõjutama rakendus ühiskonda ja inimesi: | Kuidas peaks mõjutama rakendus ühiskonda ja inimesi: | ||
Line 72: | Line 74: | ||
====Administraator==== | ====Administraator==== | ||
Administraatoril on võimalik kordineerida kogu süsteemi tööd ja anda teistele kasutajatele õigusi(see osa pigem tulevik, sest õiguste osa pole hetkel andmemudelis kirjeldatud) | Administraatoril on võimalik kordineerida kogu süsteemi tööd ja anda teistele kasutajatele õigusi(see osa pigem tulevik, sest õiguste osa pole hetkel andmemudelis kirjeldatud). | ||
===Must-to-have-functonality=== | ===Must-to-have-functonality=== | ||
* Saab luua kasutajaid | * Saab luua kasutajaid | ||
* Registreeritud kasutaja saab lisada kuulutusi või vaadata neid | * Registreeritud kasutaja saab lisada kuulutusi või vaadata neid | ||
* | * Registreeritud kasutaja saab anda hinnanguid | ||
===Nice-to-have-functonality=== | ===Nice-to-have-functonality=== | ||
Line 86: | Line 88: | ||
[[File:UusIdeeVR.png]] | [[File:UusIdeeVR.png]] | ||
==XML== | |||
'''XML''' | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="utf-8" ?> | |||
<apartments> | |||
<apartment id="1" active="true"> | |||
<numberofrooms>3</numberofrooms> | |||
<address> | |||
<city>Tallinn</city> | |||
<street>Pikk</street> | |||
<house>5</house> | |||
<apartmentnumber>13</apartmentnumber> | |||
</address> | |||
<owner id="1" activeuser="true"> | |||
<firstname>Malle</firstname> | |||
<lastname>Kuusk</lastname> | |||
<contacts> | |||
<contact id="1" type="phone" value="32588293"></contact> | |||
<contact id="2" type="email" value="mkuusk@mail.com"></contact> | |||
<contact id="3" type="address"> | |||
<address> | |||
<cityorcounty>Harjumaa</cityorcounty> | |||
<street>Voore</street> | |||
<housenumber>15</housenumber> | |||
<apartmentnumber>12</apartmentnumber> | |||
</address> | |||
</contact> | |||
</contacts> | |||
</owner> | |||
<comment>![CDATA[ no previous problems ]]</comment> | |||
</apartment> | |||
<apartment id="2" active="false"> | |||
<numberofrooms>6</numberofrooms> | |||
<address> | |||
<city>Tartu</city> | |||
<street>Riia</street> | |||
<house>9</house> | |||
<apartmentnumber>9</apartmentnumber> | |||
</address> | |||
<owner id="2" activeuser="true"> | |||
<firstname>Mati</firstname> | |||
<lastname>Soomets</lastname> | |||
<contacts> | |||
<contact id="1" type="phone" value="513948289"></contact> | |||
<contact id="2" type="email" value="kurimati@mail.com"></contact> | |||
<contact id="3" type="address"> | |||
<address> | |||
<cityorcounty>Tallinn</cityorcounty> | |||
<street>Lai</street> | |||
<housenumber>12</housenumber> | |||
<apartmentnumber>11</apartmentnumber> | |||
</address> | |||
</contact> | |||
</contacts> | |||
</owner> | |||
<comment>![CDATA[ leaking roof ]]</comment> | |||
</apartment> | |||
</apartments> | |||
</source> | |||
'''XSD''' | |||
<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="apartments"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="unbounded" name="apartment"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="numberofrooms" type="xs:unsignedByte" /> | |||
<xs:element name="address"> | |||
<xs:complexType> | |||
<xs:all> | |||
<xs:element name="city" type="xs:string" /> | |||
<xs:element name="street" type="xs:string" /> | |||
<xs:element name="house" type="xs:unsignedInt" /> | |||
<xs:element name="apartmentnumber" type="xs:unsignedInt" /> | |||
</xs:all> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="owner"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="firstname" type="xs:string" /> | |||
<xs:element name="lastname" type="xs:string" /> | |||
<xs:element name="contacts"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="unbounded" name="contact"> | |||
<xs:complexType> | |||
<xs:sequence minOccurs="0"> | |||
<xs:element name="address"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="cityorcounty" type="xs:string" /> | |||
<xs:element name="street" type="xs:string" /> | |||
<xs:element name="housenumber" type="xs:unsignedInt" /> | |||
<xs:element name="apartmentnumber" type="xs:unsignedInt" /> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="id" type="xs:unsignedInt" use="required" /> | |||
<xs:attribute name="type" type="xs:string" use="required" /> | |||
<xs:attribute name="value" type="xs:string" use="optional" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="id" type="xs:unsignedInt" use="required" /> | |||
<xs:attribute name="activeuser" type="xs:boolean" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="comment" type="xs:string" /> | |||
</xs:sequence> | |||
<xs:attribute name="id" type="xs:unsignedInt" use="required" /> | |||
<xs:attribute name="active" type="xs:boolean" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:schema> | |||
</source> | |||
==Retsensioonid== | ==Retsensioonid== | ||
Analüüsi retsensioon meeskonna ... tööle: | Analüüsi retsensioon meeskonna ... tööle: |
Latest revision as of 07:12, 17 June 2018
Meeskonnaliikmed
- Teet Adamson
- Kaspar Kaal
- Rahel Kangur (lahkunud)
Team Foundation Version Control: https://majutuus.visualstudio.com/MajuTuus
Analüüs
Kirjeldus
Tegemist on rentijatele ja rentnikele mõeldud veebiteenusega, millega saab hallata kinnisvara rendile andjaid ja rentijaid, sõlmida omavahel lepinguid, neid punktiskaalal hinnata ning anda rendile andjatele selgust rentniku puhul, kas teda usaldada või mitte ja vastupidi.
Kuna kinnisvaraturg moodustab väga suure osa majandusest ning inimestel on vaja kohta, kus elada kuid elukoha eest maksmine peaks olema mõistliku hinnaga, usaldusväärne ning võimaldama keskkonda, mis on standardiks vastavas riigis. Erinevatel riikidel on erinevad standardid, nägemused ja visioonid elamispinnast. Tihtipeale on väga suurtes linnades renditurul kriis, olukorda raskendab veelgi kahe osapoole vahelise usalduse leidmine. Samuti tuleb ette rentimisel väga palju "üllatusi" ja möödarääkimisi. Tihtipeale esitatakse rendikuulutuses "arved hinna sees" kuid reaalsuses see nii ei ole. Esinevad ka arusaamatused tubade arvu ja osapoolte vahelises kokkulepetest kinnipidamises, rendipinna puudustes ning kvaliteedis. Leiame, et olenemata nõudlusest ei peaks kehva kvaliteediga elamispinnad olema väga suurte rendihindadega või vähemalt peegeldama reaalsust koha üle, mida parasjagu renditakse, et aidata inimestel teha kaalutud ja läbimõeldud otsus elamispinna valikul. Samuti leiame, et ausa konkurentsi põhimõttel peavad rendileandjad pakkuma turul elamispindu, mis on määratud kindla standardi järgi ning olema mõistliku hinnaga.
Põhjused miks sellist rakendust oleks vaja on:
- linnastumine
- inimesd eelistavad elada üksi
- vananevad elamispinnad
- kallid rendihinnad
- keeruline protsess lepingute sõlmimisel
- petuskeemid korterite renditurul
Järjest kallinev kinnisvaraturg ning linnastumine on pannud noored inimesed, kes tahavad üksi elada keerulisse olukorda, kus rendihinnad on liiga kõrged, rendile andjatega on raske tingida kuna nõudlus on suur ning tihtipeale ei vasta ka renditavad kohad ootustele ja rendilepingud võivad olla väga eksitavad. Selleks, et renditurgu ühtustada on tarvis luua süsteem kinnisvaraturul olevate ruumidega ning erinevate hinnangute läbi neid kontrollida ja sel teel ühtlustada turu rendihindu. Selliseks eeskujuks on näiteks Berliin, Saksamaal, kus renditurg on reglementeeritud (rendihinnad rajoonide kohta on fikseeritud, rendile andjaid ei tohi tegeleda lühiajaliste rendile andmistega nagu näiteks AirBnB) kuid seda raskendab keeruline bürokraatlik korraldus, mis koosneb kohtumisest, otsustamisest ning taustauuringust ning kogu protsess võib kesta nädal aega. Meie projekti idee on koguda andmeid hindamise järgi, mis loob rentija ja rendile andja vahelise usalduse. Hinnanguks on punktiskaala, mis arvutatakse kokku eelnevate hinnangutega elamispindadel kuna tänapäeval on normaalne, et kolitakse 1) kehva elukoha tingimuste pärast või saadakse parema palgaga töökoht ja soovitakse paremaid elutingimusi 2) ei sobi korterikaaslastega 3) ümberkorraldused eluteel 4) ümberkorraldused rendile andja poolt.
Need nimetatuid kriteeriumeid annab hinnata ning anda parema pildi renditavast kohast ning rendile andjast. Tänapäeval levivad pigem "word of mouth" stiilis arvamused ning hinnangud erinevate korterite ja majade kohta kuid sotsiaalmeedias levib väga palju juhtumeid, kus on ka näiteks rendile andja rikkunud põhimõttelisi reegleid. Samuti võib olla ka väga stabiilne rentija olla tüliks naabritele tema käitumise tõttu (öörahu rikkumine, reeglite mitte täitmine) Projekti ideeks on hõlbustada lepingu sõlmimist - aidata rentijal välja valida talle sobiv koht ning aidata rendile andjal valida sobiv kandidaat. Kasutajad saavad valida endale sobiva renditava pinna, neile sobiva hinna ja nendele sobiva hinnanguga. Kasutaja Hinnangut mõjutavad järgmised faktorid: maksmata arved, kolimiste arv ja põhjused, stabiilsus. Haldaja hinnangut mõjutavad järgmised faktorid: elamispinna kvaliteet, elanike arv ühel pinnal ja nende vahetumine, asukoht (mugavused ja infrastruktuur), konkreetsed juhtumid.
Kasutatakse: Veebiteenus kasutab andmebaasi, mis koosnevad registreeritud kasutajatest. Rakenduses kasutaja registreerib end kasutajaks kas "rentijana" või "rendile andjana." Rendile andja saab lisada kuulutuse oma rendile antavast elamispinnast ning rentnikud saavad pinda valida.
Kuidas peaks mõjutama rakendus ühiskonda ja inimesi:
- Paraneb renditurul pakutavate elamispindade kvaliteet (nö Eurostandardi laiaulatuslikum kasutuselevõtt)
- Rendihindade ühtlustumine
- Adekvaatsemad valikud inimeste poolt
- Püsivam ja stabiilsem elukvaliteet
- Kulude optimeerimine
- Anda võimalus nendele vähestele, kel ei ole võimalik 1/3 palgast säästa
- Kolimise põhjuste tagasiside kasutamine inimese profiili loomisel, mitte selle praegune negatiivne võti krediititausta loomisel
Kasutajad
- Rentijad
- Rendile andjad
- Administraator
Projekti funktsionaalsus
Klient
Klient ehk rendile andja saab lisada oma kuulutust.
Tavakasutaja
Tavakasutaja saab rendipindu vaadata ja valida nende vahel endale sobiv.
Administraator
Administraatoril on võimalik kordineerida kogu süsteemi tööd ja anda teistele kasutajatele õigusi(see osa pigem tulevik, sest õiguste osa pole hetkel andmemudelis kirjeldatud).
Must-to-have-functonality
- Saab luua kasutajaid
- Registreeritud kasutaja saab lisada kuulutusi või vaadata neid
- Registreeritud kasutaja saab anda hinnanguid
Nice-to-have-functonality
- Administraaor kasutajal on rohkem õigusi kui teistel kasutajatel ning ta saab anda teistele kasutajatele õigusi
Andmemudel
XML
XML
<?xml version="1.0" encoding="utf-8" ?>
<apartments>
<apartment id="1" active="true">
<numberofrooms>3</numberofrooms>
<address>
<city>Tallinn</city>
<street>Pikk</street>
<house>5</house>
<apartmentnumber>13</apartmentnumber>
</address>
<owner id="1" activeuser="true">
<firstname>Malle</firstname>
<lastname>Kuusk</lastname>
<contacts>
<contact id="1" type="phone" value="32588293"></contact>
<contact id="2" type="email" value="mkuusk@mail.com"></contact>
<contact id="3" type="address">
<address>
<cityorcounty>Harjumaa</cityorcounty>
<street>Voore</street>
<housenumber>15</housenumber>
<apartmentnumber>12</apartmentnumber>
</address>
</contact>
</contacts>
</owner>
<comment>![CDATA[ no previous problems ]]</comment>
</apartment>
<apartment id="2" active="false">
<numberofrooms>6</numberofrooms>
<address>
<city>Tartu</city>
<street>Riia</street>
<house>9</house>
<apartmentnumber>9</apartmentnumber>
</address>
<owner id="2" activeuser="true">
<firstname>Mati</firstname>
<lastname>Soomets</lastname>
<contacts>
<contact id="1" type="phone" value="513948289"></contact>
<contact id="2" type="email" value="kurimati@mail.com"></contact>
<contact id="3" type="address">
<address>
<cityorcounty>Tallinn</cityorcounty>
<street>Lai</street>
<housenumber>12</housenumber>
<apartmentnumber>11</apartmentnumber>
</address>
</contact>
</contacts>
</owner>
<comment>![CDATA[ leaking roof ]]</comment>
</apartment>
</apartments>
XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="apartments">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="apartment">
<xs:complexType>
<xs:sequence>
<xs:element name="numberofrooms" type="xs:unsignedByte" />
<xs:element name="address">
<xs:complexType>
<xs:all>
<xs:element name="city" type="xs:string" />
<xs:element name="street" type="xs:string" />
<xs:element name="house" type="xs:unsignedInt" />
<xs:element name="apartmentnumber" type="xs:unsignedInt" />
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="owner">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string" />
<xs:element name="lastname" type="xs:string" />
<xs:element name="contacts">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="contact">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="address">
<xs:complexType>
<xs:sequence>
<xs:element name="cityorcounty" type="xs:string" />
<xs:element name="street" type="xs:string" />
<xs:element name="housenumber" type="xs:unsignedInt" />
<xs:element name="apartmentnumber" type="xs:unsignedInt" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt" use="required" />
<xs:attribute name="type" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt" use="required" />
<xs:attribute name="activeuser" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="comment" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt" use="required" />
<xs:attribute name="active" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Retsensioonid
Analüüsi retsensioon meeskonna ... tööle: