XML i nowoczesne metody zarządzania treścią

Podobne dokumenty
Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

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

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

Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania

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

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

XML extensible Markup Language. Paweł Chodkiewicz

c TP: anything: 13 listopada 2004 roku 1

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

Wprowadzenie do technologii XML

Podstawy (X)HTML i CSS

Przykładowy dokument XML

Wprowadzenie do XML. Tomasz Przechlewski

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

XML DTD XML Schema CSS

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

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

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Podstawy JavaScript ćwiczenia

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

Rola języka XML narzędziem

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

XML extensible Markup Language. część 3

Aplikacje internetowe laboratorium XML, DTD, XSL

Programowanie internetowe

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

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

Struktura języka HTML ZNACZNIKI. Oto bardzo prosta strona WWW wyświetlona w przeglądarce: A tak wygląda kod źródłowy takiej strony:

Technologie zarządzania treścią

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

rk HTML 4 a 5 różnice

XML i nowoczesne metody zarządzania treścią

Model semistrukturalny

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

XML i nowoczesne technologie zarządzania treścią

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Elementarz HTML i CSS

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Definiowanie typów dokumentów Część 1. DTD, XML Schema

Narzędzia informatyczne w językoznawstwie

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

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

XML i nowoczesne metody zarządzania treścią

Podstawy XML-a. Zaawansowane techniki programowania

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Kurs HTML 4.01 TI 312[01]

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Wykład 1: HTML (XHTML) Michał Drabik

XML extensible Markup Language. część 1

XML extensible Markup Language 1

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Wprowadzenie do XML schema

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

Wprowadzenie do technologii XML

HTML (HyperText Markup Language) hipertekstowy język znaczników

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

XML i nowoczesne metody zarządzania treścią

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Zaawansowana Pracownia Komputerowa - Ćwiczenia. Krzysztof Miernik

Facelets ViewHandler

XML i nowoczesne technologie zarządzania treścią 2007/08

HTML DOM, XHTML cel, charakterystyka

AUDYT DOSTĘPNOŚCI STRONY INTERNETOWEJ

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Young Programmer: HTML+PHP. Dr inż. Małgorzata Janik, Zajęcia #2

Zawartość specyfikacji:

Systemy baz danych. mgr inż. Sylwia Glińska

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Środowisko XML (Extensible Markup Language).

INTEGRACJA I EKSPLORACJA DANYCH

Kaskadowe arkusze stylów (CSS)

Technologie zarządzania treścią

Przedmiot: Grafika komputerowa i projektowanie stron WWW

Instrukcja obsługi Multiconverter 2.0

I.Wojnicki, Tech.Inter.

Tabela wewnętrzna - definicja

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

W ogólności znaczniki mogą również posiadać atrybuty które pozwalają wpływać i manipulować własnościami znaczników lub przenosić dodatkowe informacje:

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

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

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

Semistrukturalne bazy danych Wykład dla studentów matematyki

Instrukcja obsługi DHL KONWERTER 1.6

1 Podstawy c++ w pigułce.

Dlaczego GML? Gdańsk r. Karol Stachura

Najprostszy dokument HTML. <html> <body> Dowolny tekst. </body> </html>

XML i nowoczesne metody zarządzania treścią

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

WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Programowanie WEB PODSTAWY HTML

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Transkrypt:

XML i nowoczesne metody zarządzania treścią Wykład 2: Modelowanie dokumentów XML-owych. DTD Maciej Ogrodniczuk MIMUW, 8 października 2009 Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 1

Fakty i mity o XML-u Fakty: XML to otwarty, strukturalny format zapisu danych w pliku tekstowym, XML to elastyczny i uniwersalny metajęzyk do definiowania typów dokumentów, XML to bezpłatny, niezależny standard reprezentacji i wymiany informacji. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 2

Fakty i mity o XML-u Fakty: XML to otwarty, strukturalny format zapisu danych w pliku tekstowym, XML to elastyczny i uniwersalny metajęzyk do definiowania typów dokumentów, XML to bezpłatny, niezależny standard reprezentacji i wymiany informacji. Mity: XML nie jest formatem zapisu stron WWW, XML nie jest językiem programowania, sam zapis XML-owy nie nadaje fragmentom dokumentu żadnego znaczenia, użycie XML-a nie zwalnia od myślenia (analizy, projektowania...) Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 2

Struktury dokumentów Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 3

Struktury dokumentów Możemy np. chcieć powiedzieć, że dokument opisujący osobę musi posiadać element główny <osoba>, w którym zagnieżdżone będą elementy <imię>, <nazwisko> i <adres> w tej właśnie kolejności, z tym że dana osoba może mieć więcej niż jedno imię, natomiast nie musi mieć zdefiniowanego adresu: Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 3

Struktury dokumentów Możemy np. chcieć powiedzieć, że dokument opisujący osobę musi posiadać element główny <osoba>, w którym zagnieżdżone będą elementy <imię>, <nazwisko> i <adres> w tej właśnie kolejności, z tym że dana osoba może mieć więcej niż jedno imię, natomiast nie musi mieć zdefiniowanego adresu: <osoba> <imię>jan</imię> <nazwisko>kot</nazwisko> <adres>mysia 7</adres> </osoba> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 3

Struktury dokumentów Możemy np. chcieć powiedzieć, że dokument opisujący osobę musi posiadać element główny <osoba>, w którym zagnieżdżone będą elementy <imię>, <nazwisko> i <adres> w tej właśnie kolejności, z tym że dana osoba może mieć więcej niż jedno imię, natomiast nie musi mieć zdefiniowanego adresu: <osoba> <imię>jan</imię> <nazwisko>kot</nazwisko> <adres>mysia 7</adres> </osoba> <osoba> <imię>iga</imię> <nazwisko>bąk</nazwisko> </osoba> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 3

Struktury dokumentów Możemy np. chcieć powiedzieć, że dokument opisujący osobę musi posiadać element główny <osoba>, w którym zagnieżdżone będą elementy <imię>, <nazwisko> i <adres> w tej właśnie kolejności, z tym że dana osoba może mieć więcej niż jedno imię, natomiast nie musi mieć zdefiniowanego adresu: <osoba> <imię>jan</imię> <nazwisko>kot</nazwisko> <adres>mysia 7</adres> </osoba> <osoba> <imię>iga</imię> <nazwisko>bąk</nazwisko> </osoba> <osoba> <imię>ewa</imię> <imię>maria</imię> <nazwisko>tor</nazwisko> <adres>kolejowa 34/27</adres> </osoba> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 3

Po co nam formalizacja struktury? Nikt nie lubi sztywnych reguł, ale zwykle się to opłaca: Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 4

Po co nam formalizacja struktury? Nikt nie lubi sztywnych reguł, ale zwykle się to opłaca: dostępność logicznej struktury treści pomaga lepiej przetwarzać dokumenty, Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 4

Po co nam formalizacja struktury? Nikt nie lubi sztywnych reguł, ale zwykle się to opłaca: dostępność logicznej struktury treści pomaga lepiej przetwarzać dokumenty, zamiast pilnować poprawności danych samemu (w naszej aplikacji) możemy zlecić sprawdzenie poprawności automatowi, który wymusi poprawność budowy dokumentu, Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 4

Po co nam formalizacja struktury? Nikt nie lubi sztywnych reguł, ale zwykle się to opłaca: dostępność logicznej struktury treści pomaga lepiej przetwarzać dokumenty, zamiast pilnować poprawności danych samemu (w naszej aplikacji) możemy zlecić sprawdzenie poprawności automatowi, który wymusi poprawność budowy dokumentu, przeniesienie zadania sprawdzania poprawności na parser daje spore oszczędności (ponoć aż 60% kodu programów dotyczy weryfikacji poprawności danych!) Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 4

Po co nam formalizacja struktury? Nikt nie lubi sztywnych reguł, ale zwykle się to opłaca: dostępność logicznej struktury treści pomaga lepiej przetwarzać dokumenty, zamiast pilnować poprawności danych samemu (w naszej aplikacji) możemy zlecić sprawdzenie poprawności automatowi, który wymusi poprawność budowy dokumentu, przeniesienie zadania sprawdzania poprawności na parser daje spore oszczędności (ponoć aż 60% kodu programów dotyczy weryfikacji poprawności danych!) Tendencja do coraz większej formalizacji. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 4

Pojedynek dla wątpiących XML: <zamówienie id="1"> <pozycja> <nazwa>cyklotron</nazwa> <ilość jednostka="szt.">3</ilość> </pozycja> <zamawiający id="2"/> </zamówienie> CSV: 1,cyklotron,3,szt.,2 Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 5

Pojedynek dla wątpiących XML: <zamówienie id="1"> <pozycja> <nazwa>cyklotron</nazwa> <ilość jednostka="szt.">3</ilość> </pozycja> <zamawiający id="2"/> </zamówienie> CSV: 1,cyklotron,3,szt.,2 ale gdzie tu kontrola poprawności? Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 5

Dwa poziomy poprawności Dokument XML-owy jest: 1 poprawny składniowo (ang. well-formed), gdy: ma tylko jeden element główny, znaczniki początkowe i końcowe pasują do siebie (każdy element zamknięty, znaczniki nie nakładają się na siebie), wartości atrybutów są ujęte w cudzysłowy lub apostrofy,... 9 innych wymagań ujętych w specyfikacji. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 6

Dwa poziomy poprawności Dokument XML-owy jest: 1 poprawny składniowo (ang. well-formed), gdy: ma tylko jeden element główny, znaczniki początkowe i końcowe pasują do siebie (każdy element zamknięty, znaczniki nie nakładają się na siebie), wartości atrybutów są ujęte w cudzysłowy lub apostrofy,... 9 innych wymagań ujętych w specyfikacji. 2 poprawny strukturalnie (ang. valid), gdy: jest poprawny składniowo, jest zgodny z ustaloną wcześniej strukturą logiczną, zostały określone wszystkie wymagane atrybuty,... 23 inne wymagania. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 6

Dwa poziomy poprawności Dokument XML-owy jest: 1 poprawny składniowo (ang. well-formed), gdy: ma tylko jeden element główny, znaczniki początkowe i końcowe pasują do siebie (każdy element zamknięty, znaczniki nie nakładają się na siebie), wartości atrybutów są ujęte w cudzysłowy lub apostrofy,... 9 innych wymagań ujętych w specyfikacji. 2 poprawny strukturalnie (ang. valid), gdy: jest poprawny składniowo, jest zgodny z ustaloną wcześniej strukturą logiczną, zostały określone wszystkie wymagane atrybuty,... 23 inne wymagania. Od angielskiego określenia poprawności pochodzą wyrażenia parser niewalidujący i parser walidujący. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 6

Modelowanie struktury logicznej Modelowanie struktury dokumentów to tyle co: określanie zestawu dopuszczalnych elementów i atrybutów, przypisywanie atrybutów do elementów, definiowanie dopuszczalnej zawartości elementów (tekst, inne elementy). Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 7

Projektowanie struktury abstrakcyjnej Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 8

Formalizmy opisu struktury Metody definiowania struktury: brak struktury, DTD Definicja Typu Dokumentu (ang. Document Type Definition), XML Schema (więcej możliwości), inne (Relax NG, Schematron...) Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 9

Typ dokumentu i definicja typu dokumentu Specyfikacja XML-owa wprowadza pojęcia: Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 10

Typ dokumentu i definicja typu dokumentu Specyfikacja XML-owa wprowadza pojęcia: typu dokumentu (ang. document type), związane z wewnętrzną hierarchią jego części składowych, Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 10

Typ dokumentu i definicja typu dokumentu Specyfikacja XML-owa wprowadza pojęcia: typu dokumentu (ang. document type), związane z wewnętrzną hierarchią jego części składowych, definicji typu dokumentu (DTD, ang. Document Type Definition) formalnego opisu jego budowy zawierającego informacje o nazwach przyporządkowanych częściom składowym tekstu (elementach), ich dodatkowych własnościach (atrybutach) i zależnościach pomiędzy elementami, łączących je w strukturę drzewiastą. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 10

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> > <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> > <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> > <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> > <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> > <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> > <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

DTD jak to wygląda? <!ELEMENT wiersz (autor, tytuł?, zwrotka+)> <!ATTLIST wiersz biały (tak nie) "nie"> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT zwrotka (wers)+> <!ELEMENT wers (#PCDATA)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 11

Definicja elementu <!ELEMENT nazwa elementu (model zawartości)> element+ element wystąpi jeden lub więcej razy, element* 0 lub więcej razy, element? 0 lub 1 raz, element1, element2 elementy wystąpią w podanej kolejności, element1 element2 wystąpi element1 lub element2, (grupa) grupa składników modelu, #PCDATA wystąpi zawartość tekstowa ( czysty tekst bez podelementów), EMPTY element nie posiada żadnej zawartości, ANY w treści mogą wystąpić dowolne zadeklarowane elementy. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 12

Przykłady modeli zawartości elementów 1 <!ELEMENT wiersz (zwrotka+)> <!ELEMENT zwrotka (wers, wers, wers, wers)> <!ELEMENT wers (#PCDATA)> Zaślepka Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 13

Przykłady modeli zawartości elementów 1 <!ELEMENT wiersz (zwrotka+)> <!ELEMENT zwrotka (wers, wers, wers, wers)> <!ELEMENT wers (#PCDATA)> 2 <!ELEMENT biblioteka (książka*)> <!ELEMENT książka (autor+, tytuł, podtytuł?)> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT podtytuł (#PCDATA)> Zaślepka Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 13

Przykłady modeli zawartości elementów 1 <!ELEMENT wiersz (zwrotka+)> <!ELEMENT zwrotka (wers, wers, wers, wers)> <!ELEMENT wers (#PCDATA)> 2 <!ELEMENT biblioteka (książka*)> <!ELEMENT książka (autor+, tytuł, podtytuł?)> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT podtytuł (#PCDATA)> 3 <!ELEMENT biblioteka2 (książka* gazeta*)> <!ELEMENT gazeta (tytuł, data)> <!ELEMENT data (#PCDATA)> (reszta definicji jak wyżej) Zaślepka Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 13

Przykłady modeli zawartości elementów 1 <!ELEMENT wiersz (zwrotka+)> <!ELEMENT zwrotka (wers, wers, wers, wers)> <!ELEMENT wers (#PCDATA)> 2 <!ELEMENT biblioteka (książka*)> <!ELEMENT książka (autor+, tytuł, podtytuł?)> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT podtytuł (#PCDATA)> 3 <!ELEMENT biblioteka2 (książka* gazeta*)> <!ELEMENT gazeta (tytuł, data)> <!ELEMENT data (#PCDATA)> (reszta definicji jak wyżej) 4 <!ELEMENT biblioteka3 (książka gazeta)*> (reszta jak wyżej) Zaślepka Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 13

Przykłady modeli zawartości elementów 1 <!ELEMENT wiersz (zwrotka+)> <!ELEMENT zwrotka (wers, wers, wers, wers)> <!ELEMENT wers (#PCDATA)> 2 <!ELEMENT biblioteka (książka*)> <!ELEMENT książka (autor+, tytuł, podtytuł?)> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT podtytuł (#PCDATA)> 3 <!ELEMENT biblioteka2 (książka* gazeta*)> <!ELEMENT gazeta (tytuł, data)> <!ELEMENT data (#PCDATA)> (reszta definicji jak wyżej) 4 <!ELEMENT biblioteka3 (książka gazeta)*> (reszta jak wyżej) Czym różnią się definicje elementów biblioteka2 i biblioteka3? Zaślepka Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 13

Model mieszany Model mieszany (ang. mixed content) to specjalny model zawartości, w którym elementy mogą być dowolnie przemieszane z tekstem. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 14

Model mieszany Model mieszany (ang. mixed content) to specjalny model zawartości, w którym elementy mogą być dowolnie przemieszane z tekstem. Oto definicja: <!ELEMENT biografia (#PCDATA data)*> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 14

Model mieszany Model mieszany (ang. mixed content) to specjalny model zawartości, w którym elementy mogą być dowolnie przemieszane z tekstem. Oto definicja: <!ELEMENT biografia (#PCDATA data)*> W ten sposób możemy używać dat w dowolnym miejscu tekstu: <biografia>włodzimierz Lenin, ur. <data>22.04.1870</data> w Symbirsku, zm. <data>21.01.1924</data> w Gorkach k. Moskwy.</biografia> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 14

Model mieszany Model mieszany (ang. mixed content) to specjalny model zawartości, w którym elementy mogą być dowolnie przemieszane z tekstem. Oto definicja: <!ELEMENT biografia (#PCDATA data)*> W ten sposób możemy używać dat w dowolnym miejscu tekstu: <biografia>włodzimierz Lenin, ur. <data>22.04.1870</data> w Symbirsku, zm. <data>21.01.1924</data> w Gorkach k. Moskwy.</biografia> Uwaga: <!ELEMENT biografia (#PCDATA data b i u)*> <!ELEMENT biografia (#PCDATA, data)*> źle! <!ELEMENT biografia (data #PCDATA)*> źle! Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 14

Rekurencja w modelu Czy taki model jest poprawny? <!ELEMENT tekst (#PCDATA wyróżnienie)*> <!ELEMENT wyróżnienie (#PCDATA tekst)*> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 15

Rekurencja w modelu Czy taki model jest poprawny? <!ELEMENT tekst (#PCDATA wyróżnienie)*> <!ELEMENT wyróżnienie (#PCDATA tekst)*> Tak! W HTML-u mamy nawet autorekurencję: <!ELEMENT span (#PCDATA... span)*> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 15

Rekurencja w modelu A taki jest poprawny? <!ELEMENT span (span*)> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 16

Rekurencja w modelu A taki jest poprawny? <!ELEMENT span (span*)> Tak, można za jego pomocą zbudować ładne drzewo: <span> <span/> <span> <span/> <span/> </span> <span/> </span> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 16

Rekurencja w modelu A taki jest poprawny? <!ELEMENT span (span*)> Tak, można za jego pomocą zbudować ładne drzewo: <span> <span/> <span> <span/> <span/> </span> <span/> </span> A gdyby tak gwiazdkę zastąpić plusem? Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 16

Dwie twarze XML-a Dwa typowe zastosowania XML-a: Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 17

Dwie twarze XML-a Dwa typowe zastosowania XML-a: zarządzanie treścią (dokumenty tworzone przez człowieka i przeznaczone dla człowieka, o długim czasie życia), np. Wielka Encyklopedia Powszechna PWN, Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 17

Dwie twarze XML-a Dwa typowe zastosowania XML-a: zarządzanie treścią (dokumenty tworzone przez człowieka i przeznaczone dla człowieka, o długim czasie życia), np. Wielka Encyklopedia Powszechna PWN, elektroniczna wymiana danych komunikacja między aplikacjami (dokumenty tworzone oraz przetwarzane automatycznie, zazwyczaj kończące życie wraz z końcem komunikacji), np. komunikaty o błędach. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 17

Dwie twarze XML-a Dwa typowe zastosowania XML-a: zarządzanie treścią (dokumenty tworzone przez człowieka i przeznaczone dla człowieka, o długim czasie życia), np. Wielka Encyklopedia Powszechna PWN, elektroniczna wymiana danych komunikacja między aplikacjami (dokumenty tworzone oraz przetwarzane automatycznie, zazwyczaj kończące życie wraz z końcem komunikacji), np. komunikaty o błędach. Tym dwu zastosowaniom odpowiadają dwa modele zawartości XML-owej: tekstowy i bazodanowy. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 17

XML tekstowy a XML bazodanowy <hasło> <osoba>william Szekspir</osoba> (ang. <wariant>william Shakespeare</wariant>; ur. prawdopodobnie <data-ur>23 kwietnia 1564</data-ur> w <miejsce-ur>stratford-upon-avon</miejsce-ur>, zm. <data-śm>23 kwietnia 1616</data-śm> tamże) - angielski poeta, dramaturg, aktor.</hasło> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 18

XML tekstowy a XML bazodanowy <hasło> <osoba>william Szekspir</osoba> (ang. <wariant>william Shakespeare</wariant>; ur. prawdopodobnie <data-ur>23 kwietnia 1564</data-ur> w <miejsce-ur>stratford-upon-avon</miejsce-ur>, zm. <data-śm>23 kwietnia 1616</data-śm> tamże) - angielski poeta, dramaturg, aktor.</hasło> <zamówienie id="1"> <pozycja> <nazwa>cyklotron</nazwa> <jednostka>sztuka</jednostka> <ilość>3</ilość> </pozycja> <zamawiający id="2"/> </zamówienie> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 18

Model tekstowy znormalizowany A może tak? <hasło> <osoba>william Szekspir</osoba> <tekst> (ang. </tekst> <wariant>william Shakespeare</wariant> <tekst>; ur. prawdopodobnie </tekst> <data-ur>23 kwietnia 1564</data-ur> <tekst> w </tekst> <miejsce-ur>stratford-upon-avon</miejsce-ur> <tekst>, zm. </tekst> <data-śm>23 kwietnia 1616</data-śm> <tekst> tamże - angielski poeta, dramaturg, aktor.</tekst> </hasło> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 19

Białe znaki w konstrukcjach składniowych XML-a XML traktuje jako białe (ang. whitespace) następujące znaki: CR Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 20

Białe znaki w konstrukcjach składniowych XML-a XML traktuje jako białe (ang. whitespace) następujące znaki: CR ( ) LF Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 20

Białe znaki w konstrukcjach składniowych XML-a XML traktuje jako białe (ang. whitespace) następujące znaki: CR ( ) LF ( ) Tab Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 20

Białe znaki w konstrukcjach składniowych XML-a XML traktuje jako białe (ang. whitespace) następujące znaki: CR ( ) LF ( ) Tab ( ) spacja Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 20

Białe znaki w konstrukcjach składniowych XML-a XML traktuje jako białe (ang. whitespace) następujące znaki: CR ( ) LF ( ) Tab ( ) spacja ( ) Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 20

Białe znaki w konstrukcjach składniowych XML-a XML traktuje jako białe (ang. whitespace) następujące znaki: CR ( ) LF ( ) Tab ( ) spacja ( ) Składnia XML-owa dopuszcza użycie nieograniczonej liczby białych znaków w niektórych miejscach w dokumencie (oznaczonych poniżej na zielono): <?xml version = "1.0"?> <lista nazwa = "owoce i warzywa" > <pozycja >jabłko</pozycja > <pozycja >gruszka</pozycja > <pozycja >pomidor</pozycja > </lista > Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 20

Białe znaki w zawartości elementów Jeśli chodzi o zawartość tekstową, to w przeciwieństwie do SGML-a (czyli także HTML-a) zgodnie ze specyfikacją parser XML-owy ma obowiązek przekazać wszystkie białe znaki do aplikacji. Oto przykładowe białe znaki znaczące: <lista nazwa=" owoce i warzywa "> <pozycja> pomidor </pozycja> </lista> Uwaga: Niektóre parsery (albo narzędzia do reprezentacji drzewa dokumentu w pamięci) robią użytek z zawartości DTD i w przypadku nietekstowej zawartości elementów zaniedbują białe znaki między elementami podrzędnymi. Istnieje możliwość poinformowania aplikacji o intencjach przechowania białych znaków dla poddrzewa poprzez ustawienie wartości specjalnego atrybutu xml:space jako preserve. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 21

Białe znaki w atrybutach Przy przetwarzaniu dokumentu wartości atrybutów są normalizowane ( sekcja 3.3.3 Specyfikacji): białe znaki zamieniane są na spacje, odwołania do znaków (&#kod ;, &#xkod ;) zamieniane są na znaki, rekurencyjnie uruchamiany jest mechanizm zastępowania fragmentów tekstu (encje, o nich za chwilę), w przypadku obecności DTD i dla atrybutów typu innego niż CDATA ciągi białych znaków zamieniane są na pojedynczą spację oraz usuwane są spacje z początku i końca wartości. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 22

Kanoniczna postać XML-a Problem: Skoro dokumenty mogą się znacznie różnić (np. białymi znakami), a mimo to dać w wyniku parsowania takie samo drzewo dokumentu, to może dałoby się je porównać bez parsowania? Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 23

Kanoniczna postać XML-a Problem: Skoro dokumenty mogą się znacznie różnić (np. białymi znakami), a mimo to dać w wyniku parsowania takie samo drzewo dokumentu, to może dałoby się je porównać bez parsowania? Rozwiązanie: C14N Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 23

Kanoniczna postać XML-a Problem: Skoro dokumenty mogą się znacznie różnić (np. białymi znakami), a mimo to dać w wyniku parsowania takie samo drzewo dokumentu, to może dałoby się je porównać bez parsowania? Rozwiązanie: C14N, czyli c a n o n i c a l i z a t i o n: Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 23

Kanoniczna postać XML-a Problem: Skoro dokumenty mogą się znacznie różnić (np. białymi znakami), a mimo to dać w wyniku parsowania takie samo drzewo dokumentu, to może dałoby się je porównać bez parsowania? Rozwiązanie: C14N, czyli c a n o n i c a l i z a t i o n: usuń deklarację XML-ową, zapisz dokument w UTF-8, znormalizuj zawartość atrybutów (jak parser), rozwiń skróconą postać pustych znaczników, posortuj deklaracje przestrzeni nazw i atrybuty,... Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 23

Kanoniczna postać XML-a Problem: Skoro dokumenty mogą się znacznie różnić (np. białymi znakami), a mimo to dać w wyniku parsowania takie samo drzewo dokumentu, to może dałoby się je porównać bez parsowania? Rozwiązanie: C14N, czyli c a n o n i c a l i z a t i o n: usuń deklarację XML-ową, zapisz dokument w UTF-8, znormalizuj zawartość atrybutów (jak parser), rozwiń skróconą postać pustych znaczników, posortuj deklaracje przestrzeni nazw i atrybuty,... http://www.w3.org/tr/xml-c14n http://www.w3.org/tr/xml-exc-c14n/ Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 23

Granulacja modelu <adres> <ulica>banacha 2</ulica> <kod>02-097</kod> <miasto>warszawa</miasto> </adres> Oba Który model jest lepszy? <dane-adresowe> <adres> <ulica>banacha</ulica> <nr-domu>2</nr-domu> </adres> <kod> <okręg>0</okręg> <strefa>2</strefa> <sektor>0</sektor> <placówka>97</placówka> </kod> <miasto>warszawa</miasto> </dane-adresowe> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 24

Granulacja modelu <adres> <ulica>banacha 2</ulica> <kod>02-097</kod> <miasto>warszawa</miasto> </adres> Oba są dobre każdy dla innego zastosowania. Oba Który model jest lepszy? <dane-adresowe> <adres> <ulica>banacha</ulica> <nr-domu>2</nr-domu> </adres> <kod> <okręg>0</okręg> <strefa>2</strefa> <sektor>0</sektor> <placówka>97</placówka> </kod> <miasto>warszawa</miasto> </dane-adresowe> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 24

Definicja atrybutu <!ATTLIST nazwa elementu nazwa atrybutu1 typ1 zawartość1 nazwa atrybutu2 typ2 zawartość2...> Typy atrybutów: CDATA ciąg znaków, NMTOKEN ciąg znaków tworzących poprawną nazwę, NMTOKENS ciąg NMTOKEN oddzielanych spacjami, ID identyfikator unikalny w obrębie dokumentu, IDREF wskaźnik do ID innego elementu, IDREFS ciąg IDREF oddzielany białymi znakami, (a b...) jedna z podanych wartości (typ wyliczeniowy),... 3 inne, o których za chwilę. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 25

Definicja atrybutu <!ATTLIST nazwa elementu nazwa atrybutu1 typ1 zawartość1 nazwa atrybutu2 typ2 zawartość2...> Kwalifikatory zawartości: #REQUIRED atrybut jest wymagany (wartość musi zostać podana), #IMPLIED wartość nie musi być podana, wartość tylko dla typu wyliczeniowego wskazuje wartość z listy, która ma zostać użyta jako domyślna, gdy wartość atrybutu nie zostanie podana w dokumencie, #FIXED wartość wartość stała. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 26

Przykłady modeli atrybutów <!ATTLIST osoba pesel ID #REQUIRED nazwisko NMTOKEN #IMPLIED płeć (kobieta mężczyzna) #REQUIRED> <!ATTLIST zeznanie-sprawcy pesel-sprawcy IDREF #REQUIRED rok-zdarzenia (2009 2010 2011) "2009" kod-rodzaju-sprawy NMTOKEN #FIXED "ZEZN"> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 27

Dylemat projektanta: element czy atrybut? Który projekt jest najlepszy? 1 <zamówienie> <nr>423/2009<nr> <zamawiający>mimuw</zamawiający> <kodtowaru>3908</kodtowaru> <kodtowaru>129</kodtowaru></zamówienie> 2 <zamówienie nr="423/2009" zamawiający="mimuw" kodtowaru="3908 129"></zamówienie> 3 <zamówienie> Zamówienie <nr>423/2003</nr> dla <jednostka>mimuw</jednostka> na dostawę <towar kod="3908">kserokopiarki</towar> i <towar kod="129">paralizatora elektrycznego</towar>. </zamówienie> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 28

Dylemat projektanta: element czy atrybut? Warto pamiętać o pewnych dobrych praktykach: w elementach warto przechowywać dane, w atrybutach metadane, w elementach zapisujemy tekst wizualizowany, w atrybutach jego parametry, elementy zagnieżdżone nadają się świetnie do przechowywania informacji szczegółowych (opisy, listy, pozycje...), bo atrybuty nie mogą zawierać wewnętrznej struktury; niby można użyć atrybutów typu NMTOKENS i IDREFS, ale... kolejność atrybutów nie ma znaczenia, natomiast w przypadku elementów jest ważna! w DTD tylko atrybutom można nadawać wartości domyślne, stałe, określać typ wyliczeniowy! Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 28

Związanie dokumentu XML-owego z DTD wariant 1 Można zapisać DTD bezpośrednio w dokumencie, w którym będzie użyte, podając po słowie kluczowym DOCTYPE nazwę elementu głównego, a następnie definicje elementów i atrybutów: poemat.xml <!DOCTYPE poemat [ <!ELEMENT poemat (autor, tytuł, księga+)> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT księga (wers)+> <!ELEMENT wers (#PCDATA)>]> <poemat> <autor>adam Mickiewicz</autor> <tytuł>pan Tadeusz</tytuł> <księga> <wers>litwo, ojczyzno moja!...</wers>... Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 29

Związanie dokumentu XML-owego z DTD wariant 2 Można zdefiniować DTD osobno i użyć go podając URI pliku: poemat.dtd <!ELEMENT poemat (autor, tytuł, księga+)> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT księga (wers)+> <!ELEMENT wers (#PCDATA)> poemat.xml <!DOCTYPE poemat SYSTEM "poemat.dtd"> <poemat> <autor>adam Mickiewicz</autor> <tytuł>pan Tadeusz</tytuł> <księga> <wers>litwo, ojczyzno moja!...</wers>... Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 30

Związanie dokumentu XML-owego z DTD wariant 3 Można połączyć obie metody (gdy chce się uzupełnić/zmienić istniejące DTD): poemat.dtd <!ELEMENT poemat (autor, tytuł, księga+)> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytuł (#PCDATA)> <!ELEMENT księga (wers)+> <!ELEMENT wers (#PCDATA)> poemat.xml <!DOCTYPE poemat SYSTEM "poemat.dtd"> [ <!ATTLIST poemat rok-wydania #IMPLIED>]> <poemat rok-wydania="1834"> <autor>adam Mickiewicz</autor> <tytuł>pan Tadeusz</tytuł>... Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 31

Fizyczna struktura dokumentu: encje wewnętrzne Encja (ang. entity) = uogólnienie pojęcia makrodefinicji. Mówiąc najogólniej, encje umożliwiają nazywanie fragmentów tekstu (znaków, ciągów znaków, zawartości plików) w celu ich późniejszego wykorzystania. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 32

Fizyczna struktura dokumentu: encje wewnętrzne Encja (ang. entity) = uogólnienie pojęcia makrodefinicji. Mówiąc najogólniej, encje umożliwiają nazywanie fragmentów tekstu (znaków, ciągów znaków, zawartości plików) w celu ich późniejszego wykorzystania. Encje definiujemy w DTD używając słowa kluczowego ENTITY, podając nazwę i wartość encji. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 32

Fizyczna struktura dokumentu: encje wewnętrzne Encja (ang. entity) = uogólnienie pojęcia makrodefinicji. Mówiąc najogólniej, encje umożliwiają nazywanie fragmentów tekstu (znaków, ciągów znaków, zawartości plików) w celu ich późniejszego wykorzystania. Encje definiujemy w DTD używając słowa kluczowego ENTITY, podając nazwę i wartość encji. Definicja encji wewnętrznych (ang. internal parsed entities): <!ENTITY xml "<b>extensible Markup Language</b>"> <!ENTITY euro "&x20ac;" Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 32

Fizyczna struktura dokumentu: encje wewnętrzne Encja (ang. entity) = uogólnienie pojęcia makrodefinicji. Mówiąc najogólniej, encje umożliwiają nazywanie fragmentów tekstu (znaków, ciągów znaków, zawartości plików) w celu ich późniejszego wykorzystania. Encje definiujemy w DTD używając słowa kluczowego ENTITY, podając nazwę i wartość encji. Definicja encji wewnętrznych (ang. internal parsed entities): <!ENTITY xml "<b>extensible Markup Language</b>"> <!ENTITY euro "&x20ac;" Użycie encji w dokumencie (ampersand-nazwa encji-średnik): Jak poznam &xml;, to zarobię dużo! Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 32

Encje znakowe i predefiniowane Pamiętamy odwołania do znaków: &#kod ; kod dziesiętny znaku, &#xkod ; kod szesnastkowy znaku. Znaki zarezerwowane dla składni XML-owej daje się uzyskać używając tzw. encji predefiniowanych: & & < < > > &apos; " " Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 33

Encje zewnętrzne i identyfikatory systemowe zaślepka Encje zewnętrzne (ang. external parsed entities zawartość zewnętrzna, która będzie włączona poprzez użycie odpowiedniej nazwy): <!ENTITY nagłówek SYSTEM "intro.xml"> <!ENTITY rozdział1 SYSTEM "chapter1.xml"> <!ENTITY rozdział2 SYSTEM "http://example.com/chapter2.xml"> zaślepka Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 34

Encje zewnętrzne i identyfikatory systemowe zaślepka Encje zewnętrzne (ang. external parsed entities zawartość zewnętrzna, która będzie włączona poprzez użycie odpowiedniej nazwy): <!ENTITY nagłówek SYSTEM "intro.xml"> <!ENTITY rozdział1 SYSTEM "chapter1.xml"> <!ENTITY rozdział2 SYSTEM "http://example.com/chapter2.xml"> Użycie w dokumencie: <książka> <tytuł>xml w praktyce</tytuł> &nagłówek; &rozdział1; &rozdział2; </książka> zaślepka Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 34

Identyfikatory publiczne i pliki catalog Jako encja zewnętrzna (z pliku o nazwie podanej w tzw. identyfikatorze systemowym) włączane jest też DTD. Pamiętamy: <!DOCTYPE książka SYSTEM "docbook.dtd"> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 35

Identyfikatory publiczne i pliki catalog Jako encja zewnętrzna (z pliku o nazwie podanej w tzw. identyfikatorze systemowym) włączane jest też DTD. Pamiętamy: <!DOCTYPE książka SYSTEM "docbook.dtd"> Aby dokumenty były w pełni przenośne, istnieje jeszcze jedna możliwość odwołania do encji zewnętrznej bez fizycznego podawania URI, przy użyciu tzw. identyfikatora publicznego: <!DOCTYPE książka PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 35

Identyfikatory publiczne i pliki catalog Jako encja zewnętrzna (z pliku o nazwie podanej w tzw. identyfikatorze systemowym) włączane jest też DTD. Pamiętamy: <!DOCTYPE książka SYSTEM "docbook.dtd"> Aby dokumenty były w pełni przenośne, istnieje jeszcze jedna możliwość odwołania do encji zewnętrznej bez fizycznego podawania URI, przy użyciu tzw. identyfikatora publicznego: <!DOCTYPE książka PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> który jest zwykle lokalnie odwzorowywany na identyfikator systemowy w pliku katalogowym: PUBLIC "-//OASIS//DTD DocBook V3.1//EN" "docbookv31/docbook.dtd" Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 35

Encje w atrybutach i notacje Nazwa encji nieprzetwarzanej (ang. unparser external entity) może być też wartością atrybutu typu ENTITY: Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 36

Encje w atrybutach i notacje Nazwa encji nieprzetwarzanej (ang. unparser external entity) może być też wartością atrybutu typu ENTITY: <?xml version="1.0" standalone="no"?> <!DOCTYPE mail [ <!ELEMENT mail (#PCDATA)> <!ATTLIST mail załącznik ENTITY #REQUIRED> <!ENTITY wycieczka SYSTEM "http://www.example.org/dubai.htm" > ]> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 36

Encje w atrybutach i notacje Nazwa encji nieprzetwarzanej (ang. unparser external entity) może być też wartością atrybutu typu ENTITY: <?xml version="1.0" standalone="no"?> <!DOCTYPE mail [ <!ELEMENT mail (#PCDATA)> <!ATTLIST mail załącznik ENTITY #REQUIRED> <!ENTITY wycieczka SYSTEM "http://www.example.org/dubai.htm" > ]> <mail załącznik="wycieczka">zobacz, gdzie mnie dziś porrrwał mój ukochany Abdul!</mail> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 36

Encje w atrybutach i notacje Nazwa encji nieprzetwarzanej (ang. unparser external entity) może być też wartością atrybutu typu ENTITY: <?xml version="1.0" standalone="no"?> <!DOCTYPE mail [ <!ELEMENT mail (#PCDATA)> <!ATTLIST mail załącznik ENTITY #REQUIRED> <!ENTITY wycieczka SYSTEM "http://www.example.org/dubai.htm" > ]> <mail załącznik="wycieczka">zobacz, gdzie mnie dziś porrrwał mój ukochany Abdul!</mail> Aby móc użyć takiego zapisu, encji musi zostać przypisana notacja Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 36

Encje w atrybutach i notacje Nazwa encji nieprzetwarzanej (ang. unparser external entity) może być też wartością atrybutu typu ENTITY: <?xml version="1.0" standalone="no"?> <!DOCTYPE mail [ <!ELEMENT mail (#PCDATA)> <!ATTLIST mail załącznik ENTITY #REQUIRED> <!ENTITY wycieczka SYSTEM "http://www.example.org/dubai.htm" NDATA html> ]> <mail załącznik="wycieczka">zobacz, gdzie mnie dziś porrrwał mój ukochany Abdul!</mail> Aby móc użyć takiego zapisu, encji musi zostać przypisana notacja poprzez określenie formatu encji Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 36

Encje w atrybutach i notacje Nazwa encji nieprzetwarzanej (ang. unparser external entity) może być też wartością atrybutu typu ENTITY: <?xml version="1.0" standalone="no"?> <!DOCTYPE mail [ <!ELEMENT mail (#PCDATA)> <!ATTLIST mail załącznik ENTITY #REQUIRED> <!ENTITY wycieczka SYSTEM "http://www.example.org/dubai.htm" NDATA html> <!NOTATION html SYSTEM "iexplore">]> <mail załącznik="wycieczka">zobacz, gdzie mnie dziś porrrwał mój ukochany Abdul!</mail> Aby móc użyć takiego zapisu, encji musi zostać przypisana notacja poprzez określenie formatu encji oraz osobną deklarację notacji wraz z dodatkową informacją dla aplikacji zewnętrznej. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 36

Notacje w atrybutach Atrybut typu NOTATION nakazuje traktowanie użycie zadeklarowanej w DTD notacji do przetwarzania zawartości elementu opatrzonego tym atrybutem. Jego wartością jest jedna z nazw zadeklarowanych notacji. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 37

Notacje w atrybutach Atrybut typu NOTATION nakazuje traktowanie użycie zadeklarowanej w DTD notacji do przetwarzania zawartości elementu opatrzonego tym atrybutem. Jego wartością jest jedna z nazw zadeklarowanych notacji. <?xml version="1.0" standalone="no"?> <!DOCTYPE code [ <!ELEMENT code (#PCDATA)> <!ATTLIST code lang NOTATION (vrml mathml) #REQUIRED> <!NOTATION vrml PUBLIC "VRML 1.0">]> <!NOTATION mathml PUBLIC "MathML 2.0">]> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 37

Notacje w atrybutach Atrybut typu NOTATION nakazuje traktowanie użycie zadeklarowanej w DTD notacji do przetwarzania zawartości elementu opatrzonego tym atrybutem. Jego wartością jest jedna z nazw zadeklarowanych notacji. <?xml version="1.0" standalone="no"?> <!DOCTYPE code [ <!ELEMENT code (#PCDATA)> <!ATTLIST code lang NOTATION (vrml mathml) #REQUIRED> <!NOTATION vrml PUBLIC "VRML 1.0">]> <!NOTATION mathml PUBLIC "MathML 2.0">]> <code lang="vrml">instrukcje VRML-a</code> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 37

Encje parametryczne Zasada działania encji parametrycznych jest identyczna ze zwykłymi encjami (zastępowanie tekstu), jedyną różnicą jest ograniczenie ich wykorzystania do DTD. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 38

Encje parametryczne Zasada działania encji parametrycznych jest identyczna ze zwykłymi encjami (zastępowanie tekstu), jedyną różnicą jest ograniczenie ich wykorzystania do DTD. Definicja z wykorzystaniem znaku procenta, użycie także znak procenta zamiast ampersanda: <!ENTITY % fontstyle "TT I B U"> <!ENTITY % inline "#PCDATA %fontstyle;"> <!ELEMENT p (%inline;)* <!ELEMENT font (%inline;)*> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 38

Encje parametryczne Zasada działania encji parametrycznych jest identyczna ze zwykłymi encjami (zastępowanie tekstu), jedyną różnicą jest ograniczenie ich wykorzystania do DTD. Definicja z wykorzystaniem znaku procenta, użycie także znak procenta zamiast ampersanda: <!ENTITY % fontstyle "TT I B U"> <!ENTITY % inline "#PCDATA %fontstyle;"> <!ELEMENT p (%inline;)* <!ELEMENT font (%inline;)*> Możliwość użycia: w celu uelastycznienia zapisu definicji (definiujemy zawartość, a następnie wykorzystujemy ją w wielu miejscach, w momencie zmiany definicji poprawiamy tylko jedno wystąpienie), w tzw. sekcjach warunkowych. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 38

Sekcje warunkowe Sekcje warunkowe umożliwiają włączanie/wyłączanie fragmentów DTD. Jeśli dana definicja zostanie obudowana sekcją <![INCLUDE[... definicja... ]]> to zostanie użyta w DTD, jeśli natomiast zamiast INCLUDE napiszemy IGNORE, to sekcja zostanie zignorowana. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 39

Sekcje warunkowe Sekcje warunkowe umożliwiają włączanie/wyłączanie fragmentów DTD. Jeśli dana definicja zostanie obudowana sekcją <![INCLUDE[... definicja... ]]> to zostanie użyta w DTD, jeśli natomiast zamiast INCLUDE napiszemy IGNORE, to sekcja zostanie zignorowana. Przy użyciu sekcji warunkowych i encji parametrycznych możemy w łatwy sposób manipulować DTD: <!ENTITY % wersja wstępna INCLUDE > <!ENTITY % wersja finalna IGNORE > <![%wersja wstępna;[ <!ELEMENT książka (komentarz*, tytuł, treść, dodatki?)> ]]> <![%wersja finalna;[ <!ELEMENT książka (tytuł, treść, dodatki?)> ]]> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 39

Studium przypadku: DTD XHTML-owe (1.0) 3 wersje DTD XHTML-owego (1.0): strict, transitional, frameset. Wersja strict odpowiada HTML-owi 4 Strict (czyli ucywilizowanej wersji HTML-a). http://www.w3.org/tr/xhtml1/dtds.html#a_dtd_xhtml-1.0-strict. http://www.zvon.org/xxl/xhtmlreference/output/comparison.html. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 40

Fragmenty definicji typów <!ENTITY % LanguageCode "NMTOKEN"> <!ENTITY % Script "CDATA"> <!ENTITY % StyleSheet "CDATA"> <!ENTITY % Text "CDATA"> <!ENTITY % coreattrs "id ID #IMPLIED class CDATA #IMPLIED style %StyleSheet; IMPLIED title %Text; #IMPLIED"> <!ENTITY % events "onclick %Script; #IMPLIED..."> <!ENTITY % i18n "lang %LanguageCode; #IMPLIED xml:lang %LanguageCode; #IMPLIED dir (ltr rtl) #IMPLIED"> <!ENTITY % attrs "%coreattrs; %i18n; %events;"> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 41

Model dla elementów tekstowych <!ENTITY % special.pre "br span bdo map"> <!ENTITY % special "%special.pre; object img "> <!ENTITY % fontstyle "tt i b big small "> <!ENTITY % phrase "em strong... sub sup "> <!ENTITY % inline.forms "input select... button"> <!ENTITY % inline "a %special; %fontstyle; %phrase; %inline.forms;"> <!ENTITY % Inline "(#PCDATA %inline; %misc.inline;)*"> Wyłączenie zawartości: <!ENTITY % a.content "(#PCDATA %special; %fontstyle; %phrase; %inline.forms; %misc.inline;)*"> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 42

Elementy blokowe <!ENTITY % heading "h1 h2 h3 h4 h5 h6"> <!ENTITY % lists "ul ol dl"> <!ENTITY % blocktext "pre hr blockquote address"> <!ENTITY % block "p %heading; div %lists; %blocktext; fieldset table"> <!ENTITY % Block "(%block; form %misc;)*"> <!ENTITY % Flow "(#PCDATA %block; form %inline; %misc;)*"> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 43

A teraz już z górki... <!ELEMENT html (head, body)> <!ATTLIST html %i18n; id ID #IMPLIED xmlns %URI; #FIXED http://www.w3.org/1999/xhtml > <!ELEMENT p %Inline;> <!ATTLIST p %attrs;> <!ELEMENT ul (li)+> <!ATTLIST ul %attrs;> <!ELEMENT li %Flow;> <!ATTLIST li %attrs;> <!ELEMENT b %Inline;> <!ATTLIST b %attrs;> Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 44

Dlaczego DTD to za mało? Wady DTD: prawie zupełny brak kontroli nad tekstową zawartością elementów atrybutów, bardzo ogólne metody definiowania częstości wystąpień elementów struktury, mało obiektowe, nierozszerzalne modele struktury. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 45

Dla niecierpliwych: co nowego w XML Schema? Same zalety: XML-owa składnia, przestrzenie nazw w schemacie, prawdziwe typy danych (liczby, daty,...), lepsza kontrola nad zawartością elementu (lepsza niż *, + i?), lepsza rozszerzalność definicji bez przepisywania. Wykład 2: Modelowanie dokumentów XML-owych. DTD XML i nowoczesne metody zarządzania treścią 46