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

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

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

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.

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

XML DTD XML Schema CSS

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

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

Wprowadzenie do technologii XML

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

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

XML extensible Markup Language. Paweł Chodkiewicz

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

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

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

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

Rola języka XML narzędziem

Technologie zarządzania treścią

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

Przykładowy dokument XML

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

XML i nowoczesne metody zarządzania treścią

XML extensible Markup Language. część 3

Wprowadzenie do XML. Tomasz Przechlewski

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

c TP: anything: 13 listopada 2004 roku 1

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

XML Schema. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

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

Dodatek Technologie internetowe 1. UTF-8 wg 2. Adresy URL

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Aplikacje internetowe laboratorium XML, DTD, XSL

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

XML Schema. Forma nazwy lokalnych elementów i atrybutów

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Semistrukturalne bazy danych Wykład dla studentów matematyki

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

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

I.Wojnicki, Tech.Inter.

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

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

INTEGRACJA I EKSPLORACJA DANYCH

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Pracownia Komputerowa wyk ad VII

XML i nowoczesne technologie zarządzania treścią

Podstawy XML-a. Zaawansowane techniki programowania

XML extensible Markup Language 1

Wprowadzenie do XML schema

Komunikacja człowiek-komputer

Symbole wieloznaczne w XML Schema. Definiowanie typów dokumentów Część 4. XML Schema, RELAX NG, Schematron. Schematron

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

XML a białe znaki. Poprawne modele zawartości. Zarządzanie zmianami struktury. Model błędnej zawartości (1) Model błędnej zawartości (2)

HTML DOM, XHTML cel, charakterystyka

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

Model semistrukturalny

Podstawy (X)HTML i CSS

XML i nowoczesne metody zarządzania treścią

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

Technologie zarządzania treścią

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

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

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

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

Przykładowy dokument XML

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

Kodowanie informacji. Przygotował: Ryszard Kijanka

XML i nowoczesne metody zarządzania treścią

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

Wprowadzenie do technologii XML

Środowisko XML (Extensible Markup Language).

Wstęp do Informatyki

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Metody reprezentacji informacji Przedmiot:

mgr inż. Jacek Staniec Język XML

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

Narzędzia informatyczne w językoznawstwie

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII

XML w bazach danych i bezpieczeństwie

XML extensible Markup Language. część 1

XML i nowoczesne metody zarządzania treścią

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s Rodzina języków XML. Przemysław Kazienko

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

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

XML w bazach danych i bezpieczeństwie

Stwórz dokument XML zawierający poniższe informacje. Wykorzystaj atrybuty.

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

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

METODY REPREZENTACJI INFORMACJI

Format danych adnotacji do tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap w związku ze zbiegiem egzekucji

INFORMACJE NA TEMAT STRUKTURY PLIKU XML

Techniki multimedialne

Dodatkowe możliwości RDF. Seminarium magisterskie Paweł Chrząszczewski

Zaawansowana Pracownia Komputerowa - Ćwiczenia. Krzysztof Miernik

Transkrypt:

XML w sosie własnym Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 1 / 37

Plan 1 Podstawy XML Dokument XML warstwa logiczna Dokument XML warstwa fizyczna Standardy kodowania znaków 2 DTD Motywacja dla definiowania struktury dokumentów DTD elementy i atrybuty DTD encje i parametryzacja 3 Przestrzenie nazw Motywacja Realizacja Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 2 / 37

Plan Podstawy XML 1 Podstawy XML Dokument XML warstwa logiczna Dokument XML warstwa fizyczna Standardy kodowania znaków 2 DTD Motywacja dla definiowania struktury dokumentów DTD elementy i atrybuty DTD encje i parametryzacja 3 Przestrzenie nazw Motywacja Realizacja Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 3 / 37

Podstawy XML Model dokumentu XML Dokument XML warstwa logiczna Opisany bardziej formalnie m.in. w standardach XML Information Set, XPath, DOM. Dokument jest drzewem: elementy węzły drzewa, posiadaja nazwę, moga posiadać atrybuty, węzły tekstowe liście drzewa, ponadto komentarze i instrukcje przetwarzania także liście. Atrybuty to własności elementów identyfikowane po nazwie, nie sa dziećmi elementów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 4 / 37

Podstawy XML Model dokumentu XML Dokument XML warstwa logiczna Opisany bardziej formalnie m.in. w standardach XML Information Set, XPath, DOM. Dokument jest drzewem: elementy węzły drzewa, posiadaja nazwę, moga posiadać atrybuty, węzły tekstowe liście drzewa, ponadto komentarze i instrukcje przetwarzania także liście. Atrybuty to własności elementów identyfikowane po nazwie, nie sa dziećmi elementów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 4 / 37

Podstawy XML Model dokumentu XML Dokument XML warstwa logiczna Opisany bardziej formalnie m.in. w standardach XML Information Set, XPath, DOM. Dokument jest drzewem: elementy węzły drzewa, posiadaja nazwę, moga posiadać atrybuty, węzły tekstowe liście drzewa, ponadto komentarze i instrukcje przetwarzania także liście. Atrybuty to własności elementów identyfikowane po nazwie, nie sa dziećmi elementów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 4 / 37

Podstawy XML Model dokumentu XML Dokument XML warstwa logiczna Opisany bardziej formalnie m.in. w standardach XML Information Set, XPath, DOM. Dokument jest drzewem: elementy węzły drzewa, posiadaja nazwę, moga posiadać atrybuty, węzły tekstowe liście drzewa, ponadto komentarze i instrukcje przetwarzania także liście. Atrybuty to własności elementów identyfikowane po nazwie, nie sa dziećmi elementów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 4 / 37

Podstawy XML Model dokumentu XML Dokument XML warstwa logiczna Opisany bardziej formalnie m.in. w standardach XML Information Set, XPath, DOM. Dokument jest drzewem: elementy węzły drzewa, posiadaja nazwę, moga posiadać atrybuty, węzły tekstowe liście drzewa, ponadto komentarze i instrukcje przetwarzania także liście. Atrybuty to własności elementów identyfikowane po nazwie, nie sa dziećmi elementów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 4 / 37

Podstawy XML Model dokumentu XML Dokument XML warstwa logiczna Opisany bardziej formalnie m.in. w standardach XML Information Set, XPath, DOM. Dokument jest drzewem: elementy węzły drzewa, posiadaja nazwę, moga posiadać atrybuty, węzły tekstowe liście drzewa, ponadto komentarze i instrukcje przetwarzania także liście. Atrybuty to własności elementów identyfikowane po nazwie, nie sa dziećmi elementów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 4 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. </treść> </artykuł> Element główny Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. </treść> </artykuł> Element Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. </treść> </artykuł> Znacznik otwierajacy Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. </treść> </artykuł> Znacznik zamykajacy Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. </treść> </artykuł> Atrybuty Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. </treść> </artykuł> Węzeł tekstowy Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. </treść> </artykuł> Zawartość mieszana Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. <!- - TODO: Dopisać o Javie i Ocamlu - -> </treść> </artykuł> <!- -recenzent: podać ciekawszy przykład - -> Komentarze Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <?xml-stylesheet type="text/css" href="styl.css"?> <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść><?drukarnia kod ma być wyróżniony?> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. <!- - TODO: Dopisać o Javie i Ocamlu - -> </treść> </artykuł> <!- -recenzent: podać ciekawszy przykład - -> Instrukcje przetwarzania Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa logiczna Zapisywanie struktury dokumentu, znaczniki <?xml version="1.0" encoding="iso-8859-2"?> <?xml-stylesheet type="text/css" href="styl.css"?> <artykuł id="13/2007" xml:lang="pl"> <tytuł>przypisanie w Pascalu i C </tytuł> <autor email= ola@fasola.pl >Ola Fasola</autor> <treść><?drukarnia kod ma być wyróżniony?> W Pascalu przypisanie ma postać <kod>x := 5</kod>, natomiast w C <kod>x = 5</kod>. <!- - TODO: Dopisać o Javie i Ocamlu - -> </treść> </artykuł> <!- -recenzent: podać ciekawszy przykład - -> Deklaracja XML Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 5 / 37

Podstawy XML Dokument XML warstwa fizyczna Encja Encja w XML/SGML to uogólnienie pojęcia pliku (także np. wynik działania aplikacji). Dokument jest zapisany w co najmniej jednej encji głównej. Dokument może zawierać referencje do encji zadeklarowane w DTD, rozwinięte gdy widzimy dokument w warstwie logicznej, czyli wstawione i sparsowane. O deklarowaniu encji w DTD w dalszej części wykładu. Przykłady referencji do encji <coś warunek="x < 5"> bla bla &moja_encja; bla bla </coś> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 6 / 37

Podstawy XML Dokument XML warstwa fizyczna Encja Encja w XML/SGML to uogólnienie pojęcia pliku (także np. wynik działania aplikacji). Dokument jest zapisany w co najmniej jednej encji głównej. Dokument może zawierać referencje do encji zadeklarowane w DTD, rozwinięte gdy widzimy dokument w warstwie logicznej, czyli wstawione i sparsowane. O deklarowaniu encji w DTD w dalszej części wykładu. Przykłady referencji do encji <coś warunek="x < 5"> bla bla &moja_encja; bla bla </coś> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 6 / 37

Encje predefiniowane Podstawy XML Dokument XML warstwa fizyczna Nie trzeba ich deklarować. Najwygodniejszy sposób zapisywania znaków specjalnych. Encje predefiniowane < < > > & & &apos; " " Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 7 / 37

Podstawy XML Dokument XML warstwa fizyczna Referencje do znaków Pozwalaja na umieszczenie w dokumencie dowolnego znaku Unicode. ϩ referencja do znaku o kodzie 1001, ሿ referencja do znaku o kodzie szesnastkowym 123F. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 8 / 37

Podstawy XML Dokument XML warstwa fizyczna Sekcje CDATA Pozwalaja na umieszczenie w dokumencie fragmentu nie przetwarzanego przez parser. Przykład Znacznik otwierajacy: <[CDATA[ Znacznik zamykajacy: ]]> ]]> nie może wystapić literlanie w normalnej treści dokumentu! <coś> Coś nie do parsowania: <![CDATA[x > 0 && x < 100]]> </coś> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 9 / 37

Podstawy XML Dokument XML warstwa fizyczna Sekcje CDATA Pozwalaja na umieszczenie w dokumencie fragmentu nie przetwarzanego przez parser. Przykład Znacznik otwierajacy: <[CDATA[ Znacznik zamykajacy: ]]> ]]> nie może wystapić literlanie w normalnej treści dokumentu! <coś> Coś nie do parsowania: <![CDATA[x > 0 && x < 100]]> </coś> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 9 / 37

Podstawy XML Standardy kodowania znaków Unicode i Universal Character Set (UCS) Tabela przyporzadkowuj aca numerom abstrakcyjne znaki np. ogonek tworzacy ą z a. Obecnie (Unicode 5.0, ISO/IEC 10646:2003 z dodatkami) około 100 tys. znaków, miejsce na ponad milion. Unicode ponadto opisuje metadane znaków, np.: kolejność liter w alfabetach, wartość liczbowa cyfry. Podstawowy zestaw znaków (Unicode 2.0) daje się zapisać za pomoca dwóch bajtów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 10 / 37

Podstawy XML Standardy kodowania znaków Popularne sposoby zapisywania Unicode UTF-16 znaki z zestawu podstawowego zapisywane po prostu, istotna kolejność bajtów w słowie (dwie wersje), znaki spoza zestawu podstawowego jako para dwubajtowych słów. UTF-8 znaki o kodach 0 127 zapisywane w jednym bajcie zgodnie z ASCII i ISO-8859-_, znaki z zakresu podstawowego zajmuja do czterech bajtów, pozostałe znaki zapisywane do sześciu bajtów, optymalizaje ułatwiajace znajdowanie poczatku znaku w środku tekstu. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 11 / 37

Podstawy XML Standardy kodowania znaków Popularne sposoby zapisywania Unicode UTF-16 znaki z zestawu podstawowego zapisywane po prostu, istotna kolejność bajtów w słowie (dwie wersje), znaki spoza zestawu podstawowego jako para dwubajtowych słów. UTF-8 znaki o kodach 0 127 zapisywane w jednym bajcie zgodnie z ASCII i ISO-8859-_, znaki z zakresu podstawowego zajmuja do czterech bajtów, pozostałe znaki zapisywane do sześciu bajtów, optymalizaje ułatwiajace znajdowanie poczatku znaku w środku tekstu. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 11 / 37

Podstawy XML Standardy kodowania znaków Inne standardy Standardy jendobajtowe Popularne standardy jednobajtowe (Windows-1250/Latin-2, ISO-8859-2 i inne): XML Kody 0 127 zgodne z ASCII, Unicode i UTF-8. Kody 128 255 mapowane na inne znaki Unicode. XML może być zapisany w dowolnym standardzie dajacym się zmapować na Unicode (odpowiedzialność parsera). Każde narzędzie XML-owe musi obsługiwać UTF-8. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 12 / 37

Podstawy XML Standardy kodowania znaków Inne standardy Standardy jendobajtowe Popularne standardy jednobajtowe (Windows-1250/Latin-2, ISO-8859-2 i inne): XML Kody 0 127 zgodne z ASCII, Unicode i UTF-8. Kody 128 255 mapowane na inne znaki Unicode. XML może być zapisany w dowolnym standardzie dajacym się zmapować na Unicode (odpowiedzialność parsera). Każde narzędzie XML-owe musi obsługiwać UTF-8. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 12 / 37

Plan DTD 1 Podstawy XML Dokument XML warstwa logiczna Dokument XML warstwa fizyczna Standardy kodowania znaków 2 DTD Motywacja dla definiowania struktury dokumentów DTD elementy i atrybuty DTD encje i parametryzacja 3 Przestrzenie nazw Motywacja Realizacja Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 13 / 37

DTD Definiowanie struktury motywacja XML jako metajęzyk XML, SGML metajęzyki: języki opisane w standardach (XHTML, DocBook XML, WSDL, SVG,... ), możliwość definiowania w własnych języków. Definiowanie języków (zastosowań, struktury dokumentów, typów dokumentów): określanie zestawu dopuszczalnych elementów, atrybutów,..., definiowanie dopuszczalnej zawartości elementów (tekst, inne elementy), przypisywanie atrybutów do elementów,.... Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 14 / 37

DTD Definiowanie struktury motywacja XML jako metajęzyk XML, SGML metajęzyki: języki opisane w standardach (XHTML, DocBook XML, WSDL, SVG,... ), możliwość definiowania w własnych języków. Definiowanie języków (zastosowań, struktury dokumentów, typów dokumentów): określanie zestawu dopuszczalnych elementów, atrybutów,..., definiowanie dopuszczalnej zawartości elementów (tekst, inne elementy), przypisywanie atrybutów do elementów,.... Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 14 / 37

DTD Definiowanie struktury motywacja Dwa stopnie poprawności dokumentu Dokument XML poprawny składniowo (ang. well-formed): poprawne nazwy, każdy element musi być zamknięty, nie ma nakładajacych się elementów (struktura drzewa), wartości atrybutów w apostrofach lub cudzysłowach.... Dokument XML poprawny strukturalnie (ang. valid): zgodny z definicja struktury, standard XML zgodność z DTD, to samo określenie poprawność względem innych standardów (XML Schema, Relax NG,... ). Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 15 / 37

DTD Definiowanie struktury motywacja Dwa stopnie poprawności dokumentu Dokument XML poprawny składniowo (ang. well-formed): poprawne nazwy, każdy element musi być zamknięty, nie ma nakładajacych się elementów (struktura drzewa), wartości atrybutów w apostrofach lub cudzysłowach.... Dokument XML poprawny strukturalnie (ang. valid): zgodny z definicja struktury, standard XML zgodność z DTD, to samo określenie poprawność względem innych standardów (XML Schema, Relax NG,... ). Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 15 / 37

DTD Definiowanie struktury motywacja Zalety kontroli poprawności strukturalnej (za pomoca gotowych narzędzi, zwykle podczas parsowania) Można przyjać założenia dotyczace struktury dokumentu np. występowanie danego elementu. Nie trzeba ręcznie badać struktury. Metody definiowania struktury: DTD Document Type Definition, XML Schema (rekomendacja W3C z 2 maja 2001), Relax NG, Schematron, (?)..., dokument XML bez formalnej definicji struktury. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 16 / 37

DTD Definiowanie struktury motywacja Zalety kontroli poprawności strukturalnej (za pomoca gotowych narzędzi, zwykle podczas parsowania) Można przyjać założenia dotyczace struktury dokumentu np. występowanie danego elementu. Nie trzeba ręcznie badać struktury. Metody definiowania struktury: DTD Document Type Definition, XML Schema (rekomendacja W3C z 2 maja 2001), Relax NG, Schematron, (?)..., dokument XML bez formalnej definicji struktury. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 16 / 37

DTD Definiowanie struktury motywacja Zalety kontroli poprawności strukturalnej (za pomoca gotowych narzędzi, zwykle podczas parsowania) Można przyjać założenia dotyczace struktury dokumentu np. występowanie danego elementu. Nie trzeba ręcznie badać struktury. Metody definiowania struktury: DTD Document Type Definition, XML Schema (rekomendacja W3C z 2 maja 2001), Relax NG, Schematron, (?)..., dokument XML bez formalnej definicji struktury. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 16 / 37

DTD Definiowanie struktury motywacja Modelowanie jako proces analityczny Wieloetapowy proces analityczno-projektowy: Uwaga analiza struktury modelowanych bytów, analiza przykładowych dokumentów, analiza potencjalnych zastosowań oraz przypadków użycia, abstrakcyjny projekt struktury, kodowanie projektu struktury np. przy pomocy XML Schema, testowanie, pielęgnacja i uaktualnianie. Definicja zastosowania XML powinna określać nie tylko składnię (DTD, XML Schema), ale i semantykę znaczenie poszczególnych elementów i atrybutów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 17 / 37

DTD Definiowanie struktury motywacja Modelowanie jako proces analityczny Wieloetapowy proces analityczno-projektowy: Uwaga analiza struktury modelowanych bytów, analiza przykładowych dokumentów, analiza potencjalnych zastosowań oraz przypadków użycia, abstrakcyjny projekt struktury, kodowanie projektu struktury np. przy pomocy XML Schema, testowanie, pielęgnacja i uaktualnianie. Definicja zastosowania XML powinna określać nie tylko składnię (DTD, XML Schema), ale i semantykę znaczenie poszczególnych elementów i atrybutów. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 17 / 37

Położenie DTD DTD DTD elementy i atrybuty Wewnatrz dokumentu. Na zewnatrz (w encji zewnętrznej) identyfikator systemowy, identyfikator publiczny. częściowo wewnatrz, częściowo na zewnatrz, jako pierwsza przetwarzana część wewnętrzna. Przykład <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]> <greeting>hello, world!</greeting> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 18 / 37

Położenie DTD DTD DTD elementy i atrybuty Wewnatrz dokumentu. Na zewnatrz (w encji zewnętrznej) identyfikator systemowy, identyfikator publiczny. częściowo wewnatrz, częściowo na zewnatrz, jako pierwsza przetwarzana część wewnętrzna. Przykład <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>hello, world!</greeting> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 18 / 37

Położenie DTD DTD DTD elementy i atrybuty Wewnatrz dokumentu. Na zewnatrz (w encji zewnętrznej) identyfikator systemowy, identyfikator publiczny. częściowo wewnatrz, częściowo na zewnatrz, jako pierwsza przetwarzana część wewnętrzna. Przykład <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE greeting PUBLIC "-//W3C//GREETEING 1.0//EN" "hello.dtd"> <greeting>hello, world!</greeting> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 18 / 37

Położenie DTD DTD DTD elementy i atrybuty Wewnatrz dokumentu. Na zewnatrz (w encji zewnętrznej) identyfikator systemowy, identyfikator publiczny. częściowo wewnatrz, częściowo na zewnatrz, jako pierwsza przetwarzana część wewnętrzna. Przykład <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE greeting SYSTEM "hello.dtd" [ <!ATTLIST greeting words CDATA #IMPLIED> ]> <greeting words="2">hello, world!</greeting> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 18 / 37

Deklaracja elementu DTD DTD elementy i atrybuty <!ELEMENT nazwa-elementu typ-zawartości-elementu > Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 19 / 37

DTD DTD elementy i atrybuty Deklaracja elementu <!ELEMENT nazwa-elementu typ-zawartości-elementu > Typy zawartości elementów ANY dowolna zawartość, EMPTY element pusty, #PCDATA zawartość tekstowa, (#PCDATA elem1 elem2... ) zawartość mieszana: tekst z zanurzonymi podelementami, brak kontroli kolejności i liczności podelementów. wyrażenie regularne tylko podelementy bez tekstu. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 19 / 37

DTD DTD elementy i atrybuty Deklaracja elementu <!ELEMENT nazwa-elementu typ-zawartości-elementu > Typy zawartości elementów ANY dowolna zawartość, EMPTY element pusty, #PCDATA zawartość tekstowa, (#PCDATA elem1 elem2... ) zawartość mieszana: tekst z zanurzonymi podelementami, brak kontroli kolejności i liczności podelementów. wyrażenie regularne tylko podelementy bez tekstu. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 19 / 37

DTD DTD elementy i atrybuty Deklaracja elementu <!ELEMENT nazwa-elementu typ-zawartości-elementu > Typy zawartości elementów ANY dowolna zawartość, EMPTY element pusty, #PCDATA zawartość tekstowa, (#PCDATA elem1 elem2... ) zawartość mieszana: tekst z zanurzonymi podelementami, brak kontroli kolejności i liczności podelementów. wyrażenie regularne tylko podelementy bez tekstu. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 19 / 37

DTD DTD elementy i atrybuty Deklaracja elementu <!ELEMENT nazwa-elementu typ-zawartości-elementu > Typy zawartości elementów ANY dowolna zawartość, EMPTY element pusty, #PCDATA zawartość tekstowa, (#PCDATA elem1 elem2... ) zawartość mieszana: tekst z zanurzonymi podelementami, brak kontroli kolejności i liczności podelementów. wyrażenie regularne tylko podelementy bez tekstu. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 19 / 37

DTD DTD elementy i atrybuty Deklaracja elementu <!ELEMENT nazwa-elementu typ-zawartości-elementu > Typy zawartości elementów ANY dowolna zawartość, EMPTY element pusty, #PCDATA zawartość tekstowa, (#PCDATA elem1 elem2... ) zawartość mieszana: tekst z zanurzonymi podelementami, brak kontroli kolejności i liczności podelementów. wyrażenie regularne tylko podelementy bez tekstu. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 19 / 37

DTD DTD elementy i atrybuty Wyrażenia regularne w typie zaw. elem. Nazwy elementów (atomy). Nawiasy. Spójniki pomiędzy nazwami lub grupami w nawiasach:, sekwencja, wybór. Modyfikatory za nazwa lub nawiasem zamykajacym:? opcjonalny, * zero lub więcej, + jeden lub więcej. Przykład <!ELEMENT osoby (osoba)* > <!ELEMENT osoba ((imię+, nazwisko) pseudonim) > Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 20 / 37

DTD DTD elementy i atrybuty Wyrażenia regularne w typie zaw. elem. Nazwy elementów (atomy). Nawiasy. Spójniki pomiędzy nazwami lub grupami w nawiasach:, sekwencja, wybór. Modyfikatory za nazwa lub nawiasem zamykajacym:? opcjonalny, * zero lub więcej, + jeden lub więcej. Przykład <!ELEMENT osoby (osoba)* > <!ELEMENT osoba ((imię+, nazwisko) pseudonim) > Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 20 / 37

DTD DTD elementy i atrybuty Wyrażenia regularne w typie zaw. elem. Nazwy elementów (atomy). Nawiasy. Spójniki pomiędzy nazwami lub grupami w nawiasach:, sekwencja, wybór. Modyfikatory za nazwa lub nawiasem zamykajacym:? opcjonalny, * zero lub więcej, + jeden lub więcej. Przykład <!ELEMENT osoby (osoba)* > <!ELEMENT osoba ((imię+, nazwisko) pseudonim) > Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 20 / 37

DTD DTD elementy i atrybuty Wyrażenia regularne w typie zaw. elem. Nazwy elementów (atomy). Nawiasy. Spójniki pomiędzy nazwami lub grupami w nawiasach:, sekwencja, wybór. Modyfikatory za nazwa lub nawiasem zamykajacym:? opcjonalny, * zero lub więcej, + jeden lub więcej. Przykład <!ELEMENT osoby (osoba)* > <!ELEMENT osoba ((imię+, nazwisko) pseudonim) > Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 20 / 37

DTD Deklaracja listy atrybutów DTD elementy i atrybuty <!ATTLIST nazwa-elementu nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej...> Może być wiele list atrybutów dla danego elementu, sa akumulowane, ważniejsza jest wcześniejsza. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 21 / 37

DTD DTD elementy i atrybuty Deklaracja listy atrybutów <!ATTLIST nazwa-elementu nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej...> Może być wiele list atrybutów dla danego elementu, sa akumulowane, ważniejsza jest wcześniejsza. Opis domyślnej #REQUIRED atrybut obowiazkowy, #IMPLIED atrybut opcjonalny, "wartość" wartość domyślna, #FIXED "wartość" wartość ustalona. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 21 / 37

DTD DTD elementy i atrybuty Deklaracja listy atrybutów <!ATTLIST nazwa-elementu nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej...> Może być wiele list atrybutów dla danego elementu, sa akumulowane, ważniejsza jest wcześniejsza. Opis domyślnej #REQUIRED atrybut obowiazkowy, #IMPLIED atrybut opcjonalny, "wartość" wartość domyślna, #FIXED "wartość" wartość ustalona. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 21 / 37

DTD DTD elementy i atrybuty Deklaracja listy atrybutów <!ATTLIST nazwa-elementu nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej...> Może być wiele list atrybutów dla danego elementu, sa akumulowane, ważniejsza jest wcześniejsza. Opis domyślnej #REQUIRED atrybut obowiazkowy, #IMPLIED atrybut opcjonalny, "wartość" wartość domyślna, #FIXED "wartość" wartość ustalona. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 21 / 37

DTD DTD elementy i atrybuty Deklaracja listy atrybutów <!ATTLIST nazwa-elementu nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej nazwa-atrybutu typ-zawartości-atrybutu opis-domyślnej...> Może być wiele list atrybutów dla danego elementu, sa akumulowane, ważniejsza jest wcześniejsza. Opis domyślnej #REQUIRED atrybut obowiazkowy, #IMPLIED atrybut opcjonalny, "wartość" wartość domyślna, #FIXED "wartość" wartość ustalona. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 21 / 37

DTD Typy zawartości atrybutów DTD elementy i atrybuty CDATA dowolny tekst, NMTOKEN token (tylko litery, cyfry i znaki _ - :), NMTOKENS tokeny rozdzielone białymi znakami, ID identyfikator unikalny w skali dokumentu, musi być nazwa, dla danego typu elementu max jeden atrybut typu ID. IDREF i IDREFS wartość równa wartości pewnego atrybutu typu ID w tym samym dokumencie. Przykład <!ATTLIST osoba płeć (K M) #REQUIRED email CDATA #IMPLIED> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 22 / 37

DTD Typy zawartości atrybutów DTD elementy i atrybuty CDATA dowolny tekst, NMTOKEN token (tylko litery, cyfry i znaki _ - :), NMTOKENS tokeny rozdzielone białymi znakami, ID identyfikator unikalny w skali dokumentu, musi być nazwa, dla danego typu elementu max jeden atrybut typu ID. IDREF i IDREFS wartość równa wartości pewnego atrybutu typu ID w tym samym dokumencie. Przykład <!ATTLIST osoba płeć (K M) #REQUIRED email CDATA #IMPLIED> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 22 / 37

DTD Typy zawartości atrybutów DTD elementy i atrybuty CDATA dowolny tekst, NMTOKEN token (tylko litery, cyfry i znaki _ - :), NMTOKENS tokeny rozdzielone białymi znakami, ID identyfikator unikalny w skali dokumentu, musi być nazwa, dla danego typu elementu max jeden atrybut typu ID. IDREF i IDREFS wartość równa wartości pewnego atrybutu typu ID w tym samym dokumencie. Przykład <!ATTLIST osoba płeć (K M) #REQUIRED email CDATA #IMPLIED> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 22 / 37

DTD Typy zawartości atrybutów DTD elementy i atrybuty CDATA dowolny tekst, NMTOKEN token (tylko litery, cyfry i znaki _ - :), NMTOKENS tokeny rozdzielone białymi znakami, ID identyfikator unikalny w skali dokumentu, musi być nazwa, dla danego typu elementu max jeden atrybut typu ID. IDREF i IDREFS wartość równa wartości pewnego atrybutu typu ID w tym samym dokumencie. Przykład <!ATTLIST osoba płeć (K M) #REQUIRED email CDATA #IMPLIED> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 22 / 37

DTD Typy zawartości atrybutów DTD elementy i atrybuty CDATA dowolny tekst, NMTOKEN token (tylko litery, cyfry i znaki _ - :), NMTOKENS tokeny rozdzielone białymi znakami, ID identyfikator unikalny w skali dokumentu, musi być nazwa, dla danego typu elementu max jeden atrybut typu ID. IDREF i IDREFS wartość równa wartości pewnego atrybutu typu ID w tym samym dokumencie. Przykład <!ATTLIST osoba płeć (K M) #REQUIRED email CDATA #IMPLIED> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 22 / 37

DTD DTD encje i parametryzacja Encja ogólna: wewnętrzna i zewnętrzna Encja ogólna referencje moga występować w węzłach tekstowych i atrybutach w atrybutach tylko encje zawierajace tekst. Encja wewnętrzna treść podana bezpośrednio w DTD. Encja zewnętrzna treść znajduje się w zasobie zewnętrznym (pliku itp.). Przykład <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE coś [ <!ELEMENT coś (#PCDATA)> <!ENTITY wewnętrzna "Wartość" > <!ENTITY zewnętrzna SYSTEM "plik.xml" > ]> <coś> &wewnętrzna; &zewnętrzna; </coś> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 23 / 37

DTD DTD encje i parametryzacja Encja ogólna: wewnętrzna i zewnętrzna Encja ogólna referencje moga występować w węzłach tekstowych i atrybutach w atrybutach tylko encje zawierajace tekst. Encja wewnętrzna treść podana bezpośrednio w DTD. Encja zewnętrzna treść znajduje się w zasobie zewnętrznym (pliku itp.). Przykład <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE coś [ <!ELEMENT coś (#PCDATA)> <!ENTITY wewnętrzna "Wartość" > <!ENTITY zewnętrzna SYSTEM "plik.xml" > ]> <coś> &wewnętrzna; &zewnętrzna; </coś> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 23 / 37

DTD DTD encje i parametryzacja Encja ogólna: wewnętrzna i zewnętrzna Encja ogólna referencje moga występować w węzłach tekstowych i atrybutach w atrybutach tylko encje zawierajace tekst. Encja wewnętrzna treść podana bezpośrednio w DTD. Encja zewnętrzna treść znajduje się w zasobie zewnętrznym (pliku itp.). Przykład <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE coś [ <!ELEMENT coś (#PCDATA)> <!ENTITY wewnętrzna "Wartość" > <!ENTITY zewnętrzna SYSTEM "plik.xml" > ]> <coś> &wewnętrzna; &zewnętrzna; </coś> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 23 / 37

Encje parametryczne DTD DTD encje i parametryzacja Encja parametryczna referencje moga występować wewnatrz DTD. Przykład Brak konfliktu nazw z encjami ogólnymi. Wewnętrzne lub zewnętrzne. <!ENTITY % TOsosba "(imię+, nazwisko)"> <!ELEMENT student %TOsoba;> <!ELEMENT pracownik %TOsoba;> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 24 / 37

DTD DTD encje i parametryzacja Encje nieprzetwarzane Pozwalaja na dołaczanie do dokumentów danych binarnych. Referencje tylko w specjalnie zadeklarowanych atrybutach. Wymagaja zadeklarowania notacji. Pozostałość SGML, praktycznie nieużywane w nowoczesnych zastosowaniach XML. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 25 / 37

DTD Rodzaje encji podsumowanie DTD encje i parametryzacja wewnętrzne zewnętrzne przetw. nieprzetw. przetw. nieprzetw. ogólne TAK NIE TAK TAK parametryczne TAK NIE TAK NIE Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 26 / 37

Sekcje warunkowe DTD DTD encje i parametryzacja <![INCLUDE[... ]]> <![IGNORE[... ]]> Powoduja przetworzenie lub nie danego fragmentu DTD. W połaczeniu z encjami parametrycznymi pozwalaja tworzyć sparametryzowane DTD. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 27 / 37

DTD DTD encje i parametryzacja Sekcje warunkowe zastosowania Zewnętrzna część DTD <!ENTITY % usos "IGNORE">... <![%usos;[ <!ATTLIST przedmiot usos-id CDATA #REQUIRED> ]]> Dokument <!DOCTYPE przedmioty SYSTEM "przedmioty.dtd" [ <!ENTITY % usos "INCLUDE"> ]>... <przedmiot usos-id="1000-2m01xm">xml</przedmiot>... Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 28 / 37

DTD DTD encje i parametryzacja Sekcje warunkowe zastosowania Zewnętrzna część DTD <!ENTITY % usos "IGNORE">... <![%usos;[ <!ATTLIST przedmiot usos-id CDATA #REQUIRED> ]]> Dokument <!DOCTYPE przedmioty SYSTEM "przedmioty.dtd" [ <!ENTITY % usos "INCLUDE"> ]>... <przedmiot usos-id="1000-2m01xm">xml</przedmiot>... Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 28 / 37

Plan Przestrzenie nazw 1 Podstawy XML Dokument XML warstwa logiczna Dokument XML warstwa fizyczna Standardy kodowania znaków 2 DTD Motywacja dla definiowania struktury dokumentów DTD elementy i atrybuty DTD encje i parametryzacja 3 Przestrzenie nazw Motywacja Realizacja Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 29 / 37

Konflikt nazw Przestrzenie nazw Motywacja Problem: ta sama nazwa oznacza dwa różne byty w różnych dokumentach, dokumenty te sa powiazane (np. wspólnie przetwarzane, jeden zanurzony w drugim, itp.) Rozwiazanie: przestrzeń nazw (namespace) grupa nazw oddzielona (składniowo i semantycznie) od innych nazw. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 30 / 37

Przestrzenie nazw Realizacja Jednoznaczny identyfikator W dokumencie: deklaracje przestrzeni nazw przypisanie prefiksom identyfikatorów przestrzeni nazw, nazwy składaja się z prefiksu i części lokalnej. Zamiast nazwy para: unikalny globalnie identyfikator przestrzeni nazw, nazwa lokalna. W wersji 1.0 za id. prz. nazw przyjęto URI: Uniform Resource Identifier, http://www.w3.org/1999/xhtml (przykładowy URL), urn:isbn:0-395-36341-1 (przykładowy URN). W wersji 1.1 standardu zmiana na IRI Internationalized Resource Identifier, uogólnienie URI dopuszczajace znaki spoza ASCII. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 31 / 37

Przestrzenie nazw Realizacja Jednoznaczny identyfikator W dokumencie: deklaracje przestrzeni nazw przypisanie prefiksom identyfikatorów przestrzeni nazw, nazwy składaja się z prefiksu i części lokalnej. Zamiast nazwy para: unikalny globalnie identyfikator przestrzeni nazw, nazwa lokalna. W wersji 1.0 za id. prz. nazw przyjęto URI: Uniform Resource Identifier, http://www.w3.org/1999/xhtml (przykładowy URL), urn:isbn:0-395-36341-1 (przykładowy URN). W wersji 1.1 standardu zmiana na IRI Internationalized Resource Identifier, uogólnienie URI dopuszczajace znaki spoza ASCII. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 31 / 37

Przestrzenie nazw Prefiksy i przestrzenie nazw Realizacja < os:osoba xmlns:os="http://szz.mimuw.edu.pl/osoby" xmlns:inst="http://szz.mimuw.edu.pl/instytucje" xmlns:xhtml="http://www.w3.org/1999/xhtml"> < os:imie>jan</ os:imie> < os:nazwisko>kowalski</ os:nazwisko> < os:nip>123-456-78-90</ os:nip> < os:opis>to jest < xhtml:b>bardzo</ xhtml:b> fajny facet!</ os:opis> < os:pracuje-w> < inst:firma> < inst:nazwa>business Consulting</ inst:nazwa> < inst:nip>987-654-32-10</ inst:nip> </ inst:firma> </ os:pracuje-w> </ os:osoba> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 32 / 37

Przestrzenie nazw Domyślna przestrzeń nazw Realizacja < osoba xmlns="http://szz.mimuw.edu.pl/osoby" xmlns:inst="http://szz.mimuw.edu.pl/instytucje" xmlns:xhtml="http://www.w3.org/1999/xhtml"> < imie>jan</ imie> < nazwisko>kowalski</ nazwisko> < NIP>123-456-78-90</ NIP> < opis>to jest < xhtml:b>bardzo</ xhtml:b> fajny facet!</ opis> < pracuje-w> < inst:firma> < inst:nazwa>business Consulting</ inst:nazwa> < inst:nip>987-654-32-10</ inst:nip> </ inst:firma> </ pracuje-w> </ osoba> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 33 / 37

Przestrzenie nazw Przedefiniowanie prefiksu Realizacja < pre:osoba xmlns:pre="http://szz.mimuw.edu.pl/osoby" xmlns:inst="http://szz.mimuw.edu.pl/instytucje" xmlns:xhtml="http://www.w3.org/1999/xhtml"> < pre:imie>jan</ pre:imie> < pre:nazwisko>kowalski</ pre:nazwisko> < pre:nip>123-456-78-90</ pre:nip> < pre:opis>to jest < xhtml:b>bardzo</ xhtml:b> fajny facet!</ pre:opis> < pre:pracuje-w> < pre:firma xmlns:pre="http://szz.mimuw.edu.pl/instytucje"> < pre:nazwa>business Consulting</ pre:nazwa> < pre:nip>987-654-32-10</ pre:nip> </ pre:firma> </ pre:pracuje-w> </ pre:osoba> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 34 / 37

Przestrzenie nazw Realizacja Domyślna przestrzeń nazw a atrybuty Domyślna przestrzeń nazw nie dotyczy atrybutów. Atrybuty bez prefiksu nie należa do żadnej przestrzeni nazw. Znaczenie atrybutu bez prefiksu zależy od tego w jakim znajduje się elemencie. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 35 / 37

Przestrzenie nazw Realizacja Przestrzenie nazw a nazwy atrybutów Poprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n2"> <good n1:a="1" n2:a="2"/> </x> Niepoprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n1"> <bad n1:a="1" n2:a="2"/> </x> Poprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns="http://szz.mimuw.edu.pl/n1"> < good n1:a="1" a="2"/> </x> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 36 / 37

Przestrzenie nazw Realizacja Przestrzenie nazw a nazwy atrybutów Poprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n2"> <good n1:a="1" n2:a="2"/> </x> Niepoprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n1"> <bad n1:a="1" n2:a="2"/> </x> Poprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns="http://szz.mimuw.edu.pl/n1"> < good n1:a="1" a="2"/> </x> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 36 / 37

Przestrzenie nazw Realizacja Przestrzenie nazw a nazwy atrybutów Poprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n2"> <good n1:a="1" n2:a="2"/> </x> Niepoprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns:n2="http://szz.mimuw.edu.pl/n1"> <bad n1:a="1" n2:a="2"/> </x> Poprawne <x xmlns:n1="http://szz.mimuw.edu.pl/n1" xmlns="http://szz.mimuw.edu.pl/n1"> < good n1:a="1" a="2"/> </x> Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 36 / 37

Przestrzenie nazw Realizacja Przestrzenie nazw a standard XML Sam standard XML (i DTD) nie wspiera przestrzeni nazw. Nowe standardy, jak XML Schema, XSLT czy XLink, wspieraja przestrzenie nazw. Namespaces in XML 1.0 rekomendacja W3C z 1999 r obecnie dotyczy dokumentów XML 1.0. Namespaces in XML 1.1 rekomendacja W3C z 2006 r dotyczy dokumentów XML 1.1, możliwość oddeklarowania prefiksu, IRI zamiast URI. Na dokument XML można patrzeć na dwa sposoby: nie uwzględniajac przestrzeni nazw, uwzględniajac przestrzenie nazw (mniej dokumentów poprawnych). Parsery zwykle daja wybór trybu parsowania. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 37 / 37

Przestrzenie nazw Realizacja Przestrzenie nazw a standard XML Sam standard XML (i DTD) nie wspiera przestrzeni nazw. Nowe standardy, jak XML Schema, XSLT czy XLink, wspieraja przestrzenie nazw. Namespaces in XML 1.0 rekomendacja W3C z 1999 r obecnie dotyczy dokumentów XML 1.0. Namespaces in XML 1.1 rekomendacja W3C z 2006 r dotyczy dokumentów XML 1.1, możliwość oddeklarowania prefiksu, IRI zamiast URI. Na dokument XML można patrzeć na dwa sposoby: nie uwzględniajac przestrzeni nazw, uwzględniajac przestrzenie nazw (mniej dokumentów poprawnych). Parsery zwykle daja wybór trybu parsowania. Patryk Czarnik (MIMUW) 02 XML i DTD XML 2007/08 37 / 37