1 / 25

Technologie

Łódź, 8 października 2012 roku. Technologie. mgr inż. Tomasz Węgliński email: tweglinski@kis.p.lodz.pl www: http://www.tweglinski.pl. WYKŁAD 2. DTD i przestrzenie nazw. 2/25. Co to jest DTD?.

missy
Télécharger la présentation

Technologie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Łódź, 8 października 2012 roku Technologie mgr inż. Tomasz Węglińskiemail: tweglinski@kis.p.lodz.plwww: http://www.tweglinski.pl

  2. WYKŁAD 2 DTD i przestrzenie nazw 2/25

  3. Co to jest DTD? • DTD(ang. Document Type Definition) opisuje formalną strukturę dokumentu XML – stanowi jego gramatykę. • Reguły zawarte w pliku DTD m.in.: • definiują elementy (np. nazwę elementu i miejsce występowania) • charakteryzują typy danych elementów • określają liczbę wystąpień elementu • 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 Wykład 2: DTD i przestrzenie nazw

  4. Co to jest 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 Dokument XML DTD Parser Dokument poprawnystrukturalnie Dokument niepoprawnystrukturalnie 4/25 Wykład 2: DTD i przestrzenie nazw

  5. Cechy 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 Należy pamiętać, że: • 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 5/25 Wykład 2: DTD i przestrzenie nazw

  6. Struktura DTD DTD 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 korzeń dokumentu XML (!) deklaracja XML deklaracja typu dokumentu ciało dokumentu 6/25 Wykład 2: DTD i przestrzenie nazw

  7. Struktura DTD DTD zewnętrzne • dokument XML zawiera odwołanie do zewnętrznego DTD umieszczonego w osobnym pliku (po deklaracji typu dokumentu <?xml … ?>) • zewnętrzne DTD niemusi (!) zostać przetworzone przez parser XML deklaracja XML odwołanie do zewnętrznego DTD ciało dokumentu deklaracje DTD w zewnętrznym pliku Czego brakuje?? 7/25 Wykład 2: DTD i przestrzenie nazw

  8. Struktura DTD • DTD zewnętrzne może być: • prywatne „nasze własne” • publiczne • „ogólnie przyjęte” • Przykład odwołania do prywatnego DTD: zwróć uwagę na parametrSYSTEM • parametr SYSTEM zawiera względny lub bezwzględny adres URI • do naszego pliku DTD 8/25 Wykład 2: DTD i przestrzenie nazw

  9. Struktura DTD • DTD zewnętrzne może być: • prywatne „nasze własne” • publiczne • „ogólnie przyjęte” • Przykład odwołania do publicznego DTD: to już wiem to się domyślam Gdzie ja to widziałem… ?  9/25 Wykład 2: DTD i przestrzenie nazw

  10. Struktura DTD • Parametr FPI (ang. Formal Public Identifier) zawiera 4 elementy oddzielone znakiem „//”: • 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 10/25 Wykład 2: DTD i przestrzenie nazw

  11. Struktura DTD Ważne: • Zewnętrzne oraz wewnętrzne deklaracje DTD można łączyć (!) Trzeba jednak pamiętać, że w przypadku wystąpienia dwóch identycznych deklaracji elementów, atrybutów itp., pierwszeństwo ma deklaracja wewnętrzna (!) deklaracja wewnętrzna deklaracja zewnętrzna 11/25 Wykład 2: DTD i przestrzenie nazw

  12. Deklaracja elementu 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 (!) 12/25 Wykład 2: DTD i przestrzenie nazw

  13. Deklaracja elementu 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ą) 13/25 Wykład 2: DTD i przestrzenie nazw

  14. Deklaracja elementu 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 jedynym dzieckiem (podelementem) elementu <wydzial> • Deklarację więcej niż jednego podelementu możemy zorganizować na dwa sposoby: • sekwencyjny • wyboru 14/25 Wykład 2: DTD i przestrzenie nazw

  15. Deklaracja elementu • Sekwencja elementów każdy z elementów musi się pojawić w podanej kolejności • Wybór elementów wystąpi tylko jedenz wymienionych elementów • Połączenie sekwencji i wyboru po pierwszych trzech elementach, wystąpi element <message> lub <body> 15/25 Wykład 2: DTD i przestrzenie nazw

  16. Deklaracja elementu Wskaźniki liczby wystąpień(ang. quantity indicators)określają dozwoloną liczbę wystąpień danego elementu w dokumencie XML. Wskaźnik Znaczenie 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ć Przykłady • Istnieje również możliwość stosowania operatorów dla grup elementów 16/25 Wykład 2: DTD i przestrzenie nazw

  17. Deklaracja 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? • Jedyną (!) słuszną drogą dla osiągnięcia tego celu jest użycie operatora * 17/25 Wykład 2: DTD i przestrzenie nazw

  18. Deklaracje atrybutów • Deklaracje 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… 18/25 Wykład 2: DTD i przestrzenie nazw

  19. Deklaracje atrybutów • Typy atrybutów: • Wartość domyślna lub konieczność wystąpienia atrybutu: 19/25 Wykład 2: DTD i przestrzenie nazw

  20. Deklaracje atrybutów • Typy i wartości domyślne atrybutów (zaawansowany przykład) 20/25 Wykład 2: DTD i przestrzenie nazw

  21. 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 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 Wykład 2: DTD i przestrzenie nazw

  22. 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 Wykład 2: DTD i przestrzenie nazw

  23. Jednostki(encje) Jednostki (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 Wykład 2: DTD i przestrzenie nazw

  24. Encje parametryczne -- to takie, które można wykorzystywać jedynie w DTD Jednostki(encje) • Jednostki parametryczne wewnętrzne: • Do jednostek parametrycznych odwołujemy się przez znacznik: %nazwa; 24/24 Wykład 2: DTD i przestrzenie nazw

  25. Jednostki(encje) • Jednostki parametryczne zewnętrzne: odwołanie do zewnętrznego DTD parametryczna jednostka zewnętrzna (podstawienie wartości z zewnątrz) 25/25 Wykład 2: DTD i przestrzenie nazw

More Related