Technologie

25
Technologie Technologie mgr inż. Tomasz Węgliński mgr inż. Tomasz Węgliński email: email: [email protected] www: www: http:// www.tweglinski.pl Łódź, 8 października 2012 rok Łódź, 8 października 2012 rok

description

Łódź, 8 października 2012 roku. Technologie. mgr inż. Tomasz Węgliński email: [email protected] www: http://www.tweglinski.pl. WYKŁAD 2. DTD i przestrzenie nazw. 2/25. Co to jest DTD?. - PowerPoint PPT Presentation

Transcript of Technologie

Page 1: Technologie

TechnologieTechnologiemgr inż. Tomasz Węglińskimgr inż. Tomasz Węgliński

email: email: [email protected]

www: www: http://www.tweglinski.pl

Łódź, 8 października 2012 rokuŁódź, 8 października 2012 roku

Page 2: Technologie

WYKŁAD 2WYKŁAD 2

DTD DTD i przestrzenie nazwi przestrzenie nazw

2/25

Page 3: Technologie

Wykład 2: DTD i przestrzenie nazw

Co to jest Co to jest DTD?DTD?

DTD (ang. Document Type Definition) opisuje formalną strukturę dokumentu XML – stanowi jego gramatykę.

Reguły zawarte w pliku DTD m.in.:

a) definiują elementy (np. nazwę elementu i miejsce występowania)

b) charakteryzują typy danych elementówc) określają liczbę wystąpień elementud) określają sposoby zagnieżdżeń – tzw. hierarchiczną strukturę

dokumentu

Dokument XML spełniający wszystkie (!) reguły zawarte w DTD to dokument poprawny strukturalnie (ang. valid document).

Warunkiem koniecznym poprawności strukturalnej dokumentu XML jest oczywiście jego poprawność składniowa (ang. well-formed).

Reguły zawarte w plikach DTD są wzorem na zbudowanie poprawnej struktury dokumentu XML.

3/25

Page 4: Technologie

Co to jest Co to jest DTD?DTD?

Poprawność strukturalną dokumentu zapewniamy dzięki:

poprawności składniowej poprawnym definicjom typu dokumentu (DTD) umieszczonym na początku dokumentu strukturze elementów zgodnej z DTD

Rys 1. Proces sprawdzania poprawności strukturalnej

Wykład 2: DTD i przestrzenie nazw

Dokument XML

DTD

Parser

Dokument poprawny

strukturalnie

Dokument niepoprawnystrukturalnie

4/25

Page 5: Technologie

Cechy DTDCechy DTD Dlaczego stosujemy DTD:Dlaczego stosujemy DTD:

uniknięcie błędów już w fazie tworzenia dokumentu XML

wymienność informacji (EDI – ang. Electronic Data Interchange)

możliwość konwersji danych na inny format

możliwość napisania programów ułatwiających tworzenie dokumentów XML o określonej strukturze

pojedynczy plik DTD może być używany wielokrotnie

tworzenie poprawnych deklaracji DTD jest trudniejsze niż tworzenie dokumentów XML należy od początku dobrze zaprojektować dokument DTD

DTD ma mniejsze możliwości niż XML Schema

Wykład 2: DTD i przestrzenie nazw 5/25

Należy pamiętać, że:Należy pamiętać, że:

Page 6: Technologie

Struktura Struktura DTDDTD DTD wewnętrzneDTD wewnętrzne

- składa się z wielu deklaracji umieszczonych na początku pliku (po deklaracji typu dokumentu <?xml … ?>)

- taka deklaracja musi zostać przetworzona przez parser XML

deklaracja XML

deklaracja typu dokumentu

ciało dokumentu

korzeń dokumentu korzeń dokumentu XML (!)XML (!)

Wykład 2: DTD i przestrzenie nazw 6/25

Page 7: Technologie

Struktura Struktura DTDDTD DTD zewnętrzneDTD zewnętrzne

- dokument XML zawiera odwołanie do zewnętrznego DTD umieszczonego w osobnym pliku (po deklaracji typu dokumentu <?xml … ?>)

- zewnętrzne DTD nie musi (!) zostać przetworzone przez parser XML

deklaracja XML

odwołanie do zewnętrznego DTD

ciało dokumentu

deklaracje DTDw zewnętrznym pliku

Czego brakuje??Czego brakuje??

Wykład 2: DTD i przestrzenie nazw 7/25

Page 8: Technologie

Struktura Struktura DTDDTD

DTD zewnętrzne może być:

prywatneprywatne

„nasze własne”

publiczne „ogólnie przyjęte”

Przykład odwołania do prywatnego DTD:

zwróć uwagę na parametr SYSTEM

parametr SYSTEM zawiera względny lub bezwzględny adres URI do naszego pliku DTD

Wykład 2: DTD i przestrzenie nazw 8/25

Page 9: Technologie

Struktura Struktura DTDDTD

DTD zewnętrzne może być:

prywatne

„nasze własne”

publicznepubliczne „ogólnie przyjęte”

Przykład odwołania do publicznego DTD:

to już wiem to się domyślam

Gdzie ja to widziałem… ? Gdzie ja to widziałem… ?

Wykład 2: DTD i przestrzenie nazw 9/25

Page 10: Technologie

Struktura Struktura DTDDTD

znak „+” lub „-” -- „+” oznacza standardowe DTD, „-” oznacza DTD nie będące powszechnym standardem

nazwa odpowiedzialnej osoby, grupy osób lub organizacji

typ dokumentu i nr wersji

język

Parametr FPI (ang. Formal Public Identifier) zawiera 4 elementy oddzielone znakiem „//”:

Wykład 2: DTD i przestrzenie nazw 10/25

Page 11: Technologie

Struktura Struktura DTDDTD

Ważne:Ważne:

Zewnętrzne oraz wewnętrzne deklaracje DTD można łączyć (!)

Trzeba jednak pamiętać, że w przypadku wystąpienia Trzeba jednak pamiętać, że w przypadku wystąpienia dwóch identycznychdwóch identycznych deklaracji elementów, atrybutów itp., deklaracji elementów, atrybutów itp.,

pierwszeństwo ma deklaracja pierwszeństwo ma deklaracja wewnętrzna (!)wewnętrzna (!)

deklaracja wewnętrzna

deklaracja zewnętrzna

Wykład 2: DTD i przestrzenie nazw 11/25

Page 12: Technologie

DeklaracjaDeklaracjaelementuelementu

Deklaracja elementu składa się z trzech części:

słowa kluczowego ELEMENT; nazwy elementu; słowa lub grupy definiującej zawartość.

Dopuszczalna zawartość elementu:

(#PCDATA) – dowolna zawartość tekstowa EMPTY – element pusty ANY – dowolna zawartość (pusta lub nie)

Uwaga: W jednym DTD nie można powtórzyć deklaracji tego samego elementu (!)

Wykład 2: DTD i przestrzenie nazw 12/25

Page 13: Technologie

DeklaracjaDeklaracjaelementuelementu

Przykład deklaracji elementu:

- w języku XML (w ramach DTD) nie możemy deklarować innej niż tekstowa zawartości (np. daty, czasu, liczby itp.)

- (#PCDATA) musi być w nawiasach okrągłych

- Nie tylko EMPTY może być puste, także (#PCDATA)

- Deklaracja ANY określa jedynie nazwę elementu (z dowolną treścią)

Wykład 2: DTD i przestrzenie nazw 13/25

Page 14: Technologie

DeklaracjaDeklaracjaelementuelementu

Do bardziej szczegółowego scharakteryzowania elementów, służy model grupy lub inaczej model elementowy.

Element <wydzial> składa sięz dokładnie jednego podelementu

Element <dziekan> jest jedynymdzieckiem (podelementem)

elementu <wydzial>

Deklarację więcej niż jednego podelementu możemy zorganizować na dwa sposoby:

sekwencyjnysekwencyjny wyboruwyboru

Wykład 2: DTD i przestrzenie nazw 14/25

Page 15: Technologie

DeklaracjaDeklaracjaelementuelementu

Sekwencja elementówSekwencja elementów

Wybór elementówWybór elementów

Połączenie sekwencji i wyboruPołączenie sekwencji i wyboru

każdy z elementów musi się pojawić w podanej kolejności

wystąpi tylko jeden z wymienionych elementów

po pierwszych trzech elementach,wystąpi element <message> lub <body>

Wykład 2: DTD i przestrzenie nazw 15/25

Page 16: Technologie

DeklaracjaDeklaracjaelementuelementu

Wskaźniki liczby wystąpieńWskaźniki liczby wystąpień (ang. quantity indicators) określają dozwoloną liczbę wystąpień danego elementu w dokumencie XML.

WskaźnikWskaźnik ZnaczenieZnaczenie

element musi wystąpić dokładnie jeden raz?? element może, ale nie musi wystąpić; nie może się powtarzać++ element musi wystąpić, może się powtarzać** element może, ale nie musi wystąpić; może się powtarzać

Istnieje również możliwość stosowania operatorów dla grup elementów

PrzykładyPrzykłady

Wykład 2: DTD i przestrzenie nazw 16/25

Page 17: Technologie

DeklaracjaDeklaracjaelementuelementu

Modele zawartości elementu:Modele zawartości elementu:

zawartość tekstowa (ang. text content)

zawartość elementowa (ang. element content)

zawartość mieszana (ang. mixed content)

Jak zadeklarować element posiadający zarówno treść jak i inne elementy?Jak zadeklarować element posiadający zarówno treść jak i inne elementy?

Jedyną (!) słuszną drogą dla osiągnięcia tego celu jest użycie operatora **

Wykład 2: DTD i przestrzenie nazw 17/25

Page 18: Technologie

DeklaracjeDeklaracjeatrybutówatrybutów

Deklaracje atrybutówDeklaracje atrybutów

Wszystkie atrybuty umieszczamy w jednej deklaracji listy atrybutów; Deklaracja zaczyna się od słowa ATTLIST i nazwy elementu; Reszta deklaracji to tzw. definicja atrybutu (ang. attribute definition).

przykład deklaracji DTD

zastosowanie w XML

W przykładzie:

element-name payment attribute-name type attribute-type CDATA default-value „check”

Tu może być różnie…Tu może być różnie…

Wykład 2: DTD i przestrzenie nazw 18/25

Page 19: Technologie

DeklaracjeDeklaracjeatrybutówatrybutów

Typy atrybutów:Typy atrybutów:

Wartość domyślna lub konieczność wystąpienia atrybutu:Wartość domyślna lub konieczność wystąpienia atrybutu:

Wykład 2: DTD i przestrzenie nazw 19/25

Page 20: Technologie

DeklaracjeDeklaracjeatrybutówatrybutów

Typy i wartości domyślne atrybutów Typy i wartości domyślne atrybutów (zaawansowany przykład)

Wykład 2: DTD i przestrzenie nazw 20/25

Page 21: Technologie

PrzestrzeniePrzestrzenienazwnazw

Wykład 2: DTD i przestrzenie nazw

Dokument XML może zawierać elementy i atrybuty zdefiniowane w innych językach znaczników o różnych DTD, np. HTML.

Do tego celu służą tzw. przestrzenie nazwprzestrzenie nazw (ang. namespaces).

Elementy i atrybuty z różnych przestrzeni są rozróżniane poprzez prefix dodany do nazwy własnej, oddzielony dwukropkiem:

prefix_przestrzeni: nazwa_z_przestrzeni

W dokumencie XML należy przyporządkować prefix do konkretnego języka (np. konkretnego DTD). Służy do tego atrybut xmlns:

treść traktowana jako paragraf w języku HTML

Mówimy, że sekwencja ta nadaje prefix h dla przestrzeni nazw języka HTML

21/25

Page 22: Technologie

PrzestrzeniePrzestrzenienazwnazw

Wykład 2: DTD i przestrzenie nazw

Ze wskazanej przestrzeni nazw można korzystać wiele razy, ale tylko w elemencie (i podelementach) w którym została zadeklarowana.

Oprócz nazw z innych przestrzeni, można oczywiście w jednym dokumencie XML korzystać także z własnych nazw.

Istnieje również możliwość zadeklarowania kilku różnych języków, czyli np. dwóch różnych przestrzeni nazw:

Możemy także deklarować tzw. domyślną przestrzeń nazw (ang. default namespace):

22/25

Page 23: Technologie

JednostkiJednostki(encje)(encje)

Wykład 2: DTD i przestrzenie nazw

Jednostki Jednostki (encje)(encje)

umożliwiają nazywanie fragmentów języka XML; są deklarowane tylko w DTD dzielą się na jednostki ogólne oraz parametryczne oba typy jednostek mogą być wewnętrzne lub zewnętrzne

Jednostki ogólne wewnętrzne:

Jednostki ogólne zewnętrzne:

Do jednostek ogólnych należą również znane nam: &lt; &gt; &amp; etc…

23/25

Page 24: Technologie

JednostkiJednostki(encje)(encje)

Wykład 2: DTD i przestrzenie nazw 24/24

Encje parametryczneEncje parametryczne

-- to takie, które można wykorzystywać jedynie w DTD

Jednostki parametryczne wewnętrzne:

Do jednostek parametrycznych odwołujemy się przez znacznik: %nazwa;

Page 25: Technologie

JednostkiJednostki(encje)(encje)

Wykład 2: DTD i przestrzenie nazw 25/25

Jednostki parametryczne zewnętrzne:

odwołanie do zewnętrznegoDTD

parametryczna jednostka zewnętrzna (podstawienie wartości z zewnątrz)