XML-oppgaver
XML-editor
Som alternativ til XMLSpy, går det fint å bruke den Java-baserte Exchanger XML Editor , som kan brukes fritt i ikke-kommersielle omgivelser. Den har støtte for redigering av XSLT- og XML Schema-dokumenter, og kan brukes til transformasjoner og validering mot skjemaer (DTD og XML Schema).
Oppgave 1
Ta følgende XML-fil, som lagrer konfigurasjon av musikkfiler i en mediespiller, som utgangspunkt: music_library.xml (XML)
- Lag et XML Schema-dokument for markeringsspårket som er brukt.
- Lag et XSLT-dokument som transformerer XML-dokumentet til et XHTML-dokument som lister albumene og singlene i musikkbiblioteket og deres ulike spor som en liste i to nivåer. Sorter stigende på utgivelsesår. Ta en titt på XHTML-dokumentet for å se hvordan resultatet av transformasjonen skal bli. Som du kan se, er dataene som trengs fra kildedokumentet: 1) Tittel, artistnavn og utgivelsesår for albumene og singlene og 2) Tittel og spilletid i minutter og sekunder for sporene.
Oppgave 2
Ta følgende XML-dokument med valutakurser som utgangspunkt: currency.xml (XML)
- Lag et XML Schema-dokument for markeringsspråket som er brukt.
- Lag et XSLT-dokument som transformerer XML-dokumentet til et XHTML-dokument som viser valutakursene i en tabell, sortert alfabetisk på den engelske varianten av land. Kolonnene i tabellen skal inneholde: 1) Engelsk navn på land, 2) Valutakoden (tre bokstaver), 3) Veksleenheten, 4) Transfer-kjøpepris og 5) Transfer-salgspris. Tittelen og hovedoverskriften i dokumentet skal være Currency exchange rate med den tre-bokstavers valutakoden for XML-dokumentet i parentes. Hent denne koden fra kildedokumentet i stedet for å «hardkode» den. Resultatdokumentet skal også innehodle et avsnitt med datoen for valutakursene. Ta en titt på XHTML-dokumentet for å se hvordan resultatet av transformasjonen skal bli.
Oppgave 3
Ta følgende XML-dokument med utdrag fra WordNet som utgangspunkt: wordnet.xml (XML)
- Lag et XML Schema-dokument for markeringsspråket som er brukt.
- Lag et XSLT-dokument som transformerer XML-dokumentet til et XHTML-dokument som viser en nummerert liste med et listepunkt for hver synonymgruppe. Hvert listepunkt skal vise alle ordene tilhørende synonymgruppen – uthevet og med komma mellom – samt forklaringen av synonymgruppen (gloss-elementet) etter et kolon. Hvert ord skal ha et bokmerke (XHTML-elementet a med attributtet name) med samme navn som ordet selv. Alle ord i forklaringene som peker til andre definisjoner, er markert med elementet defined_word i XML-filen. Disse skal transformeres til en internlenke som peker til bokmerket med samme navn (XHTML-elementet a med attributtet href, der attributtverdien har tegnet # foran). Ta en titt på XHTML-dokumentet for å se hvordan resultatet av transformasjonen skal bli.
-
(Vanskelig) Navn på bokmerker og lenkemål (henholdsvis attributtene name og href til XHTML-elementet a) kan ikke inneholde ordskillere i gyldig XHTML. Hvis du transformerer direkte, vil du møte dette problemet på ord som chromatic color og total darkness. I resultatdokumentet over er alle ordskillerne derfor erstattet med tegnet _. Forbedre XSLT-dokumentet ditt slik at ditt resultatdokument blir likt (og derfor gyldig XHTML). Vi forutsetter at ordene maksimalt inneholder én ordskiller.
TIPS: Se på bruk av variabler og XPath-funksjonene substring-before og substring-after (slå opp i XPath-spesifikasjonen).
Oppgave 4
Ta følgende XML-dokument med Dublin Core-poster som utgangspunkt: oconnor_dc.xml (XML)
- Lag et XSLT-dokument som transformerer dokumentet til MARCXML etter Library of Congress' anbefalinger i dokumentet Dublin Core/MARC/GILS Crosswalk .
Løsningsforslag
Oppgave 1
- XML Schema: music_library.xsd
- XSLT: music_library.xsl
Oppgave 2
- XML Schema: currency.xsd
- XSLT: currency.xsl
Oppgave 3
- XML Schema: wordnet.xsd
- XSLT: wordnet.xsl
Oppgave 4
- XSLT: oconnor_marc.xsl




