XML extensible Markup Language 1

Podobne dokumenty
XML extensible Markup Language. część 1

XML extensible Markup Language. część 3

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

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

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

Wprowadzenie do technologii XML

XML extensible Markup Language. Paweł Chodkiewicz

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

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

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

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

XML DTD XML Schema CSS

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

XML extensible Markup Language 3

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

Rola języka XML narzędziem

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

Przykładowy dokument XML

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.

Środowisko XML (Extensible Markup Language).

XML extensible Markup Language. część 4

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

Programowanie internetowe

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

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

c TP: anything: 13 listopada 2004 roku 1

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

Technologie zarządzania treścią

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

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

Wprowadzenie do XML. Tomasz Przechlewski

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

Podstawy XML-a. Zaawansowane techniki programowania

Podstawy JavaScript ćwiczenia

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

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

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

Wprowadzenie do technologii XML

Aplikacje internetowe laboratorium XML, DTD, XSL

HTML DOM, XHTML cel, charakterystyka

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

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

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Podstawy (X)HTML i CSS

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

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

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:

Zawartość specyfikacji:

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

- 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

Złożone komponenty JSF wg

Instrukcja integracji z portalem ogłoszeń praca.24portal.pl

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

XML i nowoczesne metody zarządzania treścią

Elementarz HTML i CSS

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

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

O stronach www, html itp..

2 Podstawy tworzenia stron internetowych

Historia kodowania i format plików XML. Jolanta Bachan

Specyfikacja techniczna pliku wymiany danych

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

rk HTML 4 a 5 różnice

Podstawy algorytmiki i programowania - wykład 4 C-struktury

XML extensible Markup Language 6

<html> </html> <body> </body> <p> [</p>] <br> <html> <head> </head> <body> </body> </html> Materiały dydaktyczne 1/5

Ministerstwo Finansów

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

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

Narzędzia informatyczne w językoznawstwie

Załącznik nr 2 do Umowy Nr. o korzystanie z usługi Identyfikacji Przychodzących Płatności Masowych z dnia.

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

Wykład 2. Relacyjny model danych

Model semistrukturalny

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

Pakiet XML Czym jest i z czym się je?

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

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

Przedmiot: Grafika komputerowa i projektowanie stron WWW

Otwarte protokoły wymiany informacji w systemach ITS

Języki programowania wysokiego poziomu WWW

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Prezentacja i transformacja

Semistrukturalne bazy danych Wykład dla studentów matematyki

Dlaczego GML? Gdańsk r. Karol Stachura

Tomasz Grześ. Systemy zarządzania treścią

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

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

Oczywiście plik musi mieć rozszerzenie *.php

Specyfikacja techniczna dot. mailingów HTML

INTEGRACJA I EKSPLORACJA DANYCH

XML i nowoczesne metody zarządzania treścią

XML i nowoczesne technologie zarządzania treścią

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

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

Rozdział 4 KLASY, OBIEKTY, METODY

Transkrypt:

XML extensible Markup Language 1

Czym jest język XML? Język XML to uniwersalny język formalny przeznaczony do reprezentowania różnych danych w ustrukturalizowany sposób. XML jest metajęzykiem tzn. przy jego pomocy możemy definiować słownictwo (znaczniki) dla dowolnej dziedziny ( extensible). Zbiór takich znaczników nazywamy aplikacją XML. XML jest niezależny od platformy, co umożliwia łatwą wymianę dokumentów pomiędzy różnymi systemami. Specyfikacja języka XML jest określona przez organizację W3C.

Czym nie jest język XML? Język XML nie jest niczym więcej niż językiem znaczników. XML nie jest językiem programowania. Nie istnieją kompilatory języka XML. Dokument XML tylko jest i nic nie robi (tak jak np. program napisany w języku C++). XML nie jest bazą danych. Baza danych może zawierać dane w postaci dokumentów XML, ale sama nie jest nigdy takim dokumentem. XML nie protokołem przesyłania danych w Internecie.

Czym różni się język XML od języka HTML? W języku HTML możemy używać tylko z góry określonych znaczników. W języku XML możemy definiować własne znaczniki. Znaczniki w języku HTML związane są prezentacją swojej zawartości (np. tekstu) na stronie WWW (określają jego rozmiar, krój itd.) Znaczniki XML charakteryzują raczej typ zawartości (danych). Przykład 1 HTML: <b> Alan Turing </b> XML: <person> Alan Turing </person>

Dokument XML W porównaniu z językiem HTML w języku XML mamy większą swobodę w definiowaniu znaczników. Musimy jednak ściśle przestrzegać zasad związanych z położeniem znaczników w dokumencie oraz ich postacią. Mówimy, że każdy dokument XML musi być prawidłowo sformatowany (well formed) czyli zgodny z regułami tworzenia dokumentów XML. Dokument XML zawiera tekst i może być edytowany przy pomocy dowolnego programu pozwalającego edytować pliki tekstowe. Przykład 2 Rozważmy następujący dokument XML: <person> Alan Turing </person>

Dokument XML Dokument ten może być zapisany w pliku o dowolnej nazwie z rozszerzeniem xml. Dokument ten może być zapisany w kilku plikach (chociaż oczywiście nie ma to sensu bo dokument ten jest bardzo krótki). Dokument ten może w ogóle nie być zapisany w pliku. Może to być np. rekord w bazie danych lub wynik działania skryptu CGI. W języku XML podstawową jednostką danych jest tzw. element. Element to dane oraz znacznik. W przykładzie 2 mamy jeden element. Zawartość tego elementu to ciąg znaków: Alan Turing Spacja stanowi część zawartości, ale na ogół jest ignorowana przez aplikacje.

Dokument XML Znaczniki składają się z następujących elementów: Znacznik początkowy: Znacznik końcowy: <nazwa elementu> </nazwa elementu> Nazwa elementu może być dowolna, ale musi spełniać pewne warunki (o których dowiemy się później). Nie każdy element musi zawierać dane. Elementem pustym nazywamy element nie zawierający żadnych danych. Element taki oznaczany jest przez lub <nazwa elementu/> <nazwa elementu></nazwa elementu>

Dokument XML Język HTML dopuszczał stosowanie znaczników: <hr> <br> Z punktu widzenia języka XML znaczniki takie nie są poprawne. W języku XML (w przeciwieństwie do języka HTML) wielkość liter jest ważna. Przykład 3 Jeżeli znacznikiem początkowym jest <person> to znacznikiem końcowym nie może być </Person>

Rozważmy następujący przykład: Przykład 4 <person> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> </person> Element person zawiera 4 elementy tzw. dzieci: Element person jest ich rodzicem. 1 element name 3 elementy profession

Element person zawiera 2 elementy będące jego dziećmi: first_name second_name Elementy first_name i second_name nazywane są rodzeństwem. Rodzic może mieć wiele dzieci. Każde dziecko ma dokładnie jednego rodzica. W każdym dokumencie XML istnieje jeden element, który nie posiada rodziców. Nazywamy go korzeniem (root element) dokumentu XML. Każdy prawidłowo sformatowany dokument XML musi zawierać dokładnie jeden korzeń. W powyższym przykładzie rodzicem jest element person.

Z omówionej struktury dokumentu XML wynika, że dokument taki ma reprezentację w postaci drzewa. Drzewo dokumentu XML z przykładu 4 wygląda następująco: W przykładzie 4 zawartością elementów first_name, last_name i profession był tekst (+spacje) niezawierający znaczników. Dokument XML może mieć też mieszaną zawartość tzn. znaczniki + tekst.

Rozważmy następujący przykład: Przykład 5 <biography> <name><first_name>alan</first_name><last_name> Turing </last_name></name> was one of the first people to truly deserve the name <emphasize>computer scientist</emphasize>. Although his contributions to the field are too numerous to list, his best-known are the eponymous <emphasize>turing Test</emphasize> and <emphasize>turing Machine</emphasize>. <definition>the <term>turing Test</term> is to this day the standard test for determining whether a computer is truly intelligent. This test has yet to be passed.</definition> </biography>

Atrybuty Elementy dokumentu XML mogą posiadać atrybuty. Atrybut to para nazwa-wartość znajdująca się w znaczniku początkowym danego elementu. Przykład 6 <person born="1912-06-23" died="1954-06-07"> Alan Turing </person> Element person posiada dwa atrybuty. atrybut born="1912-06-23" nazwa wartość

Uwagi: Zamiast " możemy użyć ', ale ten sam znak musi być na początku i na końcu. Obok symbolu = możemy wstawiać spacje. Kolejność atrybutów nie ma znaczenia. Przykład 7 Inna forma zapisu dokumentu z przykładu 6. <person died = '1954-06-07' born = '1912-06-23'> Alan Turing </person> Informacja zapisana w pliku z przykładu 4 może być zapisana przy użyciu atrybutów:

Przykład 8 <person> <name first="alan" last="turing"/> <profession value="computer scientist"/> <profession value="mathematician"/> <profession value="cryptographer"/> </person>

Nazwy XML Nazwy atrybutów i elementów w języku XML muszą spełniać te same reguły (te same reguły musza spełniać też inne, rzadziej stosowane konstrukcje). W ogólności będziemy mówić o nazwach XML. Nazwa XML może zawierać: 1) Standardowe litery (duże i małe) i cyfry np. A, b, 6 2) litery nieangielskie i ideogramy np. õ, Ж, IV 3) symbole: _ (podkreślnik), - (myślnik),. (kropka) Nazwa XML nie może zawierać: ``(cudzysłów), (apostrof), $, %, ; (średnik) Symbol : (dwukropek) jest zarezerwowany dla tzw. przestrzeni nazw.

Nazwy XML Nazwa XML nie może zawierać pustych znaków. Nazwa XML nie może zaczynać się od ciągu znaków XML (zarezerwowane dla specyfikacji XML). Nazwa XML może zaczynać się od: 1) litery 2) ideogramu 3) podkreślnika Nazwa XML nie może zaczynać się od: 1) liczby 2) myślnika 3) kropki

Nazwy XML Przykład 1 Poniższe elementy są prawidłowo sformatowane (well formed) czyli zgodne z regułami tworzenia dokumentów XML. 1) <Drivers_LicenseNumber>98 NY 32</Drivers_License_Nmber> 2) <month-day-year>7/23/2001</month-day-year> 3) <first_name>alan</first_name> 4) <_4-lane>I-610</_4-lane> 5) <téléphone>011 33 91 55 27 55 27</téléphone>

Nazwy XML Przykład 2 Poniższe elementy nie są prawidłowo sformatowane (well formed) czyli nie są zgodne z regułami tworzenia dokumentów XML. 1) <month/day/year>7/23/2001</month/day/year> 2) <first name>alan</first name> 3) <Driver's_License_Number>98 NY 32</Driver's_License_Number> 4) <4-lane>I-610</4-lane>

Encje Może się zdarzyć, że w dokumencie XML będzie będziemy chcieli użyć np. <. Bezpośrednie użycie < spowoduje, że znak ten będzie interpretowany jako początek znacznika. Jeżeli chcemu użyć znaku < w innym znaczeniu używamy encji <. Przykład 3 <SCRIPT LANGUAGE="JavaScript"> if (location.host.tolowercase().indexof("cafeconleche")<0) { location.href="http://www.cafeconleche.org/"; } </SCRIPT>

Encje Znak & jest zawsze rozpoznawany jako początek encji. Jeżeli chcemy wstawić w dokumencie ten znak to możemy użyć encji & Przykład 4 <publisher>a & B</publisher> W języku XML zdefiniowane są następujące encje: 1) < znak < 2) & znak & 3) > znak > 4) " znak `` 5) &apos; znak `

Encje Aplikacja parsująca dokument XML w przypadku napotkania encji automatycznie wstawia w to miejsce odpowiedni symbol do którego odnosi się dana encja. Oprócz powyższych 5 encji zdefiniowanych w specyfikacji XML istnieją encje które możemy sami definiować. Zajmiemy się nimi po omówieniu Definicji Typu Dokumentu (DTD).

Sekcje CDATA Jeżeli chcemy umieścić w dokumencie XML tekst, który nie będzie parowany (np. komentarz) możemy to uczynić wykorzystując sekcje CDATA. Tekst taki umieszczamy między znacznikami: Przykład 5 <![CDATA[ ]]> i <p>you can use a default <code>xmlns</code> attribute to avoid having to add the svg prefix to all your elements:</p> <![CDATA[ <svg xmlns=http://www.w3.org/2000/svg width="12cm height="10cm"> <ellipse rx="110" ry="130" /> <rect x="4cm" y="1cm" width="3cm" height="6cm" /> </svg> ]]>

Sekcje CDATA W sekcji CDATA nie może pojawić się symbol ]]>. Sekcje CDATA są przeznaczone dla ludzi, a nie maszyn. Komentarze W dokumencie XML komentarze wstawiamy podobnie jak w dokumentach HTML. <! - komentarz --> W treści komentarza nie może pojawić się ciąg znaków --> ponieważ będzie on traktowany jako zakończenie komentarza. Komentarz może pojawić się praktycznie w dowolnym miejscu w dokumencie XML.

Komentarze Komentarz może się pojawić m.in. przed lub za elementem będącym korzeniem. Komentarz nie może się pojawić wewnątrz znacznika i wewnątrz innego komentarza. Przykład 6 <person> <!-- Alan Turing --> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <profession>computer scientist</profession> <profession<! prof2-->>mathematician</profession> <profession>cryptographer</profession> </person>

Komentarze Komentarze są przeznaczone dla ludzi i nie należy umieszczać w nich żadnych instrukcji przeznaczonych dla aplikacji. Instrukcje przetwarzania (Processing Instructions) Instrukcje przetwarzania są przeznaczone dla aplikacji, które mogą czytać dokument XML. <?cel instrukcja przetwarzania?> Bezpośrednio po znaczniku <? występuje tzw. cel (target). Cel identyfikuje aplikację mającą dokonać przetwarzania. Przykład 7 <?php mysql_connect("database.unc.edu", "clerk", "password");?>

Instrukcje przetwarzania (Processing Instructions) Przykład 8 HTML <meta name="robots" content="noindex,nofollow"> XML Przykład 9 <?robots index="yes" follow="no"?> <?xml-stylesheet type="application/xml" href="people.xsl"?> Podobnie jak komentarze instrukcje przetwarzania mogą pojawić się przed lub za elementem będącym korzeniem. Instrukcje przetwarzania nie mogą pojawić się wewnątrz znacznika.

Deklaracja dokumentu XML Dokument XML powinien (ale nie musi) zaczynać się od deklaracji XML. Deklaracja XML jest instrukcją przetwarzania (gdzie cel=xml) posiadającą następujące atrybuty: version standardowo ma wartość "1.0" Atrybut ten jest obowiązkowym elementem deklaracji. encoding określa sposób kodowania tekstu w dokumencie XML. Standardowo dokumenty XML używają kodowania UTF-8. Atrybut ten nie jest obowiązkowy. Jeżeli jest pominięty przyjmowane jest domyślnie kodowanie UTF-8.

Deklaracja dokumentu XML standalone atrybut określa czy dla dokumentu XML określona jest Definicja Typu Dokumentu (DTD). Atrybut ten nie jest obowiązkowym elementem deklaracji. Jeżeli jest pominięty przyjmowana jest domyślnie wartość no. Przykład 10 <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <person> Erwin Schrödinger </person> UWAGA: Deklaracja XML nie jest obowiązkowa w dokumencie XML, ale jeżeli jest musi być pierwszym elementem dokumentu.

Dokument prawidłowo sformatowany (well formed) Każdy dokument XML musi być prawidłowo sformatowany tzn. musi spełniać pewne warunki. Najważniejsze z nich to: 1) Każdy znacznik początkowy musi posiadać znacznik końcowy. 2) Elementy mogą być zagnieżdżone, ale nie mogą nachodzić na siebie. Przykład 10 <person> <name> <first_name>alan<last_name> Turing</first_name></last_name> </name> </person>

Dokument prawidłowo sformatowany (well formed) 3) Dokument musi posiadać dokładnie jeden korzeń. Przykład 11 <person> <name> <first_name>alan<first_name> <last_name>turing</last_name> </name> </person> <profession>computer scientist</profession> Brak korzenia!!! 4) Wartości atrybutów muszą znajdować się między symbolami ". Przykład 12 <person born="1912-06-23" died="1954-06-07"/>

Dokument prawidłowo sformatowany (well formed) 5) Element nie może posiadać dwóch atrybutów o tej samej nazwie. 6) Komentarze i instrukcje przetwarzania nie mogą znajdować się wewnątrz znaczników. Przykład 13 <person<?php?>>tom</person> 7) Znaki < i & nie mogą pojawić się w żadnym elemencie i atrybucie.

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 14 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ść dokumentu XML nie jest wymagana (zależy to np. od twórcy dokumentu). Wymagane jest aby dokument był prawidłowo sformatowany. 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 15 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 16 <!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 17 <?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 18 <?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 19 <!ELEMENT phone_number (#PCDATA)>

Deklaracje Elementów Dzieci deklarowany przez nas element może posiadać dzieci. Przykład 20 <!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 20 <!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 21 <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 22 <!ELEMENT transport (train bus car)> Dzieckiem elementu transport może być train lub bus lub car. Elementy mogą mieć bardziej skomplikowane definicje. Przykład 23 <!ELEMENT center ((x, y) (r, ))> Dziećmi elementu center mogą być x i y lub r i.

Deklaracje Elementów Przykład 25 Dzieckiem elementu a może być: Przykład 26 <!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 1 <!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 2 <!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 3 <!ATTLIST image alt CDATA #IMPLIED> 2. ID nazwa która jest wyjątkowa w całym dokumencie XML. Przykład 4 <!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 5 <!ATTLIST journal year NMTOKEN #REQUIRED> 4. NMTOKENS - składa się z kilku wartości NMTOKEN. Przykład 6 <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 7 <!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 8 <!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 projekt_id="p2"> <sklad pracownik="ss9876-12-3456"/> </project> 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 9 <!ATTLIST biography xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"> "wartość" wartość domyślna atrybutu. Przykład 10 <!ATTLIST web_page protocol NMTOKEN "http">

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.