Terav C - Võrgurakendused 2 - projektileht
Üldist
Liikmed
- Aleksandr Laidoner
- Oliver Dalberg
- Tarmo Sillajõe
- Andre Tšernikov
Teema valik - Pildiportaal
Valisime teemaks pildiportaali.
Ülesanne 1 - XML
Tähtaeg 15.04.2013
XML - fail
Antud xml'i annab välja Pildiportaali veebiteenus selleks, et kliendid saaks kuvada galerii infot.
<?xml version="1.0" encoding="utf-8"?>
<galeriid>
<galerii id="1" kategooria="Loomad">
<pildid>
<pilt number="1" vaade="suur">
<nimi>Lind</nimi>
<kirjeldus>Ilus roheline lind</kirjeldus>
<formaat>jpg</formaat>
<suurus yhik="MB">2</suurus>
<lisatud>
<paev>01</paev>
<kuu>03</kuu>
<aasta>2012</aasta>
</lisatud>
</pilt>
<pilt number="2" vaade="ikoon">
<nimi>Lind</nimi>
<kirjeldus>Ilus roheline lind</kirjeldus>
<formaat>jpg</formaat>
<suurus yhik="KB">200</suurus>
<lisatud>
<paev>01</paev>
<kuu>03</kuu>
<aasta>2012</aasta>
</lisatud>
</pilt>
<pilt number="3" vaade="suur">
<nimi>Koer</nimi>
<kirjeldus>Minu koer</kirjeldus>
<formaat>jpg</formaat>
<suurus yhik="MB">3</suurus>
<lisatud>
<paev>02</paev>
<kuu>03</kuu>
<aasta>2012</aasta>
</lisatud>
</pilt>
<pilt number="4" vaade="ikoon">
<nimi>Koer</nimi>
<kirjeldus>Minu koer</kirjeldus>
<formaat>png</formaat>
<suurus yhik="KB">230</suurus>
<lisatud>
<paev>02</paev>
<kuu>03</kuu>
<aasta>2012</aasta>
</lisatud>
</pilt>
</pildid>
</galerii>
<galerii id="2" kategooria="Linnad">
<pildid>
<pilt number="1" vaade="suur">
<nimi>Tallinn</nimi>
<kirjeldus>Tallinn kevadel</kirjeldus>
<formaat>jpg</formaat>
<suurus yhik="MB">2</suurus>
<lisatud>
<paev>08</paev>
<kuu>03</kuu>
<aasta>2012</aasta>
</lisatud>
</pilt>
<pilt number="2" vaade="ikoon">
<nimi>Tallinn</nimi>
<kirjeldus>Tallinn kevadel</kirjeldus>
<formaat>raw</formaat>
<suurus yhik="KB">220</suurus>
<lisatud>
<paev>08</paev>
<kuu>03</kuu>
<aasta>2012</aasta>
</lisatud>
</pilt>
</pildid>
</galerii>
</galeriid>
XSL - stiilifailid
Stiilifail 1 - inimsõbralik vaade xml faili sisust
Antud stiilifail vormindab inimsõbralikul tabeli kujul ülaloleva XML'i
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>XML to HTML 1</title>
<style>
.theader { font-style:italic; text-decoration:underline; }
</style>
</head>
<body>
<H1>getPildid sõnumi sisu.</H1>
<xsl:for-each select="/galeriid/galerii">
<h3>
<xsl:text>Galerii nr. </xsl:text>
<xsl:value-of select="@id"/>
<xsl:text> (</xsl:text>
<xsl:value-of select="@kategooria"/>
<xsl:text>)</xsl:text>
</h3>
<table>
<tr class="theader">
<td>pilt.number</td>
<td>pilt.vaade</td>
<td>nimi</td>
<td>kirjeldus</td>
<td>formaat</td>
<td>suurus</td>
</tr>
<xsl:for-each select ="pildid/pilt">
<tr>
<td>
<xsl:value-of select="@number"/>
</td>
<td>
<xsl:value-of select="@vaade"/>
</td>
<td>
<xsl:value-of select="nimi"/>
</td>
<td>
<xsl:value-of select="kirjeldus"/>
</td>
<td>
<xsl:value-of select="formaat"/>
</td>
<td>
<xsl:value-of select="suurus"/>
<xsl:value-of select="suurus/@yhik"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Stiilifail 2 - galerii vaade (ikoonid)
Antud stiilifail vormindab XML'i galeriilaadseks HTML'iks
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<!-- http://www.w3schools.com/css/css_image_gallery.asp -->
<html>
<head>
<title>XML to HTML - Gallery</title>
<style>
div.img
{
margin: 2px;
border: 1px solid #0000ff;
height: auto;
width: auto;
float: left;
text-align: center;
}
div.img img
{
display: inline;
margin: 3px;
border: 1px solid #ffffff;
}
div.img a:hover img {border: 1px solid #0000ff;}
div.desc
{
text-align: center;
font-weight: normal;
width: 120px;
margin: 2px;
}
</style>
</head>
<body>
<xsl:for-each select="/galeriid/galerii">
<xsl:for-each select ="pildid/pilt">
<xsl:if test="@vaade='ikoon'">
<div class="img">
<a target="_blank" href="#">
<img
src="http://fc09.deviantart.net/fs6/i/2005/039/d/c/Not_Available_Icon_by_blacxthornE.jpg"
width="110"
height="90"/>
</a>
<div class="desc">
<xsl:value-of select="kirjeldus"/>
</div>
</div>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Stiilifail 3 - thumbnails xml
Antud stiilifail vormindab xml'i ringi selliselt, et kuvab masinsõbralikul kujul xml'i.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<thumbnails>
<xsl:for-each select="/galeriid/galerii">
<xsl:for-each select ="pildid/pilt">
<xsl:if test="@vaade='ikoon'">
<thumb>
<xsl:attribute name="number">
<xsl:value-of select="@number"/>
</xsl:attribute>
<nimi>
<xsl:value-of select="nimi"/>
</nimi>
<kirjeldus>
<xsl:value-of select="kirjeldus"/>
</kirjeldus>
<url>
<xsl:text>http://pildiportaal.mingidomeen.ee/getThumb.aspx?id=</xsl:text>
<xsl:value-of select="@number"/>
</url>
<lisatud>
<xsl:value-of select="lisatud/aasta"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="lisatud/kuu"/>
<xsl:text>-</xsl:text>
<xsl:value-of select="lisatud/paev"/>
</lisatud>
</thumb>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</thumbnails>
</xsl:template>
</xsl:stylesheet>
Skeemifail
Antud skeemifail mõeldud ülalova ning sellelaadse xml faili valideerimiseks
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="yhikuTyyp">
<xs:restriction base="xs:string">
<xs:enumeration value="KB"/>
<xs:enumeration value="MB"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="vaateTyyp">
<xs:restriction base="xs:string">
<xs:enumeration value="ikoon"/>
<xs:enumeration value="suur"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="kategooriaTyyp">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][a-z]+"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="galeriid">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="galerii">
<xs:complexType>
<xs:sequence>
<xs:element name="pildid">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="200" name="pilt">
<xs:complexType>
<xs:sequence>
<xs:element name="nimi" type="xs:string" />
<xs:element name="kirjeldus" type="xs:string" />
<xs:element name="formaat" type="xs:string" />
<xs:element name="suurus">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:unsignedInt">
<xs:attribute name="yhik" type="yhikuTyyp" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="lisatud">
<xs:complexType>
<xs:sequence>
<xs:element name="paev" type="xs:unsignedByte"/>
<xs:element name="kuu" type="xs:unsignedByte"/>
<xs:element name="aasta" type="xs:unsignedShort"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="number" type="xs:unsignedInt" use="required" />
<xs:attribute name="vaade" type="vaateTyyp" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt" use="required" />
<xs:attribute name="kategooria" type="kategooriaTyyp" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Retsensioonid
Meeskond on loonud xml vormingus faili autode teemal. Xml failil on neli loogilist dimensiooni ning kolmel neist on kasutatud atribuute, mis on enamat, kui lihtsalt id. Lisaks xml failile on loodud ka selle skeemifail xsd vormingus. Xml vormingus olevale failile on loodud 2 xslt faili: esimene neist transformeerib andmed html vormingusse ning tulemuseks on andmetabel, kus iga auto kohta on esitatud mark, mudel värv ja mootori andmed; teine xslt fail muudab algse xml faili vormingut ning välja antakse iga auto kohta margi ja mudeli andmed. Tehtud kodutöö vastab seega väga täpselt esitatud tingimustele.
Esitatud kodutöö kood ei ole kommenteeritud. Samuti ei ole meeskonna wiki lehel ühtegi kommentaari selle kohta, mis on antud XML alamülesande teema või eesmärk. Kuna kodutöö ülesande püstituses neid otseselt nõutud ei ole, siis ei saa seda ka puuduseks lugeda. Kood on sellegipoolest loetav ja arusaadav.
Ka dokumentatsiooni ei ole antud ülesande lahendusele lisatud, aga ka see ei olnud ka nõutud kodutöö ülesande püstituses. Samas, kui see ülesanne on loogiline osa ülejäänud kursuse kodutööde komplektist, siis juba alguses dokumentatsiooniga alustamine, oleks hea tava järgimine.
Puudustena võiks märkida, et meeskonna wiki lehel võiks siiski olla väike kokkuvõte tehtud töö sisust ja eesmärgist. Kuna kood ei ole kommenteeritud ning samuti ei ole lisatud dokumentatsiooni, siis oleks võinud meeskonna wiki lehel olla iga faili juure lause või kaks selgituseks. Kuna tehtud töö eesmärk (kui välja arvata kodutöö ära tegemise fakt) on selgusetu, siis on väga raske hinnata, kas esitatud xml fail on piisav või vajaliku struktuuriga. Ka ei saa sellistes tingimustes hinnata, kas lisatud atribuudid kolmel dimensioonil on asjakohased või mitte.
Meeskond Leemur
Ülesanne 2 - Veebiteenus
Tähtaeg 20.05.2013
Ülesanne 3 - Klient
Tähtaeg 10.06.2013