Wprowadzenie. XML podobnie jak HTML sa. z SGML. Semantic Web Primer, autorzy: Grigoris Antoniou i Frank van Harmelen, Second Edition, MIT Press 2008

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

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

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

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

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

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

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

Wprowadzenie do technologii XML

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

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

Wprowadzenie do XML schema

XML Path Language (XPath)

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

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

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

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

XML extensible Markup Language. część 4

Przykładowy dokument XML

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

XML DTD XML Schema CSS

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

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

XML i nowoczesne technologie zarządzania treścią

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

Przykładowy dokument XML

XML extensible Markup Language. Paweł Chodkiewicz

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

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

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

Semistrukturalne bazy danych Wykład dla studentów matematyki

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

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.

Paradygmaty programowania. Paradygmaty programowania

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

Rola języka XML narzędziem

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

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

Extensible Markup Language III

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

Wprowadzenie do technologii XML

XML extensible Markup Language. część 1

INTEGRACJA I EKSPLORACJA DANYCH

Aplikacje internetowe laboratorium XML, DTD, XSL

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

- 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

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Przetwarzanie dokumentów XML za pomocą procesora XSLT (Zajęcia r.

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

Rozdzia l 3. Laboratorium 3. danych zawierajac

XML extensible Markup Language 3

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

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Drzewa podstawowe poj

Przykładowy dokument XML

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

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

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

Schematy aplikacyjne UML i GML dla mapy zasadniczej oraz Modelu Podstawowego. Rozdział 1 Założenia podstawowe

XML extensible Markup Language. część 3

Dlaczego DTD nie wystarcza? Definiowanie typów dokumentów Część 2. XML Schema. Status XML Schema. DTD XML Schema. Definiowanie elementów i atrybutów

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

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

Schematy XML. Tomasz Traczyk.

Podstawy (X)HTML i CSS

XML extensible Markup Language 1

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

c TP: anything: 13 listopada 2004 roku 1

Prezentacja i transformacja

Podstawy XML-a. Zaawansowane techniki programowania

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

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

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Programowanie internetowe

Aplikacje internetowe. Interfejs użytkownika

XML i nowoczesne technologie zarządzania treścią

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

rk HTML 4 a 5 różnice

Model semistrukturalny

GML w praktyce geodezyjnej

Elementarz HTML i CSS

XML extensible Markup Language. część 3

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

Narzędzia informatyczne w językoznawstwie

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

mgr inż. Jacek Staniec Język XML

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

Uruchamianie SNNS. Po uruchomieniu. xgui & lub snns & pojawia si e okno. programu. Symulator sztucznych sieci neuronowych SNNS 1

Relacyjne bazy danych a XML

Ekonomia matematyczna i dynamiczna optymalizacja

Paradygmaty programowania

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

Prezentacja dokumentów XML

Prezentacja i transformacja

Języki XPath i XQuery

Wyk lad 7 Baza i wymiar przestrzeni liniowej

XML Schema w przykładach

Transkrypt:

Wprowadzenie XML podobnie jak HTML sa jezykami znacznikowymi wywodzacymi sie z SGML. Ten wyk lad zosta l opracowany na podstawie podr ecznika Semantic Web Primer, autorzy: Grigoris Antoniou i Frank van Harmelen, Second Edition, MIT Press 2008 XML wprowadzenie 1

Przyk ladowy dokument HTML <h2>nonmonotonic Reasoning: Context-Dependent Reasoning</h2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i><br> Springer 1993<br> ISBN 0387976892 Dokument może być sformatowany dla latwiejszego czytania, i edycji przez cz lowieka. Formatowanie naśladuje w tym przypadku docelowy wyglad dokumentu. XML wprowadzenie 2

Analogiczny dokument w XML <book> <title> Nonmonotonic Reasoning: Context-Dependent Reasoning </title> <author>v. Marek</author> <author>m. Truszczynski</author> <publisher>springer</publisher> <year>1993</year> <ISBN>0387976892</ISBN> </book> Dokument XML też może być sformatowany w celu latwiejszego czytania i edycji manualnej. W tym wypadku formatowanie odzwierciedla struktur e dokumentu. XML wprowadzenie 3

Podobieństwa HTML do XML Jedne i drugie używaja znaczników (tags) (np. <h2> albo </year>). Znaczniki moga być zagnieżdżane. Ludzie moga czytać i interpretować zarówno HTML jak i XML wzglednie latwo.... A maszyny? XML wprowadzenie 4

Problemy z automatyczna interpretacja dokumentów HTML Oczywiście, maszyna nie ma problemu z renderowaniem dokumentu HTML w okienku przegladarki, ani np. z pokazaniem drzewiastej struktury dokumentu XML. Za lóżmy jednak, że inteligentny agent chcia lby wy luskać nazwiska autorów ksiażki: Nazwiska moga pojawić sie zaraz za tytu lem, albo za s lowem by. Czy autorów jest dwóch? Czy jest jeden: V. Marek and M. Truszczynski? XML wprowadzenie 5

Porównanie HTML z XML: informacja strukturalna Dokumenty HTML nie zawieraja informacji strukturalnej, czyli wyszczególnienia elementów dokumentu i ich wzajemnych zwiazków. XML jest latwiej dost epny dla maszyny, ponieważ: Każdy element informacyjny jest oddzielnie opisany. Zwiazki miedzy nimi sa również odzwierciedlone, przez zagnieżdżenie struktury. Np. znacznik <author> pojawia sie wewnatrz znaczników <book>, zatem opisuje one jakaś w lasność danej ksiażki. XML wprowadzenie 6

Porównanie HTML z XML: informacja strukturalna (2) Maszyna analizujaca dokument XML może wydedukować, że: element autor odnosi sie do zawierajacego go elementu book, zwiazki wyrażone sa przez strukture, a nie np. przez sasiedztwo lub bliskość. XML dopuszcza też ograniczenia na wartości: np. że rok musi być wyrażony czterocyfrowa liczba. XML wprowadzenie 7

Porównanie HTML z XML: formatowanie Dokument w formacie HTML zawiera dodatkowa informacje o formatowaniu. Jest to naturalne, ponieważ g lównym wykorzystaniem dokumentów HTML jest proces wyświetlania informacji. Struktura dokumentu (i zawartych w nim informacji) jest sygnalizowana użytkownikowi przez jego wyglad. Jednak ta warstwa informacyjna nie podlega żadnym regu lom, jest niejednoznaczna. Dla odróżnienia, w dokumencie XML treść dokumentu jest ca lkowicie odseparowana od formatowania. Te same informacje moga być wyświetlane w różny sposób. XML wprowadzenie 8

W HTML: Porównanie HTML z XML: inny przyk lad <h2>relationship force-mass</h2> <i> F = M x a </i> W XML: <equation> <meaning>relationship force-mass</meaning> <leftside> F </leftside> <rightside> M x a </rightside> </equation> Co możemy zauważyć w porównaniu z przyk ladem z ksiażkami? XML wprowadzenie 9

Porównanie HTML z XML: inna rola znaczników W obu dokumentach HTML używa si e tych samych znaczników. W dokumentach XML znaczniki sa ca lkiem inne. Znaczniki HTML definiuja wyświetlanie (kolory, czcionki, itp.). Znaczniki HTML maja ustalone znaczenie (w definicji dokumentu HTML). Znaczniki XML nie sa ustalone; moga być definiowane przez użytkownika. XML jest metaj ezykiem znacznikowym jest to j ezyk definiowania j ezyków znacznikowych. XML wprowadzenie 10

Terminologia XML Aplikacje internetowe musza mieć uzgodniona terminologie aby mog ly sie komunikować i wspó lpracować. Grupy użytkowników i sektory biznesu definiuja sobie w laściwe terminologie: matematyka (MathML) bioinformatyka (BSML) zasoby ludzkie (human resources) (HRML)... XML wprowadzenie 11

J ezyk XML Dokument XML sk lada sie z: prologu, pewnej liczby elementów, opcjonalnego epilogu. XML opis szczegó lowy 12

Prolog dokumentu XML Prolog sk lada sie z: deklaracji XML, opcjonalnego odwo lania do zewnetrznych dokumentów strukturalnych. Na przyk lad: <?xml version="1.0" encoding="utf-16"?> <!DOCTYPE book SYSTEM "book.dtd"> XML opis szczegó lowy 13

Elementy XML Elementy dokumentu XML dotycza obiektów opisywanych, np. ksiażek, autorów, wydawnictw, itp. Element sk lada si e ze: znacznika otwierajacego zawartości znacznika zamykajacego Na przyk lad: <lecturer>david Billington</lecturer> XML opis szczegó lowy 14

Elementy XML (2) Nazwy znaczników moga zawierać szerokie spektrum znaków, jedynie: pierwszy znak musi być litera, podkreślnikiem, lub dwukropkiem, nazwa nie może zaczynać sie sekwencja xml, w żadnej kombinacji dużych i/lub ma lych liter, np. Xml, xml,..., nazwa nie może zawierać bia lych znaków. XML opis szczegó lowy 15

Zawartość elementów XML Zawartościa może być jakiś tekst, albo inne elementy, albo pusty string <lecturer> <name>david Billington</name> <phone> +61-7 - 3875 507 </phone> </lecturer> Jeśli element nie ma treści to jest nazywany pustym, i może być zapisany skrótowo: <lecturer/> zamiast <lecturer></lecturer> XML opis szczegó lowy 16

Atrybuty XML Pusty element nie musi być pozbawiony znaczenia może mieć pewne wartości w postaci atrybutów. Atrybut jest para nazwa-wartość w znaczniku otwierajacym elementu, np.: <lecturer name="david Billington" phone="+61-7 - 3875 507"/> XML opis szczegó lowy 17

Atrybuty XML: przyk lad <order orderno="23456" customer="john Smith" date="october 15, 2002"> <item itemno="a528" quantity="1"/> <item itemno="c817" quantity="3"/> </order> XML opis szczegó lowy 18

Atrybuty XML: ten sam przyk lad bez atrybutów <order> <orderno>23456</orderno> <customer>john Smith</customer> <date>october 15, 2002</date> <item> <itemno>a528</itemno> <quantity>1</quantity> </item> <item> <itemno>c817</itemno> <quantity>3</quantity> </item> </order> XML opis szczegó lowy 19

Elementy XML w porównaniu z atrybutami Atrybuty można zastapić elementami. Na odwrót nie zawsze jest to możliwe; atrybuty maja wieceń ograniczeń. Kiedy użyć elementów a kiedy atrybutów jest czesto kwestia stylu. Jednak atrybuty nie moga być zagnieżdżone. Jak również atrybut o danej nazwie może wystapić tylko raz. XML opis szczegó lowy 20

Instrukcje przetwarzania Instrukcje przetwarzania (Processing Instructions, PI) Wprowadzaja mechanizm przekazania aplikacji informacji o tym jak należy traktować elementy. Ogólna postać PI: <?target instruction?> przyk lad: <?stylesheet type="text/css" href="mystyle.css"?> XML opis szczegó lowy 21

Komentarze Fragment tekstu, który powinien być pomini ety przez parser, np.: <!-- This is a comment --> XML opis szczegó lowy 22

Formalnie poprawne dokumenty XML Dokument XML nazywa si e formalnie poprawnym (well-formed) jeśli spe lnia wymagania sk ladniowe XML. Regu ly sk ladni XML (wybrane): Tylko jeden element na najwyższym poziomie (root element). Każdy element zawiera znacznik otwierajacy i zamykajacy. Elementy nie moga na siebie nachodzić, np. (niepoprawne): <author><name>lee Hong</author></name> Atrybuty w ramach jednego elementu musza mieć unikalne nazwy. Nazwy elementów i znaczników musza być dopuszczalne. XML opis szczegó lowy 23

Formalnie poprawne dokumenty XML (2) Istnieja narzedzia do sprawdzania formalnej poprawności (wellformedness) dokumentów XML. XML opis szczegó lowy 24

Drzewiasty model dokumentu XML: przyk lad Formalnie poprawne dokumenty XML można przedstawić w postaci drzewa, zatem drzewa można traktować jako model danych dla XML. Rozważmy przyk ladowy dokument: <email> <head> <from name="michael Maher" address="michaelmaher@cs.gu.edu.au"/> <to name="grigoris Antoniou" address="grigoris@cs.unibremen.de"/> <subject>where is your draft?</subject> </head> <body> Grigoris, where is the draft of the paper you promised me last week? </body> </email> XML opis szczegó lowy 25

Drzewiasty model dokumentu XML: przyk lad (2) Formalnie poprawny dokument XML jest uporzadkowanym drzewem etykietowanym: - Tylko jeden korzeń. - Wez ly potomne danego wez la - Brak cykli. sa uporzadkowane. - Każdy weze l, który nie jest korzeniem, -... natomiast porzadek ma dok ladnie jednego rodzica. atrybutów jest nieistotny. - Każdy weze l ma etykiete. XML opis szczegó lowy 26

Budowanie struktury dokumentów XML 1. Zdefiniuj wszystkie nazwy elementów i atrybutów, które moga być użyte. 2. Zdefiniuj struktur e: wartości jakie może przyjmować dany atrybut, jakie elementy moga lub musza wystapić wewnatrz danego elementu. Jeśli istnieje taka informacja strukturalna, to można dokonać walidacji dokumentu. Dokument XML jest poprawny (valid), jeśli: jest formalnie poprawny (well-formed), spe lnia swoje wymagania strukturalne. XML opis szczegó lowy 27

Definiowanie struktury dokumentów XML Sa dwa sposoby definiowania struktury dokumentów XML: DTD sposób starszy i bardziej ograniczony, XML Schema daje dodatkowe możliwości. XML opis szczegó lowy 28

Przyk ladowy dokument XML: DTD: definicja typu elementu <lecturer> <name>david Billington</name> <phone> +61-7 - 3875 507 </phone> </lecturer> Definicja DTD dla elementu lecturer, i jego elementów sk ladowych: <!ELEMENT lecturer (name,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT phone (#PCDATA)> Znaczenie powyższych definicji: W dokumencie moga wystapić elementy lecturer, name, i phone. Element lecturer zawiera elementy name i phone, w podanej kolejności. (Gdyby elementy te mog ly wystapić w dowolnej kolejności, patrz poniżej.) Elementy name i phone moga mieć dowolna zawartość. #PCDATA jest jedynym możliwym atomowym typem elementów w DTD. (To znaczy: inna możliwościa niż ciag wewnetrznych elementów). XML definicje DTD 29

DTD: alternatywa w definicji elementów Gdybyśmy chcieli określić, że w elemencie lecturer moga wystapić elementy name i phone w dowolnej kolejności, sytuacja jest bardziej z lożona. Można użyć konstrukcji alternatywy: <!ELEMENT lecturer (name phone)> Jednak powyższa definicja dopuszcza tylko jeden z elementów name i phone wewnatrz lecturer. Aby określić, że musza wystapić oba, ale w dowolnej kolejności, możemy zapisać nastepuj ac a alternatywe: <!ELEMENT lecturer ((name,phone) (phone,name))> XML definicje DTD 30

DTD: ograniczenia liczności W DTD można również określić, że pewne elementy wystapi a wiele razy, np.: <!ELEMENT lecturer (name,phone*)> <!ELEMENT name (#PCDATA)> <!ELEMENT phone (#PCDATA)> Po nazwie elementu może wystapić wyrażenie określajace liczność (cardinality) wystapień tego elementu. Możliwości:? oznacza, że element może wystapić jeden raz lub wcale * oznacza, że element może wystapić zero lub wiecej razy + oznacza, że element może wystapić jeden lub wiecej razy brak ograniczenia liczności oznacza dok ladnie jedno wystapienie XML definicje DTD 31

DTD: użycie atrybutów <order orderno="23456" customer="john Smith" date="october 15, 2002"> <item itemno="a528" quantity="1"/> <item itemno="c817" quantity="3"/> </order> Odpowiednia definicja DTD: <!ELEMENT order (item+)> <!ATTLIST order orderno ID #REQUIRED customer CDATA #REQUIRED date CDATA #REQUIRED> <!ELEMENT item EMPTY> <!ATTLIST item itemno ID #REQUIRED quantity CDATA #REQUIRED comments CDATA #IMPLIED> Zwróćmy najpierw uwag e na określenie, że element item jest pusty. XML definicje DTD 32

DTD: definiowanie atrybutów Atrybuty dla danego elementu definiowane sa za pomoca listy atrybutów: <!ATTLIST order orderno ID #REQUIRED customer CDATA #REQUIRED date CDATA #REQUIRED> Lista atrybutów zawiera: nazw e elementu, którego lista dotyczy, sekwencj e trójek: nazwa, typ, i specyfikacja typu wartości atrybutu. Typ atrybutu może być jednym z określonego zestawu; najważniejsze możliwości: CDATA oznacza ciag znaków, ID oznacza nazwe elementu unikalna dla ca lego dokumentu XML, IDREF oznacza odniesienie do innego elementu o danym ID, IDREFS oznacza serie IDREF, (v 1... v n ) oznacza jedna z podanych wartości Typ atrybutu nie dopuszcza wartości liczbowych, musza one być zapisywane jako stringi. Również nie można wymusić żadnej konkretnej struktury, np. dla daty. XML definicje DTD 33

DTD: specyfikacja typu wartości atrybutu Przypomnijmy przyk ladowa liste atrybutów dla elementu item: <!ATTLIST item itemno ID #REQUIRED quantity CDATA #REQUIRED comments CDATA #IMPLIED> Cztery możliwe określenia typu wartości: #REQUIRED oznacza, że atrybut musi pojawić sie w każdym wystapieniu elementu, #IMPLIED oznacza, że atrybut jest opcjonalny, #FIXED "value" oznacza, że element musi mieć ten atrybut, i ma on podana wartość (wartość podana w dokumencie XML jest ignorowana), "value" określa wartość domyślna atrybutu; jeśli w dokumencie XML pojawi sie inna wartość, to zastepuje ona podana wartość domyślna. XML definicje DTD 34

DTD: odwo lania IDREF i IDREFS Rozważmy przyk ladowa definicje DTD określajac a, że dokument XML bedzie opisywa l zbiór osób, miedzy którymi zachodza określone relacje, w tym przypadku zwiazki rodzinne. Te relacje można zapisać za pomoca atrybutów IDREF, IDREFS, odwo lujacych sie do atrybutów ID. <!ELEMENT family (person*)> <!ELEMENT person (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST person id ID #REQUIRED mother IDREF #IMPLIED father IDREF #IMPLIED children IDREFS #IMPLIED> XML definicje DTD 35

DTD: przyk lad wykorzystujacy IDREF i IDREFS <family> <person id="bob" mother="mary" father="peter"> <name>bob Marley</name> </person> <person id="bridget" mother="mary"> <name>bridget Jones</name> </person> <person id="mary" children="bob bridget"> <name>mary Poppins</name> </person> <person id="peter" children="bob"> <name>peter Marley</name> </person> </family> XML definicje DTD 36

DTD: encje XML W dokumentach XML moga pojawiać sie encje (entities), które maja charakter predefiniowanych sta lych. Przyk lad encji: <!ENTITY thisyear " 2007 " > Możemy teraz zapisać odwo lania do encji: &thisyear zamiast: " 2007 ". Encje pe lni a nastepuj ace role: skrótowy zapis dla powtarzanego ciagu znaków, blok danych zewnetrznych (XML lub innych), cześć deklaracji elementu. Istnieje pi eć predefiniowanych encji dla wprowadzanie znaków specjalnych: & zast epuje: & < zast epuje: < > zast epuje: > " zast epuje: " &apos; zast epuje: XML definicje DTD 37

DTD: przyk lad elementu email <!ELEMENT email (head,body)> <!ELEMENT head (from,to+,cc*,subject)> <!ELEMENT from EMPTY> <!ATTLIST from name CDATA #IMPLIED address CDATA #REQUIRED> <!ELEMENT to EMPTY> <!ATTLIST to name CDATA #IMPLIED address CDATA #REQUIRED> <!ELEMENT cc EMPTY> <!ATTLIST cc name CDATA #IMPLIED address CDATA #REQUIRED> <!ELEMENT subject (#PCDATA)> <!ELEMENT body (text,attachment*)> <!ELEMENT text (#PCDATA)> <!ELEMENT attachment EMPTY> <!ATTLIST attachment encoding (mime binhex) "mime" file CDATA #REQUIRED> XML definicje DTD 38

DTD: komentarze do przyk ladu email Element head zawiera (w kolejności): element from, co najmniej jeden element to, zero lub wi ecej elementów cc, element subject. W elementach from, to, i cc: atrybut name nie jest wymagany, atrybut address jest wsz edzie wymagany. Element body zawiera: element text, i ponim opcjonalnie dowolna liczba elementów attachment. Atrybut encoding elementu attachment musi mieć jedna z wartości mime lub binhex, i mime jest wartościa domyślna. XML definicje DTD 39

Dalsze uwagi o DTDs DTD można traktować jako rodzaj j ezyka podobnego do EBNF (Extended Backus-Naur Form): <!ELEMENT email (head,body)> jest równoważny: email ::= head body W DTD możliwe sa definicje rekurencyjne: <!ELEMENT bintree ((bintree root bintree) emptytree)> XML definicje DTD 40

Schematy XML XML Schema jest j ezykiem istotnie bogatszym o mechanizmy definiowania struktury dokumentów XML. Jego sk ladnia jest jednak oparta na XML-u. Ta cecha powoduje, że duża cześć technologii XML można użyć ponownie, nie trzeba pisać oddzielnych parserów, edytorów, i innych narzedzi do jego przetwarzania. Inna cecha jest możliwość ponownego wykorzystania istniejacych schematów. Istnieje możliwość rozszerzania lub ograniczania. Schematy XML pozwalaja na użycie rozbudowanych typów danych, w odróżnieniu od DTD, które wspieraja jedynie stringi. Schemat XML jest elementem z otwierajacym znacznikiem: <schema "http://www.w3.org/2000/10/xmlschema" version="1.0"> Ten element b edzie wykorzystywa l schemat ze strony W3C. Na jego bazie można budować nowe schematy. Struktura elementu schematu: element i typy atrybutów, z typami danych. XML schematy 41

Przyk ladowa deklaracja elementu: XML Schema: typy elementów <element name="email"/> <element name="head" minoccurs="1" maxoccurs="1"/> <element name="to" minoccurs="1"/> Elementy moga mieć ograniczenia liczności (cardinality constraints): minoccurs="x" (wartość domyślna 1) maxoccurs="x" (wartość domyślna 1) Sa one uogólnieniami ograniczeń liczności z DTD: *,+,? XML schematy 42

XML Schema: typy atrybutów Atrybuty definiowane sa za pomoca elementu attribute, wewnatrz elementu, do którego maja zastosowanie. Przyk lady: <attribute name="id" type="id" use="required"/> <attribute name="speaks" type="language" use="default" value="en"/> Ograniczenia na wyst epowanie danego atrybutu: use="x" gdzie x może być: optional lub required Wartości domyślne dla atrybutów: use="x" value="..." gdzie x może być: default lub fixed XML schematy 43

XML Schema: typy danych Istnieje szereg wbudowanych typów danych: numeryczne: integer, Short, itp. znakowe: string, ID, IDREF, CDATA, itp. data i czas: time, Month, itp. Możliwe sa również typy danych definiowane przez użytkownika: proste typy danych, które nie używaja elementów ani atrybutów, z lożone typy danych, moga używać elementy i atrybuty. Z lożone typy danych definiowane sa z już istniejacych typów danych przez definiowanie pewnych atrybutów (opcjonalne) i użycie: sequence sekwencji istniejacych typów (kolejność istotna), all zbioru elementów, które musza sie pojawić (kolejność nieistotna), choice zbioru elementów, z których jeden musi sie pojawić. XML schematy 44

XML Schema: przyk lad typu danych <complextype name="lecturertype"> <sequence> <element name="firstname" type="string" minoccurs="0" maxoccurs="unbounded"/> <element name="lastname" type="string"/> </sequence> <attribute name="title" type="string" use="optional"/> </complextype> XML schematy 45

XML Schema: rozszerzenie typu danych Istniejacy typ danych można rozszerzyć dodajac nowe elementy lub atrybuty, np.: <complextype name="extendedlecturertype"> <extension base="lecturertype"> <sequence> <element name="email" type="string" minoccurs="0" maxoccurs="1"/> </sequence> <attribute name="rank" type="string" use="required"/> </extension> </complextype> XML schematy 46

XML Schema: równoważny kompletny typ danych <complextype name="extendedlecturertype"> <sequence> <element name="firstname" type="string" minoccurs="0" maxoccurs="unbounded"/> <element name="lastname" type="string"/> <element name="email" type="string" minoccurs="0" maxoccurs="1"/> </sequence> <attribute name="title" type="string" use="optional"/> <attribute name="rank" type="string" use="required"/> </complextype> Pomiedzy oryginalnym i rozszerzonym typem danych istnieja zwiazki: instancje typu rozszerzonego sa instancjami typu bazowego, instancje typu rozszerzonego moga zawierać dodatkowe informacje, ale nie moga zawierać mniej informacji, ani informacji niew laściwego typu. XML schematy 47

XML Schema: ograniczenie typu danych Istniejacy typ danych może być ograniczony przez dodanie ograniczeń na pewne wartości. Ograniczenie nie jest odwrotnościa rozszerzania, nie jest tworzone przez usuwanie elementów ani atrybutów. Nastepuj ace zwiazki hierarchiczne pomiedzy typami danych nadal istnieja: instancje typu ograniczonego sa również instancjami typu bazowego, spe lniaja one wszystkie ograniczenia typu bazowego. XML schematy 48

XML Schema: przyk lad ograniczenia typu danych <complextype name="restrictedlecturertype"> <restriction base="lecturertype"> <sequence> <element name="firstname" type="string" minoccurs="1" maxoccurs="2"/> </sequence> <attribute name="title" type="string" use="required"/> </restriction> </complextype> XML schematy 49

XML Schema: ograniczenie prostych typów danych <simpletype name="dayofmonth"> <restriction base="integer"> <mininclusive value="1"/> <maxinclusive value="31"/> </restriction> </simpletype> <simpletype name="dayofweek"> <restriction base="string"> <enumeration value="mon"/> <enumeration value="tue"/> <enumeration value="wed"/> <enumeration value="thu"/> <enumeration value="fri"/> <enumeration value="sat"/> <enumeration value="sun"/> </restriction> </simpletype> XML schematy 50

XML Schema: przyk lad elementu email <element name="email" type="emailtype"/> <complextype name="emailtype"> <sequence> <element name="head" type="headtype"/> <element name="body" type="bodytype"/> </sequence> </complextype> <complextype name="headtype"> <sequence> <element name="from" type="nameaddress"/> <element name="to" type="nameaddress" minoccurs="1" maxoccurs="unbounded"/> <element name="cc" type="nameaddress" minoccurs="0" maxoccurs="unbounded"/> <element name="subject" type="string"/> </sequence> </complextype> XML schematy 51

XML Schema: przyk lad elementu email (cd.) <complextype name="nameaddress"> <attribute name="name" type="string" use="optional"/> <attribute name="address" type="string" use="required"/> </complextype> podobnie dla bodytype XML schematy 52

Przestrzenie nazw Dokument XML może używać wi ecej niż jednego DTD albo schematu. Ponieważ te definicje struktury by ly zapewne opracowane niezależnie, moga wystapić kolizje nazw. Rozwiazaniem jest użycie oddzielnego prefixu dla każdego DTD lub schematu: prefix:name XML przestrzenie nazw 53

Przestrzenie nazw przyk lad Przyk lad: we wspó lpracy pomiedzy Uniwersytetem Kentucky i australijskim Griffith University, moga powstawać takie dokumenty: <?xml version="1.0" encoding="utf-16"> <vu:instructors xmlns:vu="http://www.vu.com/empdtd" xmlns:gu="http://www.gu.au/empdtd" xmlns:uky="http://www.uky.edu/empdtd"> <uky:faculty uky:title="assistant professor" uky:name="john Smith" uky:department="computer Science"/> <gu:academicstaff gu:title="lecturer" gu:name="mate Jones" gu:school="information Technology"/> </vu:instructors> Zauważmy, stanowisko lecturer w U.S.A. oznacza pracownika niezaliczanego do kadry naukowej, natomiast w Australii tak (odpowiada mniej wi ecej stanowisku assistant professor w U.S.A.). XML przestrzenie nazw 54

Deklaracje przestrzeni nazw Przestrzenie nazw sa deklarowane wewnatrz elementów i moga być nastepnie używane w tym elemencie, i jego elementach potomnych (wewnetrznych), w tym również w atrybutach. Deklaracja przestrzeni nazw ma postać: xmlns:prefix="location" gdzie location jest adresem DTD lub schematu. Jeśli prefix nie jest określony, to DTD lub schemat odwo lane w takiej deklaracji: xmlns="location" jest stosowane domyślnie. XML przestrzenie nazw 55

XML przestrzenie nazw 56

Adresowanie i odpytywanie dokumentów XML Jeśli potraktujemy dokumenty XML jako zbiory (lub bazy) danych, to aby móc je efektywnie przeszukiwać/odpytywać, potrzebne sa odpowiednie mechanizmy: jezyk formu lowania zapytań + odpowiedni procesor (interpreter), jezyk zapytań XML można traktować jako odpowiednik jezyka SQL dla relacyjnych baz danych, istniejace jezyki zapytań XML: XQuery, XQL, XML-QL. Pojeciem leżacym u podstaw jezyków zapytań jest pojecie ścieżki (path). Wyrażenie określajace ścieżke pozwala odwo lywać sie do określonego wez la lub wez lów w drzewie dokumentu XML. XML odwo lywanie si e i odpytywanie dokumentów XML 57

XPath XPath jest j ezykiem zapisu ścieżek w dokumentach XML. Jednocześnie jest centralnym elementem j ezyków zapytań XML. Dzia la na drzewiastym modelu danych XML. Sk ladnia wyrażenia XPath nie jest zgodna z XML. Typy ścieżek XPath: Bezwzgledne, zaczynaja sie od korzenia drzewa. Sk ladniowo zapisywane z symbolem / na poczatku ścieżki, który oznacza korzeń dokumentu (element g lówny dokumentu jest osadzony w tym korzeniu). Wzgledne, odnoszace sie do wez la kontekstu. XML XPath 58

Przyk ladowy dokument XML <library location="bremen"> <author name="henry Wise"> <book title="artificial Intelligence"/> <book title="modern Web Services"/> <book title="theory of Computation"/> </author> <author name="william Smart"> <book title="artificial Intelligence"/> </author> <author name="cynthia Singleton"> <book title="the Semantic Web"/> <book title="browser Technology Revised"/> </author> </library> XML XPath 59

/library/author Przyk lady wyrażeń ścieżkowych w XPath Określa wszystkie elementy author, które sa potomkami elementu g lównego (leżacego bezpośrednio w korzeniu) library. Ogólnie /t1/.../tn jest ścieżka, jeśli ti+1 jest wez lem potomnym wez la ti. XML XPath 60

//author Przyk lady wyrażeń ścieżkowych w XPath (2) Określa wszystkie elementy author. Sk ladnia // oznacza, że wszystkie elementy w ca lym dokumencie powinny być sprawdzone czy sa typu author. Ta ścieżka adresuje wszystkie elementy author w dowolnym miejscu dokumentu. XML XPath 61

Przyk lady wyrażeń ścieżkowych w XPath (3) /library/@location Symbol @ oznacza odwo lanie do atrybutów. W tym przypadku wyrażenie wybiera wez ly atrybutowe location po lożone wewnatrz wez la library (w korzeniu). //book[@title="artificial Intelligence"] Nawiasy kwadratowe oznaczaja wyrażenie filtrujace, które ogranicza zbiór wybranych wez lów. W tym przypadku wybierane sa wez ly book (po lożone w dowolnym miejscu dokumentu), ale z wartościa atrybutu title równa "Artificial Intelligence". XML XPath 62

Przyk lady wyrażeń ścieżkowych w XPath (4) Wybieramy wszystkie wez ly atrybutowe title, po lożone wewnatrz elementu book w dowolnym miejscu dokumentu, z wartościa "Artificial Intelligence": //book/@title="artificial Intelligence" XML XPath 63

Przyk lady wyrażeń ścieżkowych w XPath (5) Wybieramy wszystkie elementy book, z wartościa atrybutu title równa "Artificial Intelligence": //book[@title="artificial Intelligence"] XML XPath 64

Dalsze przyk lady: Przyk lady wyrażeń ścieżkowych w XPath (6) Pierwszy element author w dokumencie XML: //author[1] Ostatni element book w pierwszym elemencie author w dokumencie XML: //author[1]/book[last()] Wszystkie elementy book nie posiadajace atrybutu title: //book[not @title] XML XPath 65

Ogólna postać wyrażeń ścieżkowych w XPath Wyrażenie ścieżkowe sk lada si e z serii kroków, oddzielonych znakami slash. Każdy krok sk lada sie z: specyfikacji osi (axis), testu wez la, opcjonalnego predykatu. XML XPath 66

Ogólna postać wyrażeń ścieżkowych w XPath (2) Specyfikacja osi określa relacj e adresowanego w ez la wzgl edem w ez la kontekstu w drzewie: np.: rodzic, przodek, potomek (domyślnie), sasiad, weze l atrybutowy, // jest specyfikacja osi oznacza potomka lub samego siebie. XML XPath 67

Ogólna postać wyrażeń ścieżkowych w XPath (3) Test wez la określa które wez ly bed a wybierane: najprostszym testem w ez la jest nazwa elementu XML, przyk ladem innego testu jest "*" wybiera wszystkie elementy, jeszcze inny przyk lad: comment() wybiera wszystkie w ez ly komentarzy. XML XPath 68

Ogólna postać wyrażeń ścieżkowych w XPath (4) Predykaty (wyrażenia filtrujace) sa opcjonalne i moga być użyte do ograniczenia zbioru wybranych wez lów. Przyk lady: wyrażenie [1] wybiera pierwszy element, wyrażenie [position()=last()] wybiera ostatni element, wyrażenie [position() mod 2 = 0] wybiera elementy parzyste. Powyższe przyk lady stanowia tylko ilustracje. XPath ma znacznie bardziej skomplikowana postać ogólna. XML XPath 69

XML XPath 70

Prezentacja dokumentów XML Dokumenty XML nie określaja sposobu w jaki powinny być wyświetlane, np.: <author> <name>grigoris Antoniou</name> <affiliation>university of Bremen</affiliation> <email>ga@tzi.de</email> </author> może być wyświetlony: Grigoris Antoniou University of Bremen ga@tzi.de Grigoris Antoniou University of Bremen ga@tzi.de XML przetwarzanie 71

Arkusze stylu Arkusze stylu moga być napisane w różnych jezykach, np.: CSS2 kaskadowe arkusze stylu poziomu 2, XSL extensible stylesheet language Cechy XSL: zawiera j ezyk transformacji XSLT, zawiera j ezyk formatowania, oba sa aplikacjami XML. XML przetwarzanie 72

Transformacje XSL (XSLT) XSLT określa regu ly przekszta lcenia dokumentu XML w inny dokument XML, dokument HTML, albo zwyk ly tekst. Dokument wynikowy może używać tego samego DTD lub schematu, jak również zupe lnie innej definicji struktury. XSLT jest j ezykiem przetwarzania treści dokumentów XML i może być użyty niezależnie od j ezyka formatowania. XSLT może być wykorzystywany do: przenoszenia danych i metadanych z jednej reprezentacji XML do innej, komunikacji miedzy aplikacjami, które używaja różnych DTD lub schematów, maszynowego przetwarzania treści, niezależnie od ich prezentacji, jednak w tym wyk ladzie bedzie używany do prezentacji dokumentów XML. XML przetwarzanie 73

Transformacja XSLT dokumentów XML do HTML Arkusz stylu: <xsl:template match="/author"> <html> <head><title>an author</title></head> <body bgcolor="white"> <b><xsl:value-of select="name"/></b><br/> <xsl:value-of select="affiliation"/><br/> <i><xsl:value-of select="email"/></i> </body> </html> </xsl:template> Wynik przetwarzania przez arkusz stylu: <html> <head><title>an author</title></head> <body bgcolor="white"> <b>grigoris Antoniou</b><br/> University of Bremen<br/> <i>ga@tzi.de</i> </body> </html> XML przetwarzanie 74

Uwagi na temat XSLT Dokumenty XSLT sa dokumentami XML (XSLT jest aplikacja XML). Dokument XSLT definiuje szablon (template), w tym przypadku jest to szablon dokumentu HTML. Pozycje w tym szablonie wype lniane sa treścia z dokumentu źród lowego. xsl:value-of produkuje wartość elementu i wstawia ja do dokumentu wynikowego. Szablon: <html> <head><title>an author</title></head> <body bgcolor="white"> <b>...</b><br/>...<br/> <i>...</i> </body> </html> XML przetwarzanie 75

Szablony dodatkowe A co w przypadku, gdyby w dokumencie XML by ly informacje o wielu autorach, i należa lo je wszystkie wyświetlić wed lug jednakowego schematu? Odpowiedź, w dokumencie XSLT może istnieć wiele szablonów, i w arkuszu stylu moga one być jawnie wywo lywane przez xsl:apply-templates. Przyk ladowy dokument: <authors> <author> <name>grigoris Antoniou</name> <affiliation>university of Bremen</affiliation> <email>ga@tzi.de</email> </author> <author> <name>david Billington</name> <affiliation>griffith University</affiliation> <email>david@gu.edu.net</email> </author> </authors> XML przetwarzanie 76

Przyk lad szablonów dodatkowych (2) <xsl:template match="/"> <html> <head><title>authors</title></head> <body bgcolor="white"> <xsl:apply-templates select="authors"/> <!-- Apply templates for AUTHORS children --> </body> </html> </xsl:template> <xsl:template match="authors"> <xsl:apply-templates select="author"/> </xsl:template> <xsl:template match="author"> <h2><xsl:value-of select="name"/></h2> Affiliation:<xsl:value-of select="affiliation"/><br/> Email: <xsl:value-of select="email"/> <p/> </xsl:template> XML przetwarzanie 77

Wynik przetwarzania Można zastosować jakiś procesor XSLT do wykonania napisanego arkusza stylu: # xmlstarlet tr authors_pr.xslt authors.xml <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>authors</title> </head> <body bgcolor="white"> <h2>grigoris Antoniou</h2> Affiliation:University of Bremen<br> Email: ga@tzi.de<p></p> <h2>david Billington</h2> Affiliation:Griffith University<br> Email: david@gu.edu.net<p></p> </body> </html> XML przetwarzanie 78

Uwagi ogólne o przetwarzaniu XSLT Jest dobra praktyka definiowanie szablonów dla każdego typu elementu, nawet jeśli nie definiujemy żadnego przetwarzania dla danego typu elementu. W powyższym przyk ladzie, nie ma specjalnej akcji dla elementu authors, jednak jego elementy wewnetrzne podlegaja przetwarzaniu i sa wyświetlane. W ten sposób wszystkie elementy dokumentu sa przetwarzane, od korzenia do liści, i wszystkie szablony sa wykonywane. XML przetwarzanie 79

Przetwarzanie atrybutów XML Teraz pokażemy przetwarzanie atrybutów. Na przyk lad, chcemy przetworzyć nastepuj acy element w samego siebie: <person firstname="john" lastname="woo"/> Rozwiazanie niepoprawne: <xsl:template match="person"> <person firstname="<xsl:value-of select="@firstname">" lastname="<xsl:value-of select="@lastname">"/> </xsl:template> Powyższe rozwiazanie nie jest poprawne, bo znaczniki nie moga wystapić wewnatrz wartości atrybutów, zatem wyrażenie nie jest formalnie poprawne. Wartości atrybutów należy wprowadzić do szablonu: <xsl:template match="person"> <person firstname="{@firstname}" lastname="{@lastname}"/> </xsl:template> XML przetwarzanie 80

Przyk lad przekszta lcanie dokumentu XML przetwarzanie 81

Przyk lad przekszta lcanie dokumentu (2) <xsl:template match="/"> <?xml version="1.0" encoding="utf-16"?> <authors> <xsl:apply-templates select="authors"/> </authors> </xsl:template> <xsl:template match="authors"> <author> <xsl:apply-templates select="author"/> </author> </xsl:template> <xsl:template match="author"> <name><xsl:value-of select="name"/></name> <contact> <institution><xsl:value-of select="affiliation"/></institution> <email><xsl:value-of select="email"/></email> </contact> </xsl:template> XML przetwarzanie 82

XPointer i XLink XPath: deklaratywny j ezyk dla określania w ez lów i fragmentów drzew XML, używany w XSL (dla dopasowania wzorców), XML Schema (dla unikalności i określenia zakresu), jak i XQuery (dla wyboru i iteracji). XPointer: rozszerzenie XPath dla linkowania, określa zwiazek miedzy wyrażeniami XPath i URI. XLink: rozszerzenie koncepcji linku HTML, wyższy poziom abstrakcji, przeznaczony dla XML, nie tylko hypertekstu, wi ecej możliwości (wiele celów, specjalne zachowanie, bazy linków, itp.), używa XPointer dla wskazywania zasobów. XML przetwarzanie 83

Narz edzia do przetwarzania XML xmlwf - determines if an XML document is well-formed xmlto - apply an XSL stylesheet to an XML document xsltproc - command line XSLT processor xmlpatterns - a tool for running XQuery queries xmllint - command line XML tool XML przetwarzanie 84

Podsumowanie XML jest metajezykiem pozwalajacym definiować znaczniki. XML oddziela zawartość i struktur e od prezentacji. XML jest de facto standardem dla reprezentacji i wymiany informacji strukturalnej w Internecie. XML jest wspierany przez j ezyki zapytań. XML przetwarzanie 85