Spis treści

Laboratorium TIiM, XML

FIXME - update, bardziej współczesne, web-oriented

Ćwiczenia

Pliki niezbędne do wykonania ćwiczeń znajdują się w archiwum: lab-xml.zip

Ćwiczenie 1: Podstawowy opis w XML

Proszę stworzyc aplikację XML opisującą bibliotekę według poniższego opisu (przykład podobnej aplikacji przechowującej informacje o kolekcji płyt cd można znaleźć w pliku cdcat-4.xml):

  1. w bibliotece znajduą się książki i czasopisma
  2. każde czasopismo/książka ma tytuł jednego lub więcej autorów, oraz wydawcę
  3. każde czasopisma ma unikalny numer ISSN
  4. każda książka ma unikalny numer ISBN

Należy samemu podjąć decyzję co do wyboru nazw znaczników.

Proszę utworzyć przykładowe dane (dla minimum 3 książek i 4 czasopism) i umieścić w pliku biblio-4.xml

Proszę oglądnąć plik XML w Firefoxie i zwrócić uwagę jak wizualizowane są elementy.

Ćwiczenie 2: Atrybuty

Proszę dodać atrybuty udostępniające następujące informacje:

  1. książka w twardej/miękkiej oprawie,
  2. czasopismo ukazujące się: codziennie, raz na tydzień, 2 razy w miesiącu, raz na miesiąc, co 3 miesiące, co pół roku, co roku,
  3. rok, miesiąc, dzień wydania.

Przykładowe dane z w/w atrybutami prosze umieścic w pliku biblio-5.xml

Przykład opisujący kolekcję płyt dostępny jest w pliku cdcat-5.xml

Ćwiczenie 3: Dobre sformułowanie dokumentu

Proszę oglądnąć strukturę przykłądowego dokumentu cdcat-5.xml (korzystając z narzędzia XMLStarlet):

xmlstarlet el -v cdcat-5.xml

Proszę sprawdzić 'dobre sformułowanie' dokumentu:

xmlstarlet val -w -e cdcat-5.xml

Proszę powtórzyć powyższe ćwiczenie dla pliku biblio-4.xml oraz biblio-5.xml, usuwając ewentulalne błędy w dokumentach.

Ćwiczenie 4: Opis gramatyki przy pomocy DTD i poprawność dokumentu

Proszę sprawdzić poprawność przykłądowych dokumentów:

xmlstarlet val -e -d cdcat-9.dtd cdcat-9.xml
xmlstarlet val -e -d cdcat-9.dtd cdcat-9-e1.xml
xmlstarlet val -e -d cdcat-9.dtd cdcat-9-e2.xml

Czy w dokumentach pojawiają się jakieś niezgodności? Czy są one związane z dobrym sformułowaniem, czy z poprawnością gramatyczną?

Proszę stworzyć opis gramatyczny dokumentu biblio-5.xml w osobnym plku: biblio-5.dtd.

Opis struktury DTD był przedstawiony na wykładzie, można też skorzystać z podręczników takich jak: http://www.w3schools.com/dtd http://www.rpbourret.com/xml/xmldtd.htm

Ćwiczenie 5: Styl CSS dla XML

Proszę skopiować zawartośc pliku biblio-5.xml do biblio-11.xml, następnie należy dodać deklarację użycia arkusza stylów CSS, który ma znajdować się w pliku biblio-11.css.

Proszę utworzyć plik biblio-11.css zawierający odpowiednie dyrektywy CSS umożlwiające wizualizację danych bibliotecznych. Po utworzeniu arkusza CSS należy sprawdzić jego poprawność przy pomocy walidatora CSS W3C.

Przykład CSS dla kolekcji płyt znajduje się w plikach: cdcat-11.xml, cdcat-11.css

Proszę oglądnąć plik biblio-11.xml w Firefoxie, w związku dostępnością stylu powinna być przeprowadzona wizualizacja.

Ćwiczenie 6: Transformacja XML->TXT

Niniejszy przykład obrazuje prostą transformację pliku XML do formatu tekstowego. Proszę zwrócić uwagę na element xsl:output.

Przykład dla kolekcji płyt dostępny jest w plikach: cdcat-10-1.xml, cdcat-10-1.xsl

Transformację najprościej przeprowadzić przy pomocy pakietu Sablotron, albo xsltproc:

sabcmd cdcat-10-1.xsl cdcat-10-1.xml > cdcat-10-1.txt
xsltproc cdcat-10-1.xsl cdcat-10-1.xml > cdcat-10-1.txt

Można sprawdzić, że plik XSL jest poprawnym plikiem XML:

xmlstarlet val cdcat-10-1.xsl

Jak zostanie zwizualizowany plik cdcat-10-1.xml w Firefoksie? Proszę zwrócić uwagę na element <?xml-stylesheet …>

Zadanie dodatkowe (dla zainteresowanych): Proszę napisać podobną transformację dla biblioteki tworząc plik biblio-10-1.xml oraz biblio-10-1.xsl

Ćwiczenie 7: Transformacja XML->XHTML

Poniższy przykład obrazuje prostą transformację pliku XML do formatu XHTML, co pozwala (w tym przypadku na wizualizację przy pomocy tabeli).

Przykład dla kolekcji płyt dostępny jest w plikach: cdcat-10-2.xml, cdcat-10-2.xsl

Transformację najprościej przeprowadzić przy pomocy pakietu Sablotron albo xsltproc, na poziomie plików:

sabcmd cdcat-10-2.xsl cdcat-10-2.xml > cdcat-10-2.html
xsltproc cdcat-10-2.xsl cdcat-10-2.xml > cdcat-10-2.html

Jaki zostanie zwizualizowany plik cdcat-10-2.xml w Firefoksie? Prosze zobaczyć źródło strony.

Zadanie dodatkowe (dla zainteresowanych): Proszę przeprowadzić podobną transformację dla biblioteki.