Meeskond Hashtag

From ICO wiki
Jump to navigationJump to search

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>Elek­tro­hasch Records</Plaadifirma>
    <Hind>13€</Hind>
    <Koosseis>
      <Liige positsioon="bändiliige">
        <Nimi>Rut­ger Smeets</Nimi>
        <Instrument>Vokaal</Instrument>
        <Instrument>Kitarr</Instrument>
      </Liige>
      <Liige positsioon="bändiliige">
        <Nimi>Hans Mul­ders</Nimi>
        <Instrument>Trummid</Instrument>
      </Liige>
      <Liige positsioon="bändiliige">
        <Nimi>Sander Haag­mans</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