zadanie2a.pdf

(543 KB) Pobierz
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>
</PRACOWNIK>
</PRACOWNICY>
</ZESPOL>
<ZESPOL>
<NAZWA>ALGORYTMY</NAZWA>
<PRACOWNICY>
<PRACOWNIK ID_PRAC="p110">
<NAZWISKO>BLAZEWICZ</NAZWISKO><ETAT>PROFESOR</ETAT><PLACA>1350</PLACA>
</PRACOWNIK>
</PRACOWNICY>
</ZESPOL>
<ZESPOL>
<NAZWA>SYSTEMY EKSPERCKIE</NAZWA>
<PRACOWNICY>
<PRACOWNIK ID_PRAC="p230">
<NAZWISKO>HAPKE</NAZWISKO><ETAT>ASYSTENT</ETAT><PLACA>480</PLACA>
</PRACOWNIK>
<PRACOWNIK ID_PRAC="p200">
<NAZWISKO>ZAKRZEWICZ</NAZWISKO><ETAT>STAZYSTA</ETAT><PLACA>208</PLACA>
</PRACOWNIK>
</PRACOWNICY>
</ZESPOL>
<ZESPOL>
<NAZWA>SYSTEMY ROZPROSZONE</NAZWA>
<PRACOWNICY>
<PRACOWNIK ID_PRAC="p220">
<NAZWISKO>KONOPKA</NAZWISKO><ETAT>ASYSTENT</ETAT><PLACA>480</PLACA>
</PRACOWNIK>
<PRACOWNIK ID_PRAC="p190">
<NAZWISKO>MATYSIAK</NAZWISKO><ETAT>ASYSTENT</PLACA><PLACA>371</ETAT>
</PRACOWNIK>
<PRACOWNIK ID_PRAC="p170">
<NAZWISKO>JEZIERSKI</NAZWISKO><ETAT>ASYSTENT</ETAT><PLACA>439,7</PLACA>
</PRACOWNIK>
<PRACOWNIK ID_PRAC="p160">
<NAZWISKO>KOSZLAJDA</NAZWISKO><ETAT>ADIUNKT</ETAT><PLACA>590</PLACA>
</PRACOWNIK>
</PRACOWNICY>
</ZESPOL>
<ZESPOL>
<NAZWA>BADANIA OPERACYJNE</NAZWAZESPOLU>
</ZESPOL>
</ZESPOLY>
</INSTYTUT>
2. Sprawdź, czy plik jest poprawnie wyświetlany przez przeglądarkę. Znajdź błędy w
dokumencie i je napraw.
848175785.029.png 848175785.030.png 848175785.031.png
 
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>
</PRACOWNIK>
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.
848175785.001.png 848175785.002.png 848175785.003.png 848175785.004.png 848175785.005.png
 
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>
<ZESPOL ID="20">
<NAZWA>SYSTEMY ROZPROSZONE</NAZWA><ADRES>PIOTROWO 3A</ADRES>
</ZESPOL>
<ZESPOL ID="30">
<NAZWA>SYSTEMY EKSPERCKIE</NAZWA><ADRES>STRZELECKA 14</ADRES>
</ZESPOL>
<ZESPOL ID="40">
<NAZWA>ALGORYTMY</NAZWA><ADRES>WLODKOWICA 16</ADRES>
</ZESPOL>
<ZESPOL ID="50">
<NAZWA>BADANIA OPERACYJNE</NAZWA><ADRES>MIELZYNSKIEGO 30</ADRES>
</ZESPOL>
</ZESPOLY>
9. Uruchom program Oxygen XML Editor. Stwórz nowy document XML Schema. W
tym celu przejdź do menu File -> New , z dostępnej listy wybierz XML Schema i
kliknij Create . Pojawi się szkielet definicji schematu. Przejdź z trybu edycji
graficznej ( Design ) do trybu edycji tekstowej ( Text na dole ekranu) i zamiast
istniejącej zawartości wstaw poniższy kod. Zapisz plik jako zespoly.xsd .
<?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>
848175785.006.png 848175785.007.png 848175785.008.png 848175785.009.png 848175785.010.png 848175785.011.png 848175785.012.png
 
10. Otwórz plik zespoly.xml w programie Oxygen XML Editor i dodaj 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.xsd">
11. Zwaliduj utworzony dokument. Do tego celu możesz posłużyć się walidatorem na
stronie http://tools.decisionsoft.com/schemaValidate/ lub wykorzystać walidator
wbudowany w narzędzie Oxygen XML Editor (Ctrl + Shift + v).
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>
</ZESPOL>
13. Do schematu dodaj informację o atrybucie CZY_PRACOWNICY. W tym celu
przejdź do graficznej edycji schematu, kliknij prawym przyciskiem myszy (PPM) na
elemencie ZESPOL , wybierz Append child -> Attribute i zmień nazwę utworzonego
atrybutu na CZY_PRACOWNICY. Następnie w sekcji Attributes edytora ustaw dla
tego atrybutu typ logiczny (Type: xs:boolean) . Obejrzyj w trybie edycji tekstu
wygenerowaną definicję elementu.
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 > . W tym celu, w edytorze graficznym kliknij PPM na elemencie
< ZESPOL > , wybierz Insert after -> Element i nazwij element DATA_RAPORTU .
Następnie ustaw typ elementu na xs:date i obejrzyj w trybie edycji tekstu
wygenerowaną definicję elementu.
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.
848175785.013.png 848175785.014.png 848175785.015.png 848175785.016.png 848175785.017.png 848175785.018.png 848175785.019.png 848175785.020.png 848175785.021.png
 
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>
</ZESPOL>
19. Dodaj do schematu definicję nowego znacznika i zwaliduj dokument. W tym celu
kliknij PPM na elemencie ADRES, wybierz Insert after -> Element, nazwij go
EMAIL. Jako typ elementu wybierz [ST - restriction] , a jako typ bazowy
(Base Type) xs:string . Następnie w sekcji Facets edytora, w polu Patterns spróbuj
samemu wpisać wyrażenie regularne sprawdzające poprawność adresu email. Obejrzyj
w trybie edycji tekstu wygenerowaną definicję elementu.
20. Przykładowe wyrażenie regularne sprawdzające poprawność adresu email ma postać
[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. Kliknij PPM na
elemencie < DATA_RAPORTU > , wybierz Insert after -> Element i nazwij go
FORMAT_RAPORTU. Jako typ elementu wybierz [ST - restriction] , a jako
typ bazowy (Base Type) xs:string . Następnie w sekcji Facets edytora, w polu
Enumerations dodaj wartości: txt , pdf oraz html . Obejrzyj w trybie edycji tekstu
wygenerowaną definicję elementu.
23. Jako wartość atrybutu < FORMAT_RAPORTU > wprowadź „doc” i zwaliduj dokument.
Następnie, przywróć poprawną wersję dokumentu.
848175785.022.png 848175785.023.png 848175785.024.png 848175785.025.png 848175785.026.png 848175785.027.png 848175785.028.png
 
Zgłoś jeśli naruszono regulamin