Praktikum: XML failidega töötamine (kokkuvõttev praktikum), VR2.4

From EIK wiki

Praktikumi kirjeldus

Enne praktikumi antakse erinevaid ülesandeid. Tudengitel on võimalik teenida boonuspunkte eksamiks, neid lahendades. Ülesanded peavad olema lahendatud tehniliselt teostatud veatult. Iga tudeng tutvustab ülesannet, mida lahendas. Maksimaalselt on võimalik teenida 10% boonust ja tudeng saab ise valida, kas kasutab seda eksami teooria osa jaoks või praktilise.

Ülesanded

Järgnevalt on toodud ülesanded. Neid lisandub juurde kuni neljapäeva hommikuni.

RSS voo lugemiseks mõeldud rakendus

  • Voos olevaid uudised peab olema võimalik filterdada aja ja sõnade järgi.
  • Voos olevaid uudiseid peab olema võimalik sorteerida(ajaliselt ja pealkirja järgi)
  • RSS vooge peab olema võimalik ühendada, kasutades selleks graafilist liidest. Vood peavad säilima ja olema ühendatud ka peale programmi sulgemist Vooge võib olla 1-... Alati tuleb arvestada võimalusega, et me ei soovi enam mõnda voogu näha ning tahame seda eemaldada ;). Kasutada lehti, mis väljastavad RSS vooge, kuna nende ülesehitus on sarnane.
    • Selle jaoks, et vood säiliks, tuleb salvestada need XML'i. XMLi ülesehitus peab olema järgnev:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="vood">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="voog">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="kirjeldus" type="xs:string" />
              <xs:element name="url" />
            </xs:sequence>
            <xs:attribute name="id" type="xs:int" use="required" />
            <xs:attribute name="active" type="xs:boolean" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Inimesed, kes tegelevad ülesande lahendamisega

Kui hakkate ülesannet lahendama, võite siia alla panna oma nime.

Ülesanne Inimene

XMLi ülesehitus on vabalt valitud, kuid peab olema loogiliselt põhjendatav. XML failis hoitakse järgnevaid andmeid inimese kohta: nimi, eesnimi, telefon, skype, kool (Kool, kus inimene õpib), vanus. Soovi korral võib ülesande keerukamaks muutmise jaoks lisada ise veel välju ja koostada veel lisa XML transformatsioone, kui ülesandes nõutud. Tuleb realiseerida järgnevad osad:

  • luua XML-fail, kus hoitakse inimese kohta käivat infot
  • luua skeemifail, mis kirjeldab XML andmefaili ülesehituse
  • luua XML transformatsioon, mis väljastab andmed HTML kujul
    • kõik inimesed
    • inimesed, kelle eesnimi on Agu
    • inimesed, kes õpivad samas koolis
    • inimesed, kes on samavanad

Esitluse ajal paluvad õppejõud tingimusi jooksvalt muuta. Näiteks valida inimesed, kes on vanemad kui 20.

Inimesed, kes tegelevad ülesande lahendamisega

Martin Kosk

Ülesanne praktikumis lahendamiseks

Praktikumi ülesande aluseks on filmide andmebaasi XML. Antud XMLis on kirjeldatud IMDB TOP 250 filmid seisuga 23.02.2012 1:24.

Filmide kohta on piisavalt andmeid, et teha kaks ülesannet:

  • Luua filmide andmebaasi XMLi jaoks XSLT, kus kuvatakse kõik žanrid. Ning iga žanri alla pannakse filmid. Sama filmi võib esineda ühe žanr'i all mitu korda.
  • Luua filmide andmebaasi XMLi jaoks XSLT, kus kuvatakse kõik žanrid. Ning iga žanri alla pannakse filmid. Sama filmi võib esineda ühe žanr'i all ainult üks kord. Tingimus, mille järgi filmid žanride alla määratakse on filmi kõige esimene žanri element. Ehk siis...
...
<Genres>
    <Genre>Crime</Genre> <!-- Kõige esimese Genre elemendi järgi määratakse filmi Žanri alla -->
    <Genre>Drama</Genre>
    <Genre>History</Genre>
</Genres>
...