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.
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.
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>
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.
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.
Plik z chomika:
M.Konieczny
Inne pliki z tego folderu:
MySQL+PHP+phpMyAdmin (prezentacja, przykłady).zip
(5841 KB)
hodowla.rar
(86 KB)
salon seat.rar
(62 KB)
filmoteka.zip
(13 KB)
zadanie_5.zip
(4 KB)
Inne foldery tego chomika:
Analiza danych (Program R)
Automatyczne systemy biblioteczno-informacyjne
Bibliografia
Bibliotekarstwo
Biblioteki cyfrowe
Zgłoś jeśli
naruszono regulamin