Tvorba informačních systémů

Podobné dokumenty
Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

PRG036 Technologie XML

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

Využití XML v DB aplikacích

APLIKACE XML PRO INTERNET

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

TÉMATICKÝ OKRUH Softwarové inženýrství

XML schémata XML teorie a praxe značkovacích jazyků (IZI238)

Java a XML. 10/26/09 1/7 Java a XML

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

API pro práci s XML. Jirka Kosek. Poslední modifikace: $Date: 2014/12/17 17:15:28 $ Copyright Jiří Kosek

XSLT extensible Stylesheet Language Transformation

Analýza dat a modelování. Speciální struktury

Obsah přednášky. XML DOM SAX XPath XSL transformace 1/46

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Michal Krátký, Miroslav Beneš

XML snadno a rychle Martin Kuba, ÚVT MU

Jemný úvod do spracovania XML

Dotazování nad XML daty a jazyk XPath

Úvod do XML Technologie

XML. Aleš Keprt

Elektronické publikování. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava

Úvod do databázových systémů B

XQuery. Jirka Kosek. Visual FoxPro DevCon června Praha. Copyright 2005 Jiří Kosek

Michal Krátký, Miroslav Beneš

XML terminologie a charakteristiky. Roman Malo

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Uspořádání klient-server. Standardy pro Web

Python XML a Web 1 PGS

TRANSFORMACE OBJEKTOVÉ PETRIHO SÍTĚ Z JAZYKA OPNML DO GRAFU TRANSFORMATION OF OBJECT-ORIENTED PETRI NET FROM OPNML LANGUAGE TO GRAPH

PRG036 Technologie XML

Bakalářská práce. Vladimír Mareš

Tvorba informačních systémů

MBI - technologická realizace modelu

Jazyky pro popis dat

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

Oracle XML DB. Tomáš Nykodým

Z n a č k o v a c í j a z y k y. XSL (extensible Stylesheet Language) XSLT (extensible Stylesheet Language Transformation) XPath

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky DIPLOMOVÁ PRÁCE

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

SCHÉMOVÉ JAZYKY. Přednáška z předmětu KMA/POK. Otakar ČERBA Západočeská univerzita v Plzni

HTML Hypertext Markup Language

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Tvorba WWW stránek. Mojmír Volf

Předmluva k druhému vydání 13. Úvod 17. ČÁST 2 Vytváření dokumentů XML 65

Elektronické publikování. Základní pojmy. B žné systémy. Publika ní nástroje. doc. RNDr. Petr Šaloun, Ph.D. FEI VŠB TU Ostrava

Další XML technologie

ZNAČKOVACÍ JAZYKY A JEJICH VYUŽÍVÁNÍ MARKUP LANGUAGE AND THEIR USE. Zdeněk Havlíček

NSWI096 - INTERNET. Úvod do HTML

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy!

Ukazka knihy z internetoveho knihkupectvi

Z n a č k o v a c í j a z y k y. XPath, XLink, XQuery, XPointer, XLinkTime, XForms

Alena Malovaná, MAL305

XPath je jazyk, který slouží k

NSWI096 - INTERNET JavaScript

Vývoj Internetových Aplikací

Úvod do tvorby internetových aplikací

Ukládání a vyhledávání XML dat

XML schémata. Agenda. Přínosy použití schématu. Proč potřebujeme schéma dokumentů XML. Tutoriál. Agenda. proč a nač jsou schémata

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

XML a XSLT. Kapitola seznamuje s šablonami XSLT a jejich použití při transformaci z XML do HTML

Lehký úvod do XML v kartografii

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

KAPITOLA 6. XML, XPath a XSLT. Podpora XML v prohlížečích. XML DOM v IE

Práce se soubory opakování

Rozhraní pro práci s XML dokumenty. Roman Malo

Dotazování nad stromem abstraktní syntaxe

13. Vytváření webových stránek

M M S. Značkovací jazyky

Distanční opora předmětu: Databázové systémy Tématický blok č. 5: Dotazovací jazyk XPath Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D.

CSS V DIGITÁLNÍ KARTOGRAFII

Kaskádové styly (CSS)

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

Na tomto místě bude oficiální zadání vaší práce

Základy WWW publikování

V této příloze je podrobně popsána struktura XML dokumentu s mapou (viz kapitolu 5.3), příklad tohoto XML dokumentu je na přiloženém CD v souboru

Základy XML struktura dokumentu (včetně testových otázek)

Tvorba informačních systémů

Vývoj Internetových Aplikací

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy

Vysoká škola ekonomická v Praze

Jazyky XQuery a XPath 1

Lehký úvod do XML. Vysoká škola ekonomická v Praze. <jirka@kosek.cz> Web:

Správnost XML dokumentu

XML schémata. Jiří Kosek

Úvod do aplikací internetu a přehled možností při tvorbě webu

X L M L v v Of O f f i f ce XML OBECNĚ VBA pro Excel Petr Blaha XML v MS Office Michal Theodor

TRANSFORMACE A PERZISTENCE XML

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Teoretické a pokročilé aspekty XML technologií

XFORMS JAKO NÁHRADA WEBOVÝCH FORMULÁŘŮ XFORMS - WEB FORMS SUCCESSOR

Transkript:

Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006 2008 Michal Krátký Tvorba informačních systémů 1/46

Obsah 8. XML Technologie XML technologie, Datový model, schéma dokumentu. Dotazovací jazyky XPath, Jmenné prostory, Transformace XSLT, API pro práci s XML. c 2006 2008 Michal Krátký Tvorba informačních systémů 2/46

Extensible Mark-up Language (XML) Extensible Mark-up Language (XML) byl uveden v roce 1998 konsorciem World Wide Web Consortium (W3C, http://www.w3.org/). Značkovací jazyk reprezentující informace elementy, které mohou obsahovat další elementy a atributy. Neobsahuje pevnou množinu značek, ale umožňuje definovat vlastní schéma XML dokumentu. c 2006 2008 Michal Krátký Tvorba informačních systémů 3/46

Extensible Mark-up Language (XML) Pohled 1: Popis heterogenních dat, příklad aplikací: hypertextový dokument XHTML, popis prostorových dat Geography Markup Language (GML), matematické rovnice MathML, vektorová grafika SVG, knihy a časopisy v computer science DocBook. c 2006 2008 Michal Krátký Tvorba informačních systémů 4/46

XML, ukázka MathML [a + b] 260 <math xmlns= " h t t p : / /www. w3. org /1998/ Math / MathML"> <mrow> <msup> <mfenced open= " [ " close= " ] " > <mrow> <mi>a< / mi> <mo>+< /mo> <mi>b< / mi> < / mrow> < / mfenced> <mn>260< / mn> < / msup> < / mrow> c 2006 2008 Michal Krátký Tvorba informačních systémů 5/46

XML, ukázka SVG 8. XML Technologie <?xml version= " 1.0 " standalone= " no "?> <!DOCTYPE svg PUBLIC " //W3C/ / DTD SVG 1. 1 / /EN" " h t t p : / /www. w3. org / Graphics /SVG/ 1. 1 /DTD/ svg11. dtd " > <svg width="100%" height="100%" version= " 1.1 " xmlns= " h t t p : / /www. w3. org /2000/ svg " > < r e c t x= " 20 " y= " 20 " rx=" 20 " ry=" 20 " width=" 250 " height=" 100 " s t y l e = " f i l l : r e d ; s t r o k e : b l a c k ; stroke w i d t h : 5 ; o p a c i t y : 0.5 " / > < / svg> c 2006 2008 Michal Krátký Tvorba informačních systémů 6/46

XML, ukázka XHTML <?xml version= " 1. 0 " encoding= " UTF 8"?> <!DOCTYPE html PUBLIC " //W3C/ / DTD XHTML 1.0 S t r i c t / / EN" " h t t p : / /www. w3. org /TR/ xhtml1 /DTD/ xhtml1 s t r i c t. dtd " > <html xmlns= " h t t p : / /www. w3. org /1999/ xhtml " xml:lang= " en " lang= <head> < t i t l e >Minimal XHTML 1. 0 Document with W3C DTD< / t i t l e > < / head> <body> <p>this i s a minimal <a h r e f = " h t t p : / /www. w3. org /TR/ xhtml1 / document w ith a W3C u r l f o r the DTD. < / p> < / body> < / html> Oproti HTML striktně oddělujeme obsah a formátování obsahu. c 2006 2008 Michal Krátký Tvorba informačních systémů 7/46

Extensible Mark-up Language (XML) Pohled 2: Datový model XML dokument je modelován jako strom (tzv. XML strom). Porovnejte s relačním datovým modelem. Poznámka: Tento datový model se objevil již v jazyku SGML a v databázové komunitě v podobě tzv. slabě strukturovaných dat. c 2006 2008 Michal Krátký Tvorba informačních systémů 8/46

Dobře strukturovaný (well formed) XML dokument 1/2 Element má typ identifikovaný jménem (často označujeme jako tag značka). Např. <book>...</book>. Element může obsahovat množinu dvojic atribut= hodnota. V textovém tvaru XML dokumentu identifikujeme počáteční (start-tag) a koncovou značku (end-tag) elementu (<name>...</name>). Text mezi počáteční a koncovou značkou nazýváme obsah elementu (element content). c 2006 2008 Michal Krátký Tvorba informačních systémů 9/46

Dobře strukturovaný (well formed) XML dokument 2/2 Pokud element obsahuje další potomky a znaky, mluvíme o dokumentu se smíšeným obsahem (mixed content). Např. <a>hi, <b>mike</b></a>. Element nemající obsah nazýváme prázdný (empty). Zkrácený zápis: <img src="picture.jpg"/>. První řádek obsahuje XML deklaraci, např. <?xml version="1.0"?>. Dokument splňující tato základní pravidla se nazývá dobře strukturovaný (well formed). c 2006 2008 Michal Krátký Tvorba informačních systémů 10/46

Příklad - dobře strukturovaný XML dokument <?xml version= " 1.0 "? > <books> <book i d = " 003 04312 " > < t i t l e >The Two Towers< / t i t l e > <author>j.r.r. Tolkien< / author> < / book> <book i d = " 001 00863 " > < t i t l e >The Return of the King< / t i t l e > <author>j.r.r. Tolkien< / author> < / book> <book i d = " 045 00012 " > < t i t l e >Catch 22< / t i t l e > <author>joseph H e l l e r < / author> < / book>< / books> c 2006 2008 Michal Krátký Tvorba informačních systémů 11/46

Příklad - XML strom 8. XML Technologie XML strom pro dobře strukturovaný XML dokument. books book book book id title author id title author id title author 003-04312 The Two Towers J.R.R. Tolkien 001-00863 The Return of the King J.R.R. Tolkien 045-00012 Catch 22 Joseph Heller c 2006 2008 Michal Krátký Tvorba informačních systémů 12/46

Příklad - nekorektní XML dokument <?xml version= " 1.0 "? > <body> < t a b l e > < t r > < td>sloupec 1 < td>sloupec 2 < / t r > < / t a b l e > < / body> Značky td nejsou uzavřeny dokument není dobře strukturovaný. Důsledkem je nejasná interpretace: < td>sloupec 1 < / td> < td>sloupec 1 < td>sloupec 2 < / td>< / td> Co měl autor na mysli? c 2006 2008 Michal Krátký Tvorba informačních systémů 13/46

Příklad - XML dokument se smíšeným obsahem 1/2 <books> <book> < t i t l e >XML Data Management< / t i t l e > <author> Akmal B. Chaudhri, Awais Rashid, Roberto Z i c a r i < / author> <keywords> XML, Native XML Database,... < / keywords> <desc> <isbn>0 201 84452 4< / isbn> < / desc> < / book>... < / books> copy 2003 Addison Wesley P r o f e s s i o n a l c 2006 2008 Michal Krátký Tvorba informačních systémů 14/46

Příklad - XML strom 8. XML Technologie XML strom pro dokument se smíšeným obsahem. 0 BOOKS (0) 34 BOOK (1) 34 TITLE (2) 36 AUTHOR (11) 38 KEYWORDS (18) 40 DESC (19) 35 PCDATA (3) 37 PCDATA (3) 39 PCDATA (3) 41 ISBN (20) 43 PCDATA (3) (4) (5) (6) XML Data Management: (7) (4) (8) Native XML and XML-Enabled (9) (10) Database Systems (12) (13) Akmal B. Chaudrhi, (14) (15) Awais Rashid, (16) (17) Roberto Zicari (4) XML, (7) (4) (9) Native XML database,... 42 PCDATA (3) (21) 0-2001-84452-4 (22) (23) copyright 2003, (24) (25) Addison Wesley (26) Professional c 2006 2008 Michal Krátký Tvorba informačních systémů 15/46

Validní dokument 8. XML Technologie XML dokument splňující definované schéma nazýváme validní. Obdoba schématu relační databáze: relační databáze - schéma relační databáze vs dokument - schéma dokumentu Jazyky popisující schéma: DTD, XML Schema (W3C),... Výhoda: není nutné psát parser pro každý XML dokument. Pouze definujeme schéma ke kterému je dokument validní. c 2006 2008 Michal Krátký Tvorba informačních systémů 16/46

Příklad - DTD 8. XML Technologie <!DOCTYPE books [ <!ELEMENT books ( book ) > <!ELEMENT book ( t i t l e, author ) > <! ATTLIST book i d CDATA #REQUIRED> <!ELEMENT t i t l e (#PCDATA) > <!ELEMENT author (#PCDATA) > ] > Komentář: Element books obsahuje elementy book. Element book obsahuje elementy title a author. Element book obsahuje atribut id. Element title obsahuje řetězcovou hodnotu. Element author obsahuje řetězcovou hodnotu. c 2006 2008 Michal Krátký Tvorba informačních systémů 17/46

DTD 8. XML Technologie Základní rys: Definujeme atributy a elementy jako děti jiných elementů. Nevýhody: Nejsou definovány datové typy, např. celé číslo nebo řetězec. Nejedná se o XML dokument DTD bylo převzato z SGML. c 2006 2008 Michal Krátký Tvorba informačních systémů 18/46

XML Schema 8. XML Technologie Vlastnosti: Vestavěné datové typy (xsd:string, xsd:int,...), možnost definovat uživatelské datové typy. Přesné nastavení počtu výskytu elementu v nadelementu. Relativně složité a nečitelné, druhý pohled: XML dokument nemusí být nutně dobře čitelný pro člověka. c 2006 2008 Michal Krátký Tvorba informačních systémů 19/46

Příklad - XML Schema 1/3 <xsd:schema xmlns:xsd= " h t t p : / /www. w3. org /2001/XMLSchema" > <xsd:element name= " books " > <xsd:complextype> <xsd:sequence> <xsd: element name= " book " maxoccurs= " unbounded " >... < / xsd:element> Komentář: XML dokument obsahuje kořenový element books a neomezeným počtem dětských elementů book. c 2006 2008 Michal Krátký Tvorba informačních systémů 20/46

Příklad - XML Schema 2/3... <xsd: element name= " book " maxoccurs= " unbounded " > <xsd:complextype> <xsd:sequence> <xsd:element name= " t i t l e " type= " x s d : s t r i n g " / > <xsd:element name= " author " type= " x s d : s t r i n g " / > < / xsd:sequence> < x s d : a t t r i b u t e name= " i d " type= " IdType " use= " r e q u i r e d " / > < / xsd:complextype> < / xsd:element> Komentář: Element book obsahuje elementy title a author s obsahem typu string a atribut id typu IdType. c 2006 2008 Michal Krátký Tvorba informačních systémů 21/46

Příklad - XML Schema 3/3... <xsd: simpletype name= " IdType " > < x s d : r e s t r i c t i o n base= " x s d : s t r i n g " > < x s d : l e n g t h value= " 9 " / > < x s d : p a t t e r n value= " [0 1] [0 1] " / > < / x s d : r e s t r i c t i o n > < / xsd: simpletype> < / xsd:schema> Komentář: Definujeme datový typ IdType, který dědí z řetězce. Omezíme délku na 9 znaků a regulárními výrazem obsah řetězce. c 2006 2008 Michal Krátký Tvorba informačních systémů 22/46

XML dotazovací jazyky XPath, XQuery (oba W3C),.... Jazyky jsou založené na XPath. XPath umožňuje procházet XML strom pomocí výrazů cest (path expressions). Obsahuje osy XPath (XPath axes) relace mezi uzly stromu. Dále obsahuje funkce, např. vrácení podřetězce atd. c 2006 2008 Michal Krátký Tvorba informačních systémů 23/46

XPath 8. XML Technologie Dotaz se skládá z výrazů axis::tag[filter] oddělených / nebo //. Výsledkem výrazu na kontextovém uzlu u je množina uzlů u : Relace axis obsahuje (u, u ). Značka pro u je tag. Podmínka filter nabývá hodnoty true na uzlu u. books/book/title //book/title //book[author= Joseph Heller ]/title //book[author= Joseph Heller AND year > 1965]/title c 2006 2008 Michal Krátký Tvorba informačních systémů 24/46

Příklad, XPath 8. XML Technologie books book book book id title author id title author id title author 003-04312 The Two Towers J.R.R. Tolkien 001-00863 The Return of the King J.R.R. Tolkien 045-00012 Catch 22 Joseph Heller books/book/title //book/title //book[author= Joseph Heller ]/title c 2006 2008 Michal Krátký Tvorba informačních systémů 25/46

Osy XPath 1/2 8. XML Technologie parent ancestor ancestor-or-self child descendant descendant-or-self preceding 1. uzel na cestě od u ke kořeni uzly ležící na cestě z u ke kořeni u a uzly ležící na cestě z u ke kořeni přímý potomek uzlu u všechny uzly pro které je u předek descendant + u uzly předcházející uzel u (kromě předků) c 2006 2008 Michal Krátký Tvorba informačních systémů 26/46

Osy XPath 2/2 8. XML Technologie following uzly následující uzel u (kromě potomků) preceding-sibling předcházející sourozenci u following-sibling následující sourozenci u attribute atribut uzlu u self u namespace jmenný prostor u c 2006 2008 Michal Krátký Tvorba informačních systémů 27/46

Příklad, Osy XPath 1/4 0 0 0 1 6 1 6 1 6 2 5 7 2 5 7 2 5 7 3 4 8 9 3 4 8 9 3 4 (a) (b) (c) 8 9 Výsledné uzly výrazů (a) parent::*, (b) ancestor::*, (c) ancestor-or-self::* z kontextového uzlu 7. c 2006 2008 Michal Krátký Tvorba informačních systémů 28/46

Příklad, Osy XPath 2/4 0 0 0 1 6 1 6 1 6 2 5 7 2 5 7 2 5 7 3 4 8 9 3 4 8 9 3 4 (a) (b) (c) 8 9 Výsledné uzly výrazů (a) child::*, (b) descendant::*, (c) descendant-or-self::* z kontextového uzlu 1. c 2006 2008 Michal Krátký Tvorba informačních systémů 29/46

Příklad, Osy XPath 3/4 1 0 6 1 0 6 2 5 7 2 5 7 3 4 8 9 3 4 8 9 (a) (b) Výsledné uzly výrazů (a) preceding::* a (b) following::* z kontextového uzlu 6 resp. 1. c 2006 2008 Michal Krátký Tvorba informačních systémů 30/46

Příklad, Osy XPath 4/4 1 0 6 1 0 6 2 5 7 2 5 7 3 4 8 9 3 4 8 9 (a) (b) Výsledné uzly výrazů (a) preceding-sibling::* a (b) following-sibling::* z kontextového uzlu 6 resp. 2. c 2006 2008 Michal Krátký Tvorba informačních systémů 31/46

XQuery 8. XML Technologie Aktuální standard W3C pro dotazování XML dat. < r e s u l t s > { f o r $ b i n doc ( books. xml ) / books / book, $n i n $ b / name, $a i n $ b / author r e t u r n < r e s u l t > { $ n } { $ a } < / r e s u l t > } < / r e s u l t s > c 2006 2008 Michal Krátký Tvorba informačních systémů 32/46

XML namespace 8. XML Technologie Umožňuje rozšířit jméno elementu o prefix jmenný prostor. <?xml version= " 1.0 " encoding= " ISO 8859 1"?> < x s l : s t y l e s h e e t version= " 1.0 " x m l n s : x s l = " h t t p : / /www. w3. org /1999/XSL / Transform " > < x s l : t e m p l a t e match= " / " > c 2006 2008 Michal Krátký Tvorba informačních systémů 33/46

EXtensible Stylesheet Language Transformation (XSLT) W3C standard. Transformace XML dokumentu na jiný XML dokument. Transformace je řízena transformačním souborem XML soubor validní ke schématu XSL. XSL je rozsáhlejší, obsahuje i XSL FO (formatting objects) např. transformace XML do pdf. c 2006 2008 Michal Krátký Tvorba informačních systémů 34/46

Příklad, XSLT 1/2 8. XML Technologie <?xml version= " 1. 0 " encoding= " ISO 8859 1"?> < x s l : s t y l e s h e e t version= " 1.0 " x m l n s : x s l = " h t t p : / /www. w3. org /1999/XSL / Transform " > < x s l : t e m p l a t e match= " / " > <html > <body> <h2>cd C o l l e c t i o n < / h2> < t a b l e border= " 1 " > < t r bgcolor=" #9acd32 " > < th> T i t l e < / th> < th> A r t i s t < / th> < / t r > Komentář: Kořenový element je nahrazen těmito značkami. c 2006 2008 Michal Krátký Tvorba informačních systémů 35/46

Příklad, XSLT 2/2 8. XML Technologie < x s l : f o r each s e l e c t = " catalog / cd " > < t r > < td>< x s l : v a l u e of s e l e c t = " t i t l e " / >< / td> < td>< x s l : v a l u e of s e l e c t = " a r t i s t " / >< / td> < / t r > < / x s l : f o r each> < / t a b l e > < / body> < / html> < / x s l : t e m p l a t e > < / x s l : s t y l e s h e e t > < / x s l : s t y l e s h e e t > Komentář: Pro každý element catalog/cd vložíme obsah elementů title a artist. c 2006 2008 Michal Krátký Tvorba informačních systémů 36/46

1/2 Parsery: DOM (Document Object Model) W3C, XML dokument je načten do paměti jako struktura instancí. Projekty: Apache Xerces (C, Java) (http://xerces.apache.org/), Microsoft XML Parser. SAX sekvenčně zpracováváme jednotlivé elementy, které parser načítá. Projekty: Xerces, Microsoft XML Parser. Další např..net umožňuje pro každý typ uzlu definovat třídu. Jedná se tedy o obdobu DOM ve kterém schéma dokumentu definujeme strukturou tříd. c 2006 2008 Michal Krátký Tvorba informačních systémů 37/46

2/2 Parsery, poznámky: Součástí parserů je často API pro validaci dokumentu vůči schématu. SAX, http://sax.sourceforge.net/ Simple API for XML, nejedná se o standard W3C. DOM, http://www.w3.org/tr/dom-level-2-core je standardem W3C. Implementace XSLT: Microsoft XML Parser. Apache Xalan (C++, Java) http://xalan.apache.org/. c 2006 2008 Michal Krátký Tvorba informačních systémů 38/46

Příklad, DOM, Java 1/2 DocumentBuilderFactory d b f a c t o r y = DocumentBuilderFactory. newinstance ( ) ; DocumentBuilder b u i l d e r = d b f a c t o r y. newdocumentbuilder ( ) ; Document doc = b u i l d e r. parse (new F i l e ( " f i l e. xml " ) ) ; Element r o o t = doc. getdocumentelement ( ) ; Komentář: Vytvoříme instanci parseru a načteme dokument file.xml. Dokument je načten do paměti jako struktura objektů. Můžeme tedy získat referenci na objekt reprezentující element nebo atribut. Na posledním řádku požadujeme referenci na kořenový element. c 2006 2008 Michal Krátký Tvorba informačních systémů 39/46

Příklad, DOM, Java 2/2... NodeList l i s t = r o o t. getelementsbytagname ( " book " ) ; for ( i n t i = 0 ; i < l i s t. getlength ( ) ; i + + ) { Element element = ( Element ) l i s t. item ( i ) ; S t r i n g i d = element. g e t A t t r i b u t e ( " i d " ) ; NodeList t i t l e L i s t = element. getelementsbytagname ( " t i t l e " ) ;.... } Komentář: Získáme podelementy kořenového uzlu se jménem book. V cyklu získáváme hodnotu atributu id a referenci na element title aktuálního elementu book. c 2006 2008 Michal Krátký Tvorba informačních systémů 40/46

Příklad, C#, 1/4 8. XML Technologie.NET zahrnuje třídu XmlReader s podobnou funkcionalitou jako SAX. XmlReaderSettings x r s = new XmlReaderSettings ( ) ; x r s. IgnoreWhitespace = true ; using ( XmlReader reader=xmlreader. Create ( " d : \ \ book. xml ", xrs ) ) { reader. ReadStartElement ( " books " ) ;... Komentář: Otevřeme soubor (budeme ignorovat bílé znaky) a načteme kořenový uzel books. c 2006 2008 Michal Krátký Tvorba informačních systémů 41/46

Příklad, C#, 2/4 8. XML Technologie while ( true ) { t r y { i f ( reader. H a s A t t r i b u t e s ) { while ( reader. MoveToNextAttribute ( ) ) { Console. WriteLine ( " book { 0 } = { 1 } ", reader.name, reader. Value ) ; } reader. MoveToElement ( ) ; } Komentář: V cyklu se prochází děti books, tedy elementy book. Nejprve vypíšeme názvy a hodnoty všech atributů. V tomto případě obsahuje book pouze atribut id. c 2006 2008 Michal Krátký Tvorba informačních systémů 42/46

Příklad, C#, 3/4 8. XML Technologie reader. ReadStartElement ( " book " ) ; reader. ReadStartElement ( " t i t l e " ) ; Console. WriteLine ( " t i t l e : " + reader. ReadString ( ) ) ; reader. ReadEndElement ( ) ; / / t i t l e reader. ReadStartElement ( " author " ) ; Console. WriteLine ( " author : " + reader. ReadString ( ) ) ; reader. ReadEndElement ( ) ; / / author reader. ReadEndElement ( ) ; / / book Komentář: Ve stejném cyklu vypíšeme obsah elementů title a author. Všiměte si čtení koncových značek pomocí ReadEndElement(). c 2006 2008 Michal Krátký Tvorba informačních systémů 43/46

Příklad, C#, 4/4 8. XML Technologie } / / t r y catch ( XmlException ) { break ; } } / / while reader. ReadEndElement ( ) ; / / books Komentář: Po načtení všech elementů book dojde k výjimce a cyklus je ukončen. Načteme koncovou značku kořenového elementu books. c 2006 2008 Michal Krátký Tvorba informačních systémů 44/46

Příklad, C#, dokument a výsledek c 2006 2008 Michal Krátký Tvorba informačních systémů 45/46

Reference 8. XML Technologie XPath, XQuery http://www.w3c.org XML Namespace http://www.w3.org/tr/rec-xml-names/ XSLT http://www.w3schools.com/xsl/ Apache Xerces, Xalan Microsoft XML Parser Akmal B. Chaudhri, Awais Rashid, Roberto Zicari: XML Data Management: Native XML and XML-Enabled Database Systems. Addison-Wesley Professional, 2003. c 2006 2008 Michal Krátký Tvorba informačních systémů 46/46