XML extensible Markup Language. część 3

Podobne dokumenty
XML extensible Markup Language 1

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

XML extensible Markup Language. część 1

XML extensible Markup Language. część 4

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

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

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

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

XML extensible Markup Language. część 4

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

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

Wprowadzenie do technologii XML

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

Przykładowy dokument XML

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 Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

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

XML DTD XML Schema CSS

XML extensible Markup Language. Paweł Chodkiewicz

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

XML extensible Markup Language 3

Aplikacje internetowe laboratorium XML, DTD, XSL

c TP: anything: 13 listopada 2004 roku 1

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

Rola języka XML narzędziem

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

SWISS EPHEMERIS for the year 2012

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

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

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

- 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

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Programowanie internetowe

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

Podstawy XML-a. Zaawansowane techniki programowania

Elementarz HTML i CSS

Wprowadzenie do XML. Tomasz Przechlewski

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

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

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

XML i nowoczesne metody zarządzania treścią

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

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

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

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

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

Środowisko XML (Extensible Markup Language).

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

XML Schema w przykładach

Narzędzia informatyczne w językoznawstwie

Semistrukturalne bazy danych Wykład dla studentów matematyki

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

FIDKAR po dwóch latach

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

XML extensible Markup Language. część 2

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

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

INTEGRACJA I EKSPLORACJA DANYCH

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

METODY REPREZENTACJI INFORMACJI

Złożone komponenty JSF wg

HTML DOM, XHTML cel, charakterystyka

I.Wojnicki, Tech.Inter.

Wprowadzenie do XML schema

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

Format plików do importu INF-U 18 do e-pfron2

Ministerstwo Finansów

Technologie zarządzania treścią

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

Wprowadzenie do technologii XML

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

XML - wprowadzenie. <message> <text> Dobrze </text> </message> <message> <text> Źle </message> </text> <message> <message> <text> Źle.

Podstawy (X)HTML i CSS

XML i nowoczesne technologie zarządzania treścią

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Technologie zarządzania treścią

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

Aplikacje Internetowe

Złożone komponenty JSF wg

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

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

Bazy Danych i Usługi Sieciowe

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

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

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

używane skróty: HTTP - protokół do transferu tekstu, hipertekstu, zbiorów binarnych URL - jednolity lokalizator zasobów

GML w praktyce geodezyjnej

Dlaczego GML? Gdańsk r. Karol Stachura

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

XHTML Budowa strony WWW

Definiowanie typów dokumentów Część 3. XML Schema

XML extensible Markup Language 6

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

Ćwiczenia z podstaw systemu Linux

Schematy XML. Tomasz Traczyk.

WZÓR STRUKTURALNY ELEKTRONICZNEJ KARTY ZAPYTANIA

Model semistrukturalny

Transkrypt:

XML extensible Markup Language część 3

Definicja Typu Dokumentu - DTD DTD (ang. Document Type Definition) rodzaj dokumentu definiujący formalną strukturę dokumentów XML. DTD określa składnię konkretnej aplikacji XML czyli: definiuje każdy dopuszczalny element dokumentu, jego zbiór atrybutów i dopuszczalne wartości. określa zagnieżdżanie i wymagalność poszczególnych elementów w dokumencie. Przykład 1 W dokumencie XHTML element li może pojawić się tylko jako dziecko elementów ol lub ul. Informacja o tym zapisana jest właśnie w odpowiednim dokumencie DTD.

Definicja Typu Dokumentu - DTD Jeżeli dokument XML jest zgodny z określonym dla niego DTD mówimy wówczas że jest poprawny strukturalnie (w skrócie poprawny - ang. valid). Poprawność strukturalna dokumentu XML nie jest wymagana (zależy to np. od twórcy dokumentu). Wymagane jest aby dokument był poprawny składniowo. Jeżeli jednak dokument nie będzie poprawny aplikacja działająca w oparciu o dane w nim zapisane może nie działać poprawnie. UWAGA: Przyjęte jest, że w dokumencie XML zakazane jest wszystko co nie jest dozwolone przez związany z nim dokument DTD.

Definicja Typu Dokumentu - DTD Przykład 2 Rozważmy następujący dokument XML <person> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person> Jak może wyglądać DTD dla tego dokumentu?

Deklaracja Typu Dokumentu Poprawny dokument XML musi zawierać deklaracje związanego z nim DTD. Przykład 3 <!DOCTYPE person SYSTEM "http://www.cafeconleche.org/dtds/person.dtd"> Deklaracja ta mówi, że korzeniem dokumentu jest element person oraz, że DTD dla tego dokumentu znajduje się pod adresem http://www.cafeconleche.org/dtds/person.dtd Deklaracja typu dokumentu znajduje się zawsze na początku dokumentu zaraz po deklaracji XML i przed korzeniem dokumentu.

Deklaracja Typu Dokumentu Przykład 4 <?xml version="1.0" standalone="no"?> <!DOCTYPE person SYSTEM "http://www.cafeconleche.org/dtds/person.dtd"> <person> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person> Jeżeli dokument DTD znajduje się w tym samym folderze co dokument XML: <!DOCTYPE person SYSTEM "person.dtd">

Deklaracja Typu Dokumentu Deklaracja typu dokumentu zwykle znajduje się w oddzielnym pliku. Można ją jednak umieścić w dokumencie XML. Przykład 5 <?xml version="1.0"?> <!DOCTYPE person [ <!ELEMENT first_name (#PCDATA)> <!ELEMENT last_name (#PCDATA)> <!ELEMENT profession (#PCDATA)> <!ELEMENT name (first_name,last_name)> <!ELEMENT person (name,profession*)> ]> <person> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person>

Deklaracje Elementów Deklaracja elementu ma następującą postać: <!ELEMENT nazwa_elementu zawartość_elementu> nazwa_elementu określa nazwę elementu. zawartość_elementu określa dzieci elementu i ich uporządkowanie. Zawartość elementu Tekst - najprostszą zawartością elementu jest zwykły tekst. Oznaczamy go przez #PCDATA. Przykład 6 <!ELEMENT phone_number (#PCDATA)>

Deklaracje Elementów Dzieci deklarowany przez nas element może posiadać dzieci. Przykład 7 <!ELEMENT name (first_name, last_name)> Deklaracja ta oznacza, że element name posiada dzieci (kolejność ważna!!!): first_name, second_name Dla powyższej deklaracji elementu name poprawny jest dokument: Nie jest poprawny dokument: <name> <first_name>madonna</first_name> <last_name>ciconne</last_name> </name> <name> <last_name>ciconne</last_name> <first_name>madonna</first_name> </name>

Deklaracje Elementów W DTD możemy określić liczbę dzieci danego elementu wykorzystując następujące oznaczenia:? zero lub jeden element * - zero lub więcej elementów + - jeden lub więcej elementów Przykład 8 <!ELEMENT name (first_name, middle_name?, last_name?)> Element first_name jest wymagany. Element middle_name może nie wystąpić lub wystąpić tylko raz. Element last_name może nie wystąpić lub wystąpić tylko raz.

Deklaracje Elementów Dla powyższej deklaracji następujący dokument XML nie jest poprawny. Przykład 9 <name> <first_name>george</first_name> <middle_name>herbert</middle_name> <middle_name>walker</middle_name> <last_name>bush</last_name> </name> <name> <last_name>ciconne</last_name> <first_name>madonna</first_name> </name> <!ELEMENT name (first_name,middle_name*,last_name?)> Element middle_name może nie wystąpić lub wystąpić wiele razy.

Deklaracje Elementów Może się zdarzyć, że dwa różne przykłady tego samego elementu będą zawierały różne elementy-dzieci. Przykład 10 <!ELEMENT transport (train bus car)> Dzieckiem elementu transport może być train lub bus lub car. Elementy mogą mieć bardziej skomplikowane definicje. Przykład 11 <!ELEMENT center ((x, y) (r, ))> Dziećmi elementu center mogą być x i y lub r i.

Deklaracje Elementów Przykład 12 Dzieckiem elementu a może być: Przykład 13 <!ELEMENT a (b (c+,d))> b lub jedno lub wiele c i d <!ELEMENT definition (#PCDATA term)*> Dzieckiem elementu definition może być tekst zawierający dowolną ilość elementów term.

Deklaracje Elementów Poniższy dokument jest poprawny ze względu na powyższą deklarację: <definition>the <term>turing Machine</term> is an abstract finite state automaton with infinite memory that can be proven equivalent to any any other finite state automaton with arbitrarily large memory. Thus what is true for a Turing machine is true for all equivalent machines no matter how implemented. </definition> Element pusty deklarujemy następująco: <!ELEMENT image EMPTY>

Deklaracje Elementów I na koniec DTD dla dokumentu z przykładu 15 tzn: <person> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person> DTD: <!ELEMENT person (name, profession*)> <!ELEMENT name (first_name, last_name)> <!ELEMENT first_name (#PCDATA)> <!ELEMENT last_name (#PCDATA)> <!ELEMENT profession (#PCDATA)>

Atrybuty Poprawny strukturalnie dokument (valid) musi mieć zadeklarowane atrybuty wszystkich elementów. Wykorzystujemy w tym celu instrukcję ATTLIST Atrybuty deklarujemy oddzielnie dla każdego elementu. Elementy mogą posiadać kilka atrybutów. Przykład 14 <!ATTLIST image source CDATA #REQUIRED width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED >

Atrybuty Pojedynczy element ATTLIST może deklarować wiele atrybutów dla tego samego elementu. Przykład 15 <!ATTLIST image source CDATA #REQUIRED width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED > gdzie: #REQUIRED atrybut obowiązkowy #IMPLIED atrybut nieobowiązkowy

Atrybuty Istnieją następujące typy atrybutów: 1. CDATA dowolny ciąg znaków. Przykład 16 <!ATTLIST image alt CDATA #IMPLIED> 2. ID nazwa która jest wyjątkowa w całym dokumencie XML. Przykład 17 <!ATTLIST pracownik nr ID #REQUIRED> <pracownik nr="ss9876-12-3456"> <imie>tomek</imie> <nazwisko>nowak</nazwisko> </pracownik>

Atrybuty 3. NMTOKEN - składa się z tych samych znaków co nazwy XML. Może się zaczynać od dowolnej litery i znaku. Przykład 18 <!ATTLIST journal year NMTOKEN #REQUIRED> 4. NMTOKENS - składa się z kilku wartości NMTOKEN przedzielonych spacjami. Przykład 19 <performances dates="08-21-2001 08-23-2001 08-27-2001"> Kat and the Kings </performances>

Atrybuty 5. (v1 v2... vn) - wszystkie możliwe wartości. Przykład 20 <!ATTLIST date month (January February March April May June July August September October November December) #REQUIRED> <!ATTLIST date day (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) #REQUIRED> <!ELEMENT date EMPTY>

Atrybuty 6. IDREF odwołanie do innego elementu z atrybutem ID. Przykład 21 <!ATTLIST pracownik id ID #REQUIRED> <!ATTLIST projekt id ID #REQUIRED> <!ATTLIST sklad pracownik_id IDREF #REQUIRED> <!ATTLIST wprojekcie projekt_id IDREF #REQUIRED> <pracownik id="ss9876-12-3456"> <wprojekcie projekt_id="p2"/> </pracownik> <projekt id="p2"> <sklad pracownik_id="ss9876-12-3456"/> </projekt> 7. IDREFS ciąg kilku IDREF rozdzielonych spacjami.

Typy wartości atrybutów #REQUIRED atrybut musi pojawić się z każdym wystąpieniem elementu. #IMPLIED atrybut nieobowiązkowy. #FIXED "wartość" atrybut obowiazkowy o wartości określonej przez wartość. Przykład 22 <!ATTLIST biography xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"> "wartość" wartość domyślna atrybutu. Przykład 23 <!ATTLIST web_page protocol NMTOKEN "http">

Przestrzenie nazw Przykład 24 Dwa muzea posiadają dokumenty XML i określone dla nich DTD (lub XML Schema) zawierające opisy eksponatów. Muzeum 1 (DTD 1): <?xml version="1.0" encoding="iso-8859-1"> <catalog> <painting> <title> Memory of the Garden at Etten </title> <artist>vincent Van Gogh</artist> <date>november, 1888</date> <description> Two women look to the left. A third works in her garden. </description> </painting>... </catalog>

Przestrzenie nazw Muzeum 2 (DTD 2): <?xml version="1.0" encoding="iso-8859-1"> <catalog> <painting> <title>the Swing</title> <artist>pierre-auguste Renoir</artist> <date>1876</date> <description> A young girl on a swing. Two men and a toddler watch. </description> </painting>... </catalog> Oba muzea planują wspólną wystawę swoich eksponatów. Informacja o wystawianych eksponatach ma być dostępna w Internecie.

Przestrzenie nazw Katalog Muzeum 1 i Muzeum 2: <?xml version="1.0" encoding="iso-8859-1"> <catalog> <painting> <title>memory of the Garden at Etten</title> <artist>vincent Van Gogh</artist> <date>november, 1888</date> <description> Two women look to the left. A third works in her garden. </description> </painting> <painting> <title>the Swing</title> <artist>pierre-auguste Renoir</artist> <date>1876</date> <description> A young girl on a swing. Two men and a toddler watch. </description> </painting> </catalog>

Przestrzenie nazw Czy mozna w ten sposób łączyć dokumenty XML? Można, ale......mogą pojawić się problemy podczas walidacji jeżeli elementy w dokumencie XML zawierającym katalog Muzeum 1 są zdefiniowane inaczej niż elementy w dokumencie XML zawierającym katalog Muzeum 2. Walidator napotykając dowolny element w dokumencie musi wiedzieć czy element ten jest zdefiniowany W DTD 1 czy w DTD2. Informację taką zapisujemy wykorzystując tzw. przestrzenie nazw. Deklaracja przestrzeni nazw: xmlns:prefix="położenie"

Przestrzenie nazw <?xml version="1.0" encoding="iso-8859-1"> <m1:catalog xmlns:m1="http://www.muzeum1.pl/dtd/" xmlns:m2="http://www.muzeum1.pl/dtd/"> <m1:painting> <m1:title>memory of the Garden at Etten</m1:title> <m1:artist>vincent Van Gogh</m1:artist> <m1:date>november, 1888</m1:date> <m1:description> Two women look to the left. A third works in her garden. </m1:description> </m1:painting> <m2:painting> <m2:title>the Swing</m2:title> <m2:artist>pierre-auguste Renoir</m2:artist> <m2:date>1876</m2:date> <m2:description> A young girl on a swing. Two men and a toddler watch. </m2:description> </m2:painting> </catalog>

XML Schema (Podobnie jak DTD) XML Schema to opracowany przez W3C standard służący do definiowania struktury dokumentu XML. (W przeciwieństwie do DTD) XML Schema jest aplikacją XML. XML pozwala (dokładniej niż DTD) określić strukturę dokumentów XML. XML schema oferuje większą niż DTD ilość typów (elementów, atrybutów, danych). W XML schema możemy definiować własne typy wykorzystując typy wbudowane. Dokumenty zawierające definicje XML Schema zapisuje się zwykle w plikach z rozszerzeniem xsd.