Meeskond:MS-TO
MS-TO
Meeskonna liikmed
- Margus Roo
- Silja Saar
- Tõnis Luik
- Ott Kingisepp
Retsensioonid
- XML faili kodutöö retsensioon meeskonnale /* Anonüümsed koodikommentaatorid */ [1]
Käesolevas retsensioonis analüüsitakse meeskonna “Anonüümsed koodikommentaatorid” poolt koostatud XML andme-, skeemi- ning transformatsiooni faile.
XML faili teemaks on filmikogu, mis sisaldab loetelu filmidest, koos informatsiooniga nende žanrite, valmimisaasta, sisu ning näitlejate kohta. Samuti sisaldub failis teemakohane pildimaterjal.
XML faili struktuur on loogilise ülesehitusega. Selles leidub XML-andmetele kohustuslik versioonideklaratsioon ning juurelement. Parema loetavuse huvides on kasutatud treppimist. Filmide sisukirjelduste juures on kasutatud CDATA-t, millega on tagatud, et HTML-is võib koodi kasutada muretsemata, et kirjelduse tekstis sisalduvad märgid võiksid XML faili struktuuri hilisemat kasutamist häirida. Koosatud XML fail valideerub.
Skeemifail on koostatud korrektselt, komplekstüüpe on kasutatud otstarbekalt. Lisaks on kasutatud required-elementi, mis viitab sellele, et meeskond on detailidele piisavat rõhku pannud. Samuti on positiivne minOccurs-i / maxOccurs-i kasutamine, mis näitab skeemifaili head läbimõeldust.
Transformatsiooni faile on esitatud kaks – pisut erineva informatsiooni hulga ning rõhuasetusega. Failide ülesehitus on otstarbekas. Kasutatud on css-i. Samatüübiliste andmete korduste jaoks tsükli loomiseks puhul on kasutatud for-each, select käsklust. Meeskonna poolt esitatud transformatsiooni failid annavad XML struktuuriga loodud sisu edukalt edasi.
Kokkuvõtteks: Meeskonna töö tulemusest väljendub, et meeskonna liikmed oskavad XML- ja XSL failidega töötada. Samuti teostada XML formaadilt HTML formaadile üleminekuid ning valdavad XSL võimalusi. Soovituseks niipalju, et ühtlase stiili hoidmiseks tuleks valida kas kasutada elementide nimedena läbivalt eesti- või inglise keelt.
XML andmefail
XML fail
<?xml version="1.0" encoding="UTF-8" ?> <people xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com people.xsd"> <person id="37303140314" age="41" sex="M"> <fname><![CDATA[Margus]]></fname> <lname><![CDATA[Roo]]></lname> <email><![CDATA[margus@roo.ee]]></email> <phones> <phone status="active" number="+3725148780"/> <phone status="active" number="+3725148781"/> <phone status="unactive" number="+3725148784"/> </phones> </person> <person age="31" sex="M" id="38209064511"> <fname><![CDATA[Tõnis]]></fname> <lname><![CDATA[Luik]]></lname> <email><![CDATA[tonisluik@hotmail.com]]></email> <phones> <phone status="active" number="+3725148786"/> <phone status="active" number="+3725148787"/> <phone status="unactive" number="+3725148788"/> </phones> </person> <person age="32" sex="F" id="48209064522"> <fname><![CDATA[Silja]]></fname> <lname><![CDATA[Saar]]></lname> <email><![CDATA[silja.saar@live.com]]></email> <phones> <phone status="active" number="+3725148111"/> <phone status="active" number="+3725148222"/> <phone status="unactive" number="+3725148333"/> </phones> </person> <person age="32" sex="M" id="38209164533"> <fname><![CDATA[Ott]]></fname> <lname><![CDATA[Kingisepp]]></lname> <email><![CDATA[ott.kingisepp@gmail.com]]></email> <phones> <phone status="active" number="+3725118711"/> <phone status="active" number="+3725128722"/> <phone status="unactive" number="+3725128733"/> </phones> </person> </people>
XML skeemifail
<?xml version = "1.0" encoding = "UTF-8"?> <xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"> <xsd:element name = "people"> <xsd:complexType> <xsd:sequence> <xsd:element ref = "person " maxOccurs = "unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="email" type="xs:string"/> <xs:element name="phone"> <xs:complexType> <xs:sequence> <xs:element name="number" type="xs:string"/> </xs:sequence> <xs:attribute name="status " type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:int" use="required"/> <xs:attribute name="age" type="xs:int" use="required"/> <xs:attribute name="sex" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:schema>
XSLT failid
HTML [2]
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/" > <htm> <head> <title>Persons database</title> </head> <body> <xsl:for-each select="people/person"> <p><xsl:value-of select="concat(position(),' - ',fname,' ',lname)"/></p> <p>ID: <xsl:value-of select="@id"/></p> <p>Age: <xsl:value-of select="@age"/></p> <p>Sex: <xsl:value-of select="@sex"/></p> <p>Phones</p> <xsl:for-each select="phones/phone"> <p><xsl:value-of select="@number"/></p> </xsl:for-each> <hr/> </xsl:for-each> </body> </htm> </xsl:template> </xsl:stylesheet>
HTML 2 [3]
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/" > <htm> <head> <title>Persons database</title> </head> <body> <h2> Meesterahvad </h2> <table border='1'> <tr bgcolor="#BFBFBF"> <th>Eesnimi</th> <th>Perenimi</th> <th>Sugu</th> </tr> <xsl:for-each select="/people/person[starts-with(@id, '3')]"> <xsl:sort select="lname" order="ascending" /> <tr> <td><xsl:value-of select="fname"/></td> <td><xsl:value-of select="lname"/></td> <td><xsl:value-of select="@sex"/></td> </tr> </xsl:for-each> </table> </body> </htm> </xsl:template> </xsl:stylesheet>
Veebiteenuse analüüs
Teenus võimaldab hallata sõidupäeviku andmebaasi. Samuti kontrollib teenus kasutaja õigust teenust kasutada:
- Kas kasutaja ja tema salasõna ühtivad
- Hoiab kasutaja tegevuste kohta statistikat
- Kasutaja tegi ühe CRUD tegevustest
Veebiteenus pakub SOAP tüüpi WSDL kirjeldusfailiga tutvustatud teenuseid, millede kaudu on võimalik pöörduda C# keeles koostatud objektide poole. Objektid pakuvad CRUD meetodeid objektile: Company, User, Car, Usage, BindUserCarCompany, Usage, ServiceUser. Vastavate objektide atribuutid salvestatakse andmebaasi.
Olemid
Company
- attributes: id, name, created, modified
- methods: add, modify, delete
Car
- attributes: id, name, created, modified
- methods: add, modify, delete
User
- attributes: id, name, created, modified
- methods: add, modify, delete
Usage
- attributes: id, name, created, modified
- methods: add, modify, delete
BindUserCarCompanyUsage
- attributes: user, car, company, usage, created, modified
- methods: add, modify, delete
ServiceUser
Tuleneb nõudest kasutajate halduse ja piirangute haldamisest
- attributes: id, username, password, maxAllowedAccess, accessCounter, created, modified
- methods:add, modify, delete
Antud iteratsiooni tulemusena tekib:
- Kirjeldatud veebiteenuse pöördumispunkt
- WSDL
- C# keeles realiseeritud CRUD meetodid olemitele
- Admebaas olemite atribuutide hoidmiseks
Veebiteenus
Klientrakendus
Projekti dokumentatsioon
Projekti dokumentatsioon [4] sisaldab nii veebiteenuse kui klientrakenduse funktsionaalsuse ja arendusprotsessi kirjeldust ning kasutajajuhendit.