Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Podobne dokumenty
Aplikacje internetowe laboratorium XML, DTD, XSL

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

XML extensible Markup Language. część 3

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1

Wprowadzenie do technologii XML

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Przetwarzanie dokumentów XML za pomocą procesora XSLT (Zajęcia r.

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

METODY REPREZENTACJI INFORMACJI

XML extensible Markup Language. część 6

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 04

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XML extensible Markup Language. część 2

XML extensible Markup Language. część 4

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

XML extensible Markup Language 3

XML materiały dydaktyczne - Kurs Podstawowy XSL - wprowadzenie. XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO).

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

Uradni list Republike Slovenije

Rola języka XML narzędziem

UCHWAŁA NR VII/49/2015 RADY MIASTA PRUSZCZ GDAŃSKI. z dnia 12 maja 2015 r.

Warszawa, dnia 2 marca 2017 r. Poz. 461 ROZPORZĄDZENIE MINISTRA ROZWOJU I FINANSÓW 1) z dnia 27 lutego 2017 r.

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2011/12

XSLT. Patryk Czarnik. Instytut Informatyki UW. XML i nowoczesne technologie zarzadzania treścia 2007/08

Aplikacje WWW - laboratorium

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Dictionaries. <?xml version="1.0" encoding="utf-8"?> <xs:schema attributeformdefault="unqualified" elementformdefault="unqualified"

Laboratorium 7 Blog: dodawanie i edycja wpisów

Wprowadzenie do technologii XML

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2008/09. Instytut Informatyki UW

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2007/08

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

XML extensible Markup Language. część 4

Kurs WWW Język XML, część I

SCHEMAT DOKUMENTÓW OTRZYMYWANYCH Z ZUS ZAWIERAJĄCYCH INFORMACJE ZGROMADZONE W SYSTEMIE INFORMATYCZNYM ZUS

Prezentacja i transformacja

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2008/09. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2008/09 1 / 1

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2011/12. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2011/12 1 / 54

DTD - encje ogólne i parametryczne, przestrzenie nazw

Aplikacje WWW - laboratorium

XML extensible Markup Language. część 4

XML i nowoczesne technologie zarządzania treścią

Aplikacje WWW - laboratorium

D:\DYDAKTYKA\ZAI_ST_NS\2017_18\AWWW_ST\ORGANIZACJA\KOLOKWIUM_01.doc 2017-wrz-30, 13:20 Szczegóły dotyczące kolokwium nr 1

29. Poprawność składniowa i strukturalna dokumentu XML

XML extensible Markup Language. część 8

XML Path Language (XPath)

Prezentacja i transformacja

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

Extensible Markup Language III

XML i nowoczesne metody zarządzania treścią

Wprowadzenie do XML schema

XML i nowoczesne technologie zarządzania treścią

Aplikacje WWW - laboratorium

Aplikacje internetowe. Interfejs użytkownika

<body> <div style="max-width: 900px; margin: 0 auto;">

<xs:element minoccurs="1" name="rok"> <xs:simpletype> <xs:restriction base="xs:gyear">

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Elementy struktur MiCOMP_VAT

XML DTD XML Schema CSS

Podstawy JavaScript ćwiczenia

Katalog książek cz. 2

Laboratorium 1 Wprowadzenie do PHP

Stwórz dokument XML zawierający poniższe informacje. Wykorzystaj atrybuty.

XPath XML Path Language. XSL Extensible Stylesheet Language. Wyrażenia XPath. XPath data model. Location paths. Osie (axes)

Szczegóły dotyczące kolokwium nr 1

SCHEMAT DOKUMENTU POTWIERDZENIA GENEROWANEGO PRZEZ ZUS

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Aplikacje internetowe - laboratorium

Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT

Aplikacje WWW - laboratorium

UCHWAŁA NR XXXVI RADY MIEJSKIEJ W ANDRYCHOWIE. z dnia 20 czerwca 2013 r.

UCHWAŁA NR L/932/13 RADY MIASTA MYSŁOWICE. z dnia 19 grudnia 2013 r.

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Dokument opisuje sposób postępowania prowadzący do wysłania deklaracji VAT, PIT lub CIT drogą elektroniczną za pomocą funkcji systemu ADA modułu FK.

Wprowadzenie do Doctrine ORM

Zaawansowane aplikacje WWW - laboratorium

XML extensible Markup Language. część 3

Pomoc dla systemu WordPress

Dokumentacja Użytkownika Systemu

Danuta ROZPŁOCH-NOWAKOWSKA Strona Moduł 4. Przykład 1. Przykład 2. HTML 4.01 Transitional).

2 Natywne bazy XML Języki zapytań XQuery Źródła 18

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Rodzaje przetwarzania XSLT (1)

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

Modele danych walidacja widoki zorientowane na model

XML i nowoczesne technologie zarządzania treścią

SCHEMAT DOKUMENTÓW OTRZYMYWANYCH Z ZUS ZAWIERAJĄCYCH INFORMACJE ZGROMADZONE W SYSTEMIE INFORMATYCZNYM ZUS

Załącznik Nr 1 do Uchwały Nr XX/356/11 Rady Miasta Gdańska z dnia 24 listopada 2011 r.

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

E.14.1 Tworzenie stron internetowych / Krzysztof T. Czarkowski, Ilona Nowosad. Warszawa, Spis treści

Formatowanie tekstu przy uz yciu stylo w

Transkrypt:

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL Celem ćwiczenia jest stworzenie dokumentu XML, wyposażenie dokumentu w specyfikację struktury (przy użyciu DTD i XML Schema), oraz transformacja dokumentu XML do postaci HTML przy użyciu arkuszy stylów XSL. Do wykonania ćwiczenia potrzebny jest dowolny edytor plików tekstowych oraz przeglądarka internetowa. 1. Stwórz plik pracownicy.xml zawierający informacje o wszystkich zespołach i pracownikach zespołów. Wykorzystaj poniższy kod: <?xml version="1.0" encoding="iso-8859-2"?> <INSTYTUT NAZWA="INSTYTUT INFORMATYKI" ULICA="PIOTROWO 2" KOD="60-965" MIASTO="POZNAN"> <ZESPOLY> <ZESPOL> <NAZWA>ADMINISTRACJA</NAZWA> <PRACOWNICY> <PRACOWNIK ID_PRAC="p180"> <NAZWISKO>MAREK</NAZWISKO><ETAT>SEKRETARKA</ETAT><PLACA>410,2</PLACA> </PRACOWNICY> <ZESPOL> <NAZWA>ALGORYTMY</NAZWA> <PRACOWNICY> <PRACOWNIK ID_PRAC="p110"> <NAZWISKO>BLAZEWICZ</NAZWISKO><ETAT>PROFESOR</ETAT><PLACA>1350</PLACA> </PRACOWNICY> <ZESPOL> <NAZWA>SYSTEMY EKSPERCKIE</NAZWA> <PRACOWNICY> <PRACOWNIK ID_PRAC="p230"> <NAZWISKO>HAPKE</NAZWISKO><ETAT>ASYSTENT</ETAT><PLACA>480</PLACA> <PRACOWNIK ID_PRAC="p200"> <NAZWISKO>ZAKRZEWICZ</NAZWISKO><ETAT>STAZYSTA</ETAT><PLACA>208</PLACA> </PRACOWNICY> <ZESPOL> <NAZWA>SYSTEMY ROZPROSZONE</NAZWA> <PRACOWNICY> <PRACOWNIK ID_PRAC="p220"> <NAZWISKO>KONOPKA</NAZWISKO><ETAT>ASYSTENT</ETAT><PLACA>480</PLACA> <PRACOWNIK ID_PRAC="p190"> <NAZWISKO>MATYSIAK</NAZWISKO><ETAT>ASYSTENT</PLACA><PLACA>371</ETAT> <PRACOWNIK ID_PRAC="p170"> <NAZWISKO>JEZIERSKI</NAZWISKO><ETAT>ASYSTENT</ETAT><PLACA>439,7</PLACA> <PRACOWNIK ID_PRAC="p160"> <NAZWISKO>KOSZLAJDA</NAZWISKO><ETAT>ADIUNKT</ETAT><PLACA>590</PLACA> </PRACOWNICY> <ZESPOL> <NAZWA>BADANIA OPERACYJNE</NAZWAZESPOLU> </ZESPOLY> </INSTYTUT> 2. Sprawdź, czy plik jest poprawnie wyświetlany przez przeglądarkę. Znajdź błędy w dokumencie i je napraw.

3. Stwórz opis DTD (ang. Document Type Definition) struktury danych przechowywanych w pliku pracownicy.xml. W nagłówku pliku pracownicy.xml dodaj poniższy kod: <?xml version="1.0" encoding="iso-8859-2"?> <!DOCTYPE INSTYTUT [ <!ELEMENT INSTYTUT (ZESPOLY)> <!ATTLIST INSTYTUT NAZWA CDATA #REQUIRED ULICA CDATA #IMPLIED KOD CDATA #IMPLIED MIASTO CDATA #FIXED "POZNAN"> <!ELEMENT ZESPOLY (ZESPOL)+> <!ELEMENT ZESPOL (NAZWA,PRACOWNICY?)> <!ELEMENT NAZWA (#PCDATA)> <!ELEMENT PRACOWNICY (PRACOWNIK)+> <!ELEMENT PRACOWNIK (NAZWISKO,ETAT,PLACA)> <!ATTLIST PRACOWNIK ID_PRAC ID #REQUIRED> <!ELEMENT NAZWISKO (#PCDATA)> <!ELEMENT ETAT (#PCDATA)> <!ELEMENT PLACA (#PCDATA)> <!ENTITY szef "DYREKTOR"> ]> <INSTYTUT NAZWA="INSTYTUT INFORMATYKI" > 4. Dodaj do zespołu ADMINISTRACJA nowego pracownika zdefiniowanego jak poniżej i zobacz, jak dokument jest wyświetlany w przeglądarce. Zwróć uwagę na to, w jaki sposób przeglądarka interpretuje encję XML. <PRACOWNIK ID_PRAC="p100"> <NAZWISKO>WEGLARZ</NAZWISKO><ETAT>&szef;</ETAT><PLACA>1730</PLACA> 5. Wykorzystaj walidator http://validator.w3.org do sprawdzenia poprawności swojego pliku pracownicy.xml 6. Pracownikowi ZAKRZEWICZ zmień wartość atrybutu ID_PRAC na "p220" i ponownie zwaliduj dokument. Zapoznaj się z komunikatem o błędzie. Przywróć poprawną wersję dokumentu. 7. Pracownikowi JEZIERSKI usuń znacznik <PLACA>439,7</PLACA> i ponownie zwaliduj dokument. Zapoznaj się z komunikatem o błędzie. Przywróć poprawną wersję dokumentu.

8. Stwórz dokument zespoly.xml posługując się poniższym kodem. Sprawdź, czy dokument jest poprawnie wyświetlany przez przeglądarkę. <?xml version="1.0" encoding="iso-8859-2"?> <ZESPOLY> <ZESPOL ID="10"> <NAZWA>ADMINISTRACJA</NAZWA> <ADRES>PIOTROWO 3A</ADRES> <ZESPOL ID="20"> <NAZWA>SYSTEMY ROZPROSZONE</NAZWA> <ADRES>PIOTROWO 3A</ADRES> <ZESPOL ID="30"> <NAZWA>SYSTEMY EKSPERCKIE</NAZWA> <ADRES>STRZELECKA 14</ADRES> <ZESPOL ID="40"> <NAZWA>ALGORYTMY</NAZWA> <ADRES>WLODKOWICA 16</ADRES> <ZESPOL ID="50"> <NAZWA>BADANIA OPERACYJNE</NAZWA> <ADRES>MIELZYNSKIEGO 30</ADRES> </ZESPOLY> 9. Stwórz dokument zespoly-schema.xml zawierający definicję XML Schema. Posłuż się poniższym kodem: <?xml version="1.0" encoding="iso-8859-2"?> <xs:schema targetnamespace="www.cs.put.poznan.pl" elementformdefault="qualified" attributeformdefault="unqualified" xmlns="www.cs.put.poznan.pl" xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="zespoly"> <xs:annotation> <xs:documentation> Zbior zespolow skladajacych sie na Instytut Informatyki </xs:documentation> </xs:annotation> <xs:complextype> <xs:sequence> <xs:element name="zespol" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <xs:element name="nazwa" type="xs:string"/> <xs:element name="adres" type="xs:string"/> </xs:sequence> <xs:attribute name="id" type="xs:integer" use="required"/> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element> </xs:schema>

10. Dodaj do pliku zespoły deklarację wiążącą ten dokument ze stworzonym właśnie schematem XML. Znacznik początkowy powinien mieć postać: <ZESPOLY xmlns="www.cs.put.poznan.pl" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="www.cs.put.poznan.pl zespoly-schema.xml"> 11. Wykorzystaj walidator http://tools.decisionsoft.com/schemavalidate/ do zwalidowania dokumentu XML i związanego z nim schematu XML. 12. Do znacznika <ZESPOL> reprezentującego zespół BADANIA OPERACYJNE dodaj atrybut informujący, że dany zespół nie zatrudnia pracowników. Jako wartość atrybutu wpisz literały false lub 0. <ZESPOL ID="50" CZY_PRACOWNICY="false"> <NAZWA>BADANIA OPERACYJNE</NAZWA> <ADRES>MIELZYNSKIEGO 30</ADRES> 13. Do schematu dodaj informację o atrybucie CZY_PRACOWNICY. Umieść poniższy kod bezpośrednio za deklaracją atrybutu ID. <xs:attribute name="czy_pracownicy" type="xs:boolean"/> 14. Zwaliduj dokument. Następnie, zmień wartość atrybutu na literał brak i ponów walidację dokumentu. Przywróć poprawną wersję dokumentu. 15. Do dokumentu zespoly.xml dodaj, po liście zespołów, datę wygenerowania raportu. Przed znacznikiem zamykającym </ZESPOLY> wprowadź poniższy kod: <DATA_RAPORTU>2010-01-31</DATA_RAPORTU> </ZESPOLY> 16. Do schematu dodaj definicję atrybutu <DATA_RAPORTU>, po definicji elementu <ZESPOL> umieść w pliku zespoly-schema.xml poniższy kod: <xs:element name="data_raportu" type="xs:date"/> 17. Zwaliduj dokument. Celowo wprowadź błąd do podanej daty, np. zastąp ją datą 31 lutego 2010. Czy walidator znajdzie błąd? Przywróć poprawną formę dokumentu. 18. Do każdego zespołu dodaj znacznik reprezentujący adres e-mail. Przykładowo, zespół SYSTEMY ROZPROSZONE powinien być reprezentowany w pliku zespoly.xml w następujący sposób: <ZESPOL ID="20"> <NAZWA>SYSTEMY ROZPROSZONE</NAZWA> <ADRES>PIOTROWO 3A</ADRES> <EMAIL>systemy.rozproszone@cs.put.poznan.pl</EMAIL>

19. Dodaj do schematu definicję nowego znacznika i zwaliduj dokument. Czy potrafisz znaleźć błąd w wyrażeniu regularnym? <xs:element name="email"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:pattern value="[a-za-z\.]+@([a-za-z0-9]+\.)+"/> </xs:restriction> </xs:simpletype> </xs:element> 20. Popraw wyrażenie regularne do postaci [a-za-z\.]+@([a-za-z0-9]+\.)+[a-za-z]{2,6} 21. Na końcu dokumentu XML, po dacie publikacji raportu, dodaj znacznik przechowujący format raportu. Załóżmy, że raport może przyjmować tylko i wyłącznie formaty: tekstowy, HTML, PDF. <DATA_RAPORTU>2010-01-31</DATA_RAPORTU> <FORMAT_RAPORTU>pdf</FORMAT_RAPORTU> </ZESPOLY> 22. Dodaj do schematu definicję nowego znacznika i zwaliduj dokument. Poniższy kod należy umieścić bezpośrednio po definicji elementu <DATA_RAPORTU>. <xs:element name="format_raportu"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="txt"/> <xs:enumeration value="pdf"/> <xs:enumeration value="html"/> </xs:restriction> </xs:simpletype> </xs:element> 23. Jako wartość atrybutu <FORMAT_RAPORTU> wprowadź doc i zwaliduj dokument. Następnie, przywróć poprawną wersję dokumentu.

24. Stwórz plik transform.xsl zawierający kod XSL służący do transformacji dokumentu pracownicy.xml do postaci HTML. Wypełnij plik następującym kodem: <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:fo="http://www.w3.org/1999/xsl/format"> <xsl:template match="instytut"> <html> <head> <title>lista pracowników Instytutu Informatyki</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:stylesheet> 25. Dopisz do pliku pracownicy.xml powiązanie z arkuszem stylistycznym XSL. Jako drugą linijkę pliku pracownicy.xml umieść następujący kod. Następnie, otwórz plik pracownicy.xml w przeglądarce i zaobserwuj wynik. Przeanalizuj źródło zbudowanej strony HTML. Co się stało ze znacznikami, dla których w arkuszu stylistycznym nie znaleziono reguł? <?xml-stylesheet type="text/xsl" href="transform.xsl"?> 26. Dodaj do arkusza stylistycznego XSL regułę czytającą nazwę instytutu. Odśwież dokument w przeglądarce i zaobserwuj wynik. <xsl:template match="instytut"> <html> <head> <title>lista pracowników Instytutu Informatyki</title> </head> <body> <h1> <xsl:value-of select="@nazwa"/> </h1> <xsl:apply-templates/> </body> </html>

27. Analogicznie, zmodyfikuj szablon dopasowywany do znacznika <INSTYTUT> w taki sposób, aby poprawnie wyświetlić adres i kod instytutu. <xsl:template match="instytut"> <html> <head> <title>lista pracowników Instytutu Informatyki</title> </head> <body> <h1> <xsl:value-of select="@nazwa"/> </h1> <h2> <xsl:value-of select="@ulica"/> </h2> <h2> <xsl:value-of select="@kod"/> <xsl:value-of select="@miasto"/> </h2> <xsl:apply-templates/> </body> </html> 28. Poniżej kodu pocztowego i nazwy miasta dodaj fragment statycznego tekstu: </h2> <xsl:text> PoniŜej znajduje się lista zespołów wraz pracownikami kaŝdego zespołu </xsl:text> 29. Dodaj szablon dopasowujący się do znacznika <ZESPOL> i zaobserwuj działanie szablonu w przeglądarce. <xsl:template match="zespol"> <div class="zespol"> <xsl:number/>.<xsl:value-of select="nazwa"/> <table> <xsl:attribute name="border">1</xsl:attribute> <tr> <th>id</th><th>nazwisko</th><th>etat</th><th>placa</th> </tr> <xsl:apply-templates select="pracownicy"/> </table> </div>

30. Dodaj szablon dopasowujący się do znacznika <PRACOWNIK> i zaobserwuj działanie szablonu w przeglądarce. <xsl:template match="pracownik"> <tr> <td><xsl:value-of select="@id_prac"/></td> <td><xsl:value-of select="nazwisko"/></td> <td><xsl:value-of select="etat"/></td> <td><xsl:value-of select="placa"/></td> </tr> 31. W kolejnym kroku ukryjemy tabelkę dla tych zespołów, które nie zatrudniają żadnych pracowników. Zamiast tabelki pojawi się napis Brak pracowników. Zmodyfikuj szablon dopasowywany do elementu <ZESPOL> w następujący sposób: <xsl:template match="zespol"> <div class="zespol"> <xsl:number/>.<xsl:value-of select="nazwa"/> <xsl:choose> <xsl:when test="pracownicy"> <table> <xsl:attribute name="border">1</xsl:attribute> <tr> <th>id</th><th>nazwisko</th><th>etat</th><th>placa</th> </tr> <xsl:apply-templates select="pracownicy"/> </table> </xsl:when> <xsl:otherwise> <br/><em>brak pracowników</em> </xsl:otherwise> </xsl:choose> </div> 32. Kolejnym krokiem będzie podświetlenie pracowników zatrudnionych na etacie asystenta kolorem błękitnym. Zmodyfikuj szablon dopasowywany do znacznika <PRACOWNIK> w następujący sposób: <xsl:template match="pracownik"> <tr> <xsl:if test="etat='asystent'"> <xsl:attribute name="bgcolor">#addfff</xsl:attribute> </xsl:if> <td><xsl:value-of select="@id_prac"/></td> <td><xsl:value-of select="nazwisko"/></td> <td><xsl:value-of select="etat"/></td> <td><xsl:value-of select="placa"/></td> </tr>

33. W przypadku, gdy ten sam węzeł musi być wielokrotnie przetwarzany przez szablon, można posłużyć się atrybutem MODE w celu kontrolowania kolejności aplikacji szablonów. W tym ćwiczeniu poniżej listy zespołów umieścimy listę asystentów. Zauważ, że wymaga to wielokrotnego odwiedzenia węzłów <PRACOWNIK>, raz w trakcie generowania listy pracowników zespołu, a drugi raz w celu wygenerowania osobnej listy asystentów. Dodaj nowy szablon: <xsl:template match="zespoly" mode="lista_asystentow"> <h3>lista asystentów</h3> <ul> <xsl:for-each select="//pracownik"> <xsl:if test="etat='asystent'"> <li><xsl:value-of select="nazwisko"/></li> </xsl:if> </xsl:for-each> </ul> 34. Sprawdź, czy szablon jest uwzględniany podczas generacji. Dodaj do szablonu dopasowywanego do elementu <INSTYTUT> jawne wywołanie szablonów działających w trybie lista asystentów. <xsl:apply-templates/> <xsl:apply-templates mode="lista_asystentow"/> </body> </html> zadanie opcjonalne 35. Ostatnim krokiem będzie wykorzystanie parsera Xalan-Java. Pobierz parser ze strony http://xml.apache.org/xalan-j/downloads.html. Rozpakuj archiwum do katalogu, w którym prowadzisz ćwiczenie. Dodaj ścieżkę do głównego archiwum parsera do zmiennej systemowej CLASSPATH i wygeneruj wynikowy kod HTML bezpośrednio do pliku. Pełna dokumentacja opcji parsera dostępnych z linii poleceń znajduje się tutaj: http://xml.apache.org/xalan-j/commandline.html C:\> set CLASSPATH=xalan-j_2_7_0/xalan.jar;%CLASSPATH% C:\>java org.apache.xalan.xslt.process -IN pracownicy.xml -XSL transform.xsl -OUT pracownicy.html

Zadanie do samodzielnego wykonania Dany jest poniższy schemat DTD. <?xml version="1.0" encoding="iso-8859-2"?> <!DOCTYPE FILMY [ <!ELEMENT FILMY (FILM)+> <!ELEMENT FILM (TYTUL,PLAKAT,OPIS,OBSADA?)> <!ATTLIST FILM ID_FILMU ID #REQUIRED> <!ELEMENT TYTUL (#PCDATA)> <!ELEMENT PLAKAT (#PCDATA)> <!ELEMENT OPIS (#PCDATA)> <!ELEMENT OBSADA (ROLA)+> <!ELEMENT ROLA (AKTOR)> <!ATTLIST ROLA NAZWA CDATA #IMPLIED TYP (pierwszoplanowa drugoplanowa) "pierwszoplanowa"> <!ELEMENT AKTOR (IMIE,NAZWISKO)> <!ELEMENT IMIE (#PCDATA)> <!ELEMENT NAZWISKO (#PCDATA)> ]> Pole <plakat> zawiera nazwę pliku graficznego z plakatem filmu. Wykorzystując powyższy schemat DTD stwórz plik filmy.xml zawierający listę przynajmniej dwóch filmów, przy czym dla każdego filmu podaj przynajmniej trzy osoby z obsady filmu (w celu pobrania danych o filmie posłuż się serwisem http://www.imdb.com). Upewnij się, że dla każdego filmu zdefiniowałaś(eś) zarówno role pierwszoplanowe, jak i drugoplanowe. Następnie, przygotuj arkusz stylistyczny XSL, który umożliwi transformację dokumentu filmy.xml do postaci dokumentu HTML o strukturze jak poniżej (uwaga: role pierwszoplanowe muszą być wyświetlone czcionką wytłuszczoną): PLAKAT <h1> tutaj tytuł filmu </h1> <p> tutaj opis filmu </p> <h3> obsada </h3> <ul> <li> nazwa roli : imię i nazwisko aktora </li> <li> nazwa roli : imię i nazwisko aktora </li> PLAKAT <h1> tutaj tytuł filmu </h1> <p> tutaj opis filmu </p> <h3> obsada </h3> <ul> <li> nazwa roli : imię i nazwisko aktora </li> <li> nazwa roli : imię i nazwisko aktora </li>