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

Podobné dokumenty
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

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

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

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

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

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

XSLT extensible Stylesheet Language Transformation

Michal Krátký, Miroslav Beneš

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

XML snadno a rychle Martin Kuba, ÚVT MU

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

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

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

Dotazování nad XML daty a jazyk XPath

Úvod do XML Technologie

Jemný úvod do spracovania XML

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:

XML. Aleš Keprt

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

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

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

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

XML terminologie a charakteristiky. Roman Malo

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

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

Python XML a Web 1 PGS

PRG036 Technologie XML

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

MBI - technologická realizace modelu

Jazyky pro popis dat

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

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

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

Oracle XML DB. Tomáš Nykodým

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

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

Úvod do tvorby internetových aplikací

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

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

HTML Hypertext Markup Language

Tvorba WWW stránek. Mojmír Volf

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

Další XML technologie

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

Š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

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

NSWI096 - INTERNET. Úvod do HTML

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

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

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

Alena Malovaná, MAL305

XPath je jazyk, který slouží k

NSWI096 - INTERNET JavaScript

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

Vývoj Internetových Aplikací

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

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

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

M M S. Značkovací jazyky

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

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)

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

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

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

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í

Vysoká škola ekonomická v Praze

Jazyky XQuery a XPath 1

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

XML schémata. Jiří Kosek

Implementace XML signatur

Správnost XML dokumentu

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

Teoretické a pokročilé aspekty XML technologií

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

Transkript:

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

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

Tvorba informačních systémů 3/46 Úvod 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.

Tvorba informačních systémů 4/46 Úvod 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.

Tvorba informačních systémů 5/46 Úvod 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>

Tvorba informačních systémů 6/46 Úvod XML, ukázka SVG <?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>

Tvorba informačních systémů 7/46 Úvod 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= " en " > <head> < t i t l e >Minimal XHTML 1. 0 Document w ith 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 / " >XHTML 1. 0 < / a> 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.

Tvorba informačních systémů 8/46 Úvod 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.

Tvorba informačních systémů 9/46 Úvod 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).

Tvorba informačních systémů 10/46 Úvod 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).

Tvorba informačních systémů 11/46 Úvod 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>

Tvorba informačních systémů 12/46 Úvod Příklad - XML strom 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

Tvorba informačních systémů 13/46 Úvod Příklad - nekorektní XML dokument <?xml version= " 1.0 "? > <body> < u l > < l i > T i t u l e k 1 < l i > T i t u l e k 2 < / u l > < / body> Značky li nejsou uzavřeny dokument není dobře strukturovaný. Důsledkem je nejasná interpretace: < l i > T i t u l e k 1 < / l i > < l i > T i t u l e k 2 < / l i > Nebo: < l i > T i t u l e k 1 < u l >< l i > T i t u l e k 2 < / l i >< / u l >< / l i > Co měl autor na mysli?

Tvorba informačních systémů 14/46 Úvod 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

Tvorba informačních systémů 15/46 Úvod Příklad - XML strom 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

Tvorba informačních systémů 16/46 Úvod Validní dokument 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í.

Tvorba informačních systémů 17/46 Úvod Příklad - DTD <!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.

Tvorba informačních systémů 18/46 Úvod DTD 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.

Tvorba informačních systémů 19/46 Úvod XML Schema 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.

Tvorba informačních systémů 20/46 Úvod 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.

Tvorba informačních systémů 21/46 Úvod 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.

Tvorba informačních systémů 22/46 Úvod 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.

Tvorba informačních systémů 23/46 XML dotazovací jazyky - XPath 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.

Tvorba informačních systémů 24/46 XML dotazovací jazyky - XPath XPath 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

Tvorba informačních systémů 25/46 XML dotazovací jazyky - XPath Příklad, XPath 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

Tvorba informačních systémů 26/46 XML dotazovací jazyky - XPath Osy XPath 1/2 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ů)

Tvorba informačních systémů 27/46 XML dotazovací jazyky - XPath Osy XPath 2/2 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

Tvorba informačních systémů 28/46 XML dotazovací jazyky - XPath 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.

Tvorba informačních systémů 29/46 XML dotazovací jazyky - XPath 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.

Tvorba informačních systémů 30/46 XML dotazovací jazyky - XPath 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.

Tvorba informačních systémů 31/46 XML dotazovací jazyky - XPath 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.

Tvorba informačních systémů 32/46 XML dotazovací jazyky - XPath XQuery 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 >

Tvorba informačních systémů 33/46 XML Namespace, XSLT XML namespace 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= " / " >

Tvorba informačních systémů 34/46 XML Namespace, XSLT 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.

Tvorba informačních systémů 35/46 XML Namespace, XSLT Příklad, XSLT 1/2 <?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.

Tvorba informačních systémů 36/46 XML Namespace, XSLT Příklad, XSLT 2/2 < 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.

Tvorba informačních systémů 37/46 Programovací jazyky a XML Programovací jazyky a XML 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.

Tvorba informačních systémů 38/46 Programovací jazyky a XML Programovací jazyky a XML 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/.

Tvorba informačních systémů 39/46 Programovací jazyky a XML 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.

Tvorba informačních systémů 40/46 Programovací jazyky a XML 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.

Tvorba informačních systémů 41/46 Programovací jazyky a XML Příklad, C#, 1/4.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.

Tvorba informačních systémů 42/46 Programovací jazyky a XML Příklad, C#, 2/4 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.

Tvorba informačních systémů 43/46 Programovací jazyky a XML Příklad, C#, 3/4 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().

Tvorba informačních systémů 44/46 Programovací jazyky a XML Příklad, C#, 4/4 } / / 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.

Tvorba informačních systémů 45/46 Programovací jazyky a XML Příklad, C#, dokument a výsledek

Tvorba informačních systémů 46/46 Programovací jazyky a XML Reference 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.