====== Laboratorium TIiM, XML ====== FIXME - update, bardziej współczesne, web-oriented ===== Ćwiczenia ===== Pliki niezbędne do wykonania ćwiczeń znajdują się w archiwum: {{:pl:tiim: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''): - w bibliotece znajduą się książki i czasopisma - każde czasopismo/książka ma tytuł jednego lub więcej autorów, oraz wydawcę - każde czasopisma ma unikalny numer ISSN - 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: - książka w twardej/miękkiej oprawie, - 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, - 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 '''' **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.