Meeskond Hashtag
From ICO wiki
Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine"
Lehekülg loodud: 08.03.2014
Meeskonna nimi: Hashtag
Liige:
- Jaan Kängsepp, D22
Kodutöö XML osa 8.märts
XML osa täitmiseks võtsin näiteks plaadikogumiku.
XML andmefail
<?xml version="1.0" encoding="utf-8"?> <Plaadid> <Plaat kandja="vinüül" tüüp="stuudio"> <Kaanepilt>http://enos.itcollege.ee/~jkangsep/xml_kodut%f6%f6/pildid/death_magnetic.jpg</Kaanepilt> <Albumi_nimi>Death Magnetic</Albumi_nimi> <Aasta sajand="21" kümnend="0">2008</Aasta> <Kategooria>Heavy metal</Kategooria> <Esitaja>Metallica</Esitaja> <Plaadifirma>Warner Bros.</Plaadifirma> <Plaadifirma>Vertigo</Plaadifirma> <Hind>20€</Hind> <Koosseis> <Liige positsioon="bändiliige"> <Nimi>James Hetfield</Nimi> <Instrument>Vokaal</Instrument> <Instrument>Rütmikitarr</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Lars Ulrich</Nimi> <Instrument>Trummid</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Kirk Hammett</Nimi> <Instrument>Taustavokaal</Instrument> <Instrument>Juhtiv kitarr</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Robert Trujillo</Nimi> <Instrument>Vokaal</Instrument> <Instrument>Basskitarr</Instrument> </Liige> </Koosseis> <Lood> <Lugu järjekorranumber="1"> <Nimi>That Was Just Your Life</Nimi> <Pikkus>7:08</Pikkus> </Lugu> <Lugu järjekorranumber="2"> <Nimi>"The End of the Line"</Nimi> <Pikkus>7:52</Pikkus> </Lugu> <Lugu järjekorranumber="3"> <Nimi> "Broken, Beat and Scarred"</Nimi> <Pikkus>6:25</Pikkus> </Lugu> <Lugu järjekorranumber="4"> <Nimi> "The Day That Never Comes"</Nimi> <Pikkus>7:56</Pikkus> </Lugu> <Lugu järjekorranumber="5"> <Nimi> "All Nightmare Long" </Nimi> <Pikkus>7:58</Pikkus> </Lugu> <Lugu järjekorranumber="6"> <Nimi>"Cyanide"</Nimi> <Pikkus>6:39</Pikkus> </Lugu> <Lugu järjekorranumber="7"> <Nimi> "The Unforgiven III"</Nimi> <Pikkus>7:46</Pikkus> </Lugu> <Lugu järjekorranumber="8"> <Nimi>"The Judas Kiss" </Nimi> <Pikkus>8:00</Pikkus> </Lugu> <Lugu järjekorranumber="9"> <Nimi> "Suicide and Redemption" (Instrumental)</Nimi> <Pikkus>9:57</Pikkus> </Lugu> <Lugu järjekorranumber="10"> <Nimi>"My Apocalypse"</Nimi> <Pikkus>5:01</Pikkus> </Lugu> </Lood> </Plaat> <Plaat kandja="cd" tüüp="stuudio"> <Kaanepilt>http://enos.itcollege.ee/~jkangsep/xml_kodut%f6%f6/pildid/Pendulum_immersion_artwork.jpg</Kaanepilt> <Albumi_nimi>Immersion</Albumi_nimi> <Aasta sajand="21" kümnend="10">2010</Aasta> <Kategooria>Drum and Bass</Kategooria> <Esitaja>Pendulum</Esitaja> <Plaadifirma>Warner Music</Plaadifirma> <Plaadifirma>Earstorm</Plaadifirma> <Plaadifirma>Atlantic Records</Plaadifirma> <Hind>10€</Hind> <Koosseis> <Liige positsioon="bändiliige"> <Nimi>Rob Swire</Nimi> <Instrument>Vokaal</Instrument> <Instrument>Süntesaator</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Gareth McGrillen</Nimi> <Instrument>Taustavokaal</Instrument> <Instrument>Bass</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Paul Harding</Nimi> <Instrument>Disk Jockey</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Ben Mount</Nimi> <Instrument>MC</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Peredur ap Gwynedd</Nimi> <Instrument>Kitarr</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Kevin Sawka</Nimi> <Instrument>Trummid</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Liam Howlett</Nimi> <Instrument>Disk Jockey</Instrument> </Liige> <Liige positsioon="külalisbänd"> <Nimi>In Flames</Nimi> </Liige> <Liige positsioon="külalisliige"> <Nimi>Steven Wilson</Nimi> <Instrument>Kitarr</Instrument> </Liige> </Koosseis> <Lood> <Lugu järjekorranumber="1"> <Nimi>"Genesis"</Nimi> <Pikkus>1:09</Pikkus> </Lugu> <Lugu järjekorranumber="2"> <Nimi>"Salt in the Wounds" </Nimi> <Pikkus>6:38</Pikkus> </Lugu> <Lugu järjekorranumber="3"> <Nimi>"Watercolour" </Nimi> <Pikkus>5:08</Pikkus> </Lugu> <Lugu järjekorranumber="4"> <Nimi>"Set Me on Fire"</Nimi> <Pikkus>5:02</Pikkus> </Lugu> <Lugu järjekorranumber="5"> <Nimi>"Crush"</Nimi> <Pikkus>4:13</Pikkus> </Lugu> <Lugu järjekorranumber="6"> <Nimi>"Under the Waves" </Nimi> <Pikkus>4:55</Pikkus> </Lugu> <Lugu järjekorranumber="7"> <Nimi>"Immunize" (feat. Liam Howlett)</Nimi> <Pikkus>4:36</Pikkus> </Lugu> <Lugu järjekorranumber="8"> <Nimi>"The Island - Pt. I (Dawn)"</Nimi> <Pikkus>5:20</Pikkus> </Lugu> <Lugu järjekorranumber="9"> <Nimi>"The Island - Pt. II (Dusk)" </Nimi> <Pikkus>4:09</Pikkus> </Lugu> <Lugu järjekorranumber="10"> <Nimi>"Comprachicos"</Nimi> <Pikkus>2:48</Pikkus> </Lugu> <Lugu järjekorranumber="11"> <Nimi>"The Vulture"</Nimi> <Pikkus>4:03</Pikkus> </Lugu> <Lugu järjekorranumber="12"> <Nimi>"Witchcraft"</Nimi> <Pikkus>4:12</Pikkus> </Lugu> <Lugu järjekorranumber="13"> <Nimi>"Self vs Self" (feat. In Flames)</Nimi> <Pikkus>4:45</Pikkus> </Lugu> <Lugu järjekorranumber="14"> <Nimi>"The Fountain" (feat. Steven Wilson)</Nimi> <Pikkus>5:00</Pikkus> </Lugu> <Lugu järjekorranumber="15"> <Nimi>"Encoder"</Nimi> <Pikkus>5:21</Pikkus> </Lugu> </Lood> </Plaat> <Plaat kandja="cd" tüüp="stuudio"> <Kaanepilt>http://enos.itcollege.ee/~jkangsep/xml_kodut%f6%f6/pildid/SGFront1.jpg</Kaanepilt> <Albumi_nimi>Sungrazer</Albumi_nimi> <Aasta sajand="21" kümnend="10">2010</Aasta> <Kategooria>Psychedelic jam</Kategooria> <Kategooria>Stoner rock</Kategooria> <Esitaja>Sungrazer</Esitaja> <Plaadifirma>Elektrohasch Records</Plaadifirma> <Hind>13€</Hind> <Koosseis> <Liige positsioon="bändiliige"> <Nimi>Rutger Smeets</Nimi> <Instrument>Vokaal</Instrument> <Instrument>Kitarr</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Hans Mulders</Nimi> <Instrument>Trummid</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Sander Haagmans</Nimi> <Instrument>Vokaal</Instrument> <Instrument>Basskitarr</Instrument> </Liige> </Koosseis> <Lood> <Lugu järjekorranumber="1"> <Nimi>"Zero Zero"</Nimi> <Pikkus>7:46</Pikkus> </Lugu> <Lugu järjekorranumber="2"> <Nimi>"Common Beliver"</Nimi> <Pikkus>5:26</Pikkus> </Lugu> <Lugu järjekorranumber="3"> <Nimi>"If"</Nimi> <Pikkus>7:46</Pikkus> </Lugu> <Lugu järjekorranumber="4"> <Nimi>"Somo"</Nimi> <Pikkus>8:08</Pikkus> </Lugu> <Lugu järjekorranumber="5"> <Nimi>"Mountain Dusk"</Nimi> <Pikkus>7:18</Pikkus> </Lugu> </Lood> </Plaat> <Plaat kandja="cd" tüüp="stuudio"> <Kaanepilt>http://enos.itcollege.ee/~jkangsep/xml_kodut%f6%f6/pildid/R-2226986-1270990616.jpeg</Kaanepilt> <Albumi_nimi>The Road Less Traveled</Albumi_nimi> <Aasta sajand="21" kümnend="0">2006</Aasta> <Kategooria>Hip-Hop</Kategooria> <Esitaja>Unknown Prophets</Esitaja> <Plaadifirma>N/A</Plaadifirma> <Hind>10€</Hind> <Koosseis> <Liige positsioon="bändiliige"> <Nimi>MaD SoN</Nimi> <Instrument>Vokaal</Instrument> </Liige> <Liige positsioon="bändiliige"> <Nimi>Big Jess</Nimi> <Instrument>Vokaal</Instrument> </Liige> <Liige positsioon="külalisliige"> <Nimi>Slug</Nimi> <Instrument>Vokaal</Instrument> </Liige> <Liige positsioon="külalisliige"> <Nimi>Craig D</Nimi> <Instrument>Vokaal</Instrument> </Liige> <Liige positsioon="külalisliige"> <Nimi>Joia Senser</Nimi> <Instrument>Vokaal</Instrument> </Liige> <Liige positsioon="külalisliige"> <Nimi>Stokley Williams</Nimi> <Instrument>Vokaal</Instrument> </Liige> <Liige positsioon="külalisliige"> <Nimi>Samahra</Nimi> <Instrument>Vokaal</Instrument> </Liige> </Koosseis> <Lood> <Lugu järjekorranumber="1"> <Nimi>"Time To Move Forward "</Nimi> <Pikkus>4:44</Pikkus> </Lugu> <Lugu järjekorranumber="2"> <Nimi>"Mr. Mainstream"</Nimi> <Pikkus>4:03</Pikkus> </Lugu> <Lugu järjekorranumber="3"> <Nimi>"Our Time Now"</Nimi> <Pikkus>4:25</Pikkus> </Lugu> <Lugu järjekorranumber="4"> <Nimi>"Not Today "</Nimi> <Pikkus>3:16</Pikkus> </Lugu> <Lugu järjekorranumber="5"> <Nimi> "Let It Loose[Featuring] – Craig D (2), Joia Senser " </Nimi> <Pikkus>3:36</Pikkus> </Lugu> <Lugu järjekorranumber="6"> <Nimi>"The Road Less Traveled"</Nimi> <Pikkus>3:32</Pikkus> </Lugu> <Lugu järjekorranumber="7"> <Nimi>"Dive In"</Nimi> <Pikkus>3:45</Pikkus> </Lugu> <Lugu järjekorranumber="8"> <Nimi>"Lord Please "</Nimi> <Pikkus>4:04</Pikkus> </Lugu> <Lugu järjekorranumber="9"> <Nimi> "Move Mountains[Featuring] – Stokley Williams " </Nimi> <Pikkus>4:47</Pikkus> </Lugu> <Lugu järjekorranumber="10"> <Nimi> "Imagination[Featuring] – Samahra " </Nimi> <Pikkus>3:41</Pikkus> </Lugu> <Lugu järjekorranumber="11"> <Nimi>"This Song "</Nimi> <Pikkus>3:40</Pikkus> </Lugu> <Lugu järjekorranumber="12"> <Nimi>"Waves "</Nimi> <Pikkus>4:18</Pikkus> </Lugu> <Lugu järjekorranumber="13"> <Nimi>"Lost In Time "</Nimi> <Pikkus>4:49</Pikkus> </Lugu> <Lugu järjekorranumber="14"> <Nimi>"Grown "</Nimi> <Pikkus>4:18</Pikkus> </Lugu> <Lugu järjekorranumber="15"> <Nimi>"Against The Grain "</Nimi> <Pikkus>4:04</Pikkus> </Lugu> </Lood> </Plaat> </Plaadid>
XML skeemifail
<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Plaadid"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Plaat"> <xs:complexType> <xs:sequence> <xs:element name="Kaanepilt" type="xs:string" /> <xs:element name="Albumi_nimi" type="xs:string" /> <xs:element name="Aasta"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedShort"> <xs:attribute name="sajand" type="xs:unsignedByte" use="required" /> <xs:attribute name="kümnend" type="xs:unsignedByte" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element maxOccurs="unbounded" name="Kategooria" type="xs:string" /> <xs:element name="Esitaja" type="xs:string" /> <xs:element maxOccurs="unbounded" name="Plaadifirma" type="xs:string" /> <xs:element name="Hind" type="xs:string" /> <xs:element name="Koosseis"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Liige"> <xs:complexType> <xs:sequence> <xs:element name="Nimi" type="xs:string" /> <xs:element minOccurs="0" maxOccurs="unbounded" name="Instrument" type="xs:string" /> </xs:sequence> <xs:attribute name="positsioon" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Lood"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Lugu"> <xs:complexType> <xs:sequence> <xs:element name="Nimi" type="xs:string" /> <xs:element name="Pikkus" type="xs:string" /> </xs:sequence> <xs:attribute name="järjekorranumber" type="xs:unsignedByte" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="kandja" type="xs:string" use="required" /> <xs:attribute name="tüüp" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
XSL fail 1 - Muusikakogumik
Esimene XSL fail kuvab HTML-i,kus loendatakse XML-s olevate plaatide esitajad ja albumi nimed ning võimaldakse näha detailselt albumite lugusid.
<?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="/"> <head> <title>Muusikakogumik</title> </head> <body> <h1>Esitaja ja album</h1> <xsl:for-each select="/Plaadid/Plaat"> <ul> <li> <b> <xsl:value-of select="Esitaja"/> </b> </li> <ul> <li> <a> <xsl:attribute name="href"> <xsl:text>#</xsl:text> <xsl:value-of select="Albumi_nimi"/> </xsl:attribute> <xsl:value-of select="Albumi_nimi"/> </a> </li> </ul> </ul> </xsl:for-each> <h2>Albumi lood</h2> <xsl:for-each select="/Plaadid/Plaat"> <xsl:variable name="Plaat" select="."></xsl:variable> <ul> <li> <a> <xsl:attribute name="id"> <xsl:value-of select="Albumi_nimi"/> </xsl:attribute> <xsl:value-of select="Albumi_nimi"/> </a> <xsl:for-each select="$Plaat/Lood/Lugu"> <ul> <li> <xsl:value-of select="@järjekorranumber"/> : <xsl:value-of select="Nimi"/> - <xsl:value-of select="Pikkus"/> </li> </ul> </xsl:for-each> </li> </ul> </xsl:for-each> </body> </xsl:template> </xsl:stylesheet>
XSL fail 2 - Album art
<?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="/"> <head> <title>Album art</title> </head> <body> <xsl:for-each select="Plaadid/Plaat"> <ul style="list-style-type:none"> <li> <b> <xsl:value-of select="Esitaja"/> <xsl:text>-</xsl:text> <xsl:value-of select="Albumi_nimi"/> </b> </li> <li> <img> <xsl:attribute name="src"> <xsl:value-of select="Kaanepilt"/> </xsl:attribute> <xsl:attribute name="width"> <xsl:text>300</xsl:text> </xsl:attribute> <xsl:attribute name="height"> <xsl:text>300</xsl:text> </xsl:attribute> </img> </li> </ul> </xsl:for-each> </body> </xsl:template> </xsl:stylesheet>
XSL fail 3 - Andmete XML kujul kuvamine
<?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="/"> <xsl:element name="Plaadid"> <xsl:for-each select="/Plaadid/Plaat"> <xsl:variable name="record" select="."/> <xsl:element name="Plaat"> <xsl:attribute name="kandja"> <xsl:value-of select="@kandja"/> </xsl:attribute> <xsl:attribute name="tüüp"> <xsl:value-of select="@tüüp"/> </xsl:attribute> <xsl:element name="Kaanepilt"> <xsl:value-of select="Kaanepilt"/> </xsl:element> <xsl:element name="Albumi_nimi"> <xsl:value-of select="Albumi_nimi"/> </xsl:element> <xsl:element name="Aasta"> <xsl:value-of select="Aasta"/> </xsl:element> <xsl:element name="Kategooria"> <xsl:value-of select="Kategooria"/> </xsl:element> <xsl:element name="Esitaja"> <xsl:value-of select="Esitaja"/> </xsl:element> <xsl:for-each select="$record/Plaadifirma"> <xsl:variable name="rc" select="."/> <xsl:element name="Plaadifirma"> <xsl:value-of select="$rc"/> </xsl:element> </xsl:for-each> <xsl:element name="Hind"> <xsl:value-of select="Hind"/> </xsl:element> <xsl:element name="Koosseis"> <xsl:for-each select="$record/Koosseis/Liige"> <xsl:variable name="member" select="."/> <xsl:element name="Liige"> <xsl:element name="Nimi"> <xsl:value-of select="Nimi"/> </xsl:element> <!--Element Nimi lõpp--> <xsl:for-each select="$member/Instrument"> <xsl:variable name="pill" select="."/> <xsl:element name="Instrument"> <xsl:value-of select="$pill"/> </xsl:element><!--Element Instrument lõpp --> </xsl:for-each> </xsl:element><!--Element Liige lõpp--> </xsl:for-each> </xsl:element> <xsl:element name="Lood"> <xsl:for-each select="$record/Lood/Lugu"> <xsl:variable name="song" select="."/> <xsl:element name="Lugu"> <xsl:element name="Nimi"> <xsl:value-of select="Nimi"/> </xsl:element><!--Element Nimi lõpp--> <xsl:element name="Pikkus"> <xsl:value-of select="Pikkus"/> </xsl:element><!--Element Pikkus lõpp--> </xsl:element><!--Element Lugu lõpp--> </xsl:for-each> </xsl:element><!--Element Lood lõpp--> </xsl:element> </xsl:for-each> </xsl:element> </xsl:template> </xsl:stylesheet>
Veebiteenus
Veebiteenus ja kliendirakendus on ühes solutionis nimega Scope, mille leiab siit
https://onedrive.live.com/?cid=60AA002F219B889A&id=60AA002F219B889A!147
Kasutajajuhend tegemisel ja töölepanek teises arvutis testimisel
Klientrakendus
Logi
- 08.03.2014 - Wiki lehe loomine
- 08.03.2014 - XML andmefail, XML skeemifail, XSL failid