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

Využití XML v DB aplikacích

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

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

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

Michal Krátký, Miroslav Beneš

Michal Krátký, Miroslav Beneš

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

APLIKACE XML PRO INTERNET

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

Dotazování nad XML daty a jazyk XPath

XSLT extensible Stylesheet Language Transformation

Tvorba informačních systémů

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

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

MBI - technologická realizace modelu

Jemný úvod do spracovania XML

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

Oracle XML DB. Tomáš Nykodým

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

XML snadno a rychle Martin Kuba, ÚVT MU

PRG036 Technologie XML

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

Úvod do XML Technologie

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

XML terminologie a charakteristiky. Roman Malo

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

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

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:

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

XML. Aleš Keprt

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

Alena Malovaná, MAL305

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

Jazyky XQuery a XPath 1

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

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

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

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

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

NSWI096 - INTERNET JavaScript

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

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

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

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

Implementace XML signatur

XML databáze. Přednáška pro kurz PB138 Moderní značkovací jazyky Ing. Petr Adámek

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

Další XML technologie

Dotazování nad stromem abstraktní syntaxe

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

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

XPath je jazyk, který slouží k

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

TRANSFORMACE A PERZISTENCE XML

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

Jazyky pro popis dat

Python XML a Web 1 PGS

Správnost XML dokumentu

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

Překladač XSL šablon

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

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

Práce se soubory opakování

Š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

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

Lehký úvod do XML v kartografii

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

Accelerating XPath location steps

Vývoj Internetových Aplikací

NSWI096 - INTERNET. Úvod do HTML

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.

RDF a RDF Query. Jakub Nerad 1. prosince Nerad () RDF a RDF Query 1. prosince / 16

CSS V DIGITÁLNÍ KARTOGRAFII

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

Teoretické a pokročilé aspekty XML technologií

Příklad buňka tabulky

Různé úrovně pohledu na data

Vysoká škola ekonomická v Praze

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Software602 Form Designer

Interaktivní databáze s webovým rozhraním pro uchovávání a

E-learning a DocBook

Analýza dat a modelování. Přednáška 3

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

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

DIGITALIZACE ČASOPISU FALSTAFF. Aleš Keprt

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

XML versus TEX jemné porovnání. Martin Tůma 31. srpna 2004

PostGIS Topology. Topologická správa vektorových dat v geodatabázi PostGIS. Martin Landa

ČESKÁ TECHNICKÁ NORMA

FlexiBee Pokročilé funkce. Ondřej Světlík FlexiBee Systems s.r.o.

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 2007 Michal Krátký Tvorba informačních systémů 1/37

Obsah 8. XML Technologie XML, Datový model, Schémata, Dotazovací jazyky, Jmenné prostory, Transformace,. c 2006 2007 Michal Krátký Tvorba informačních systémů 2/37

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 2007 Michal Krátký Tvorba informačních systémů 3/37

Extensible Mark-up Language (XML) Z jiného pohledu: formát pro přenos heterogenních dat: Geography Markup Language (GML), mathematical formulas (MathML), DocBook... Z jiného pohledu: datový model. XML dokument je modelován stromem (XML strom). c 2006 2007 Michal Krátký Tvorba informačních systémů 4/37

Dobře strukturovaný (well formed) XML dokument Element má typ identifikovaný jménem. 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 2007 Michal Krátký Tvorba informačních systémů 5/37

Dobře strukturovaný (well formed) XML dokument Pokud element obsahuje další potomky a znaková data, 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"/>. Dokument splňující takováto základní pravidla se nazývá dobře strukturovaný (well formed). c 2006 2007 Michal Krátký Tvorba informačních systémů 6/37

Příklad - 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 2007 Michal Krátký Tvorba informačních systémů 7/37

XML strom 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 c 2006 2007 Michal Krátký Tvorba informačních systémů 8/37

Příklad - XML dokument se smíšeným obsahem 1/2 <books>... <book> < t i t l e >XML Data Management: Native XML and XML Enabled Database Systems< / 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> c 2006 2007 Michal Krátký Tvorba informačních systémů 9/37

Příklad - XML dokument se smíšeným obsahem 2/2 <desc> <isbn>0 201 84452 4< / isbn> copy 2003 Addison Wesley P r o f e s s i o n a l < / desc> < / book>... < / books> c 2006 2007 Michal Krátký Tvorba informačních systémů 10/37

XML strom 8. XML Technologie 0 BOOKS (0) 34 BOOK (1) TITLE 34 (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 2007 Michal Krátký Tvorba informačních systémů 11/37

Validní dokument 8. XML Technologie XML dokument splňující definované schéma nazýváme validní. DTD, XML Schema,... Není nutné psát interpretr pro každý XML dokument. c 2006 2007 Michal Krátký Tvorba informačních systémů 12/37

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) > ] > c 2006 2007 Michal Krátký Tvorba informačních systémů 13/37

Příklad - XML Schema 1/2 <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: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 equired " / > < / xsd:complextype> c 2006 2007 Michal Krátký Tvorba informačních systémů 14/37

Příklad - XML Schema 2/2 < / xsd:element> < / xsd:sequence> < / xsd:complextype> < / xsd:element> < 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> c 2006 2007 Michal Krátký Tvorba informačních systémů 15/37

XPath, XQuery, XQL,.... Jazyky jsou založené na XPath. XPath umožňuje procházet XML strom pomocí tzv. výrazů cest. Obsahuje tzv. osy XPath relace mezi uzly stromu. Obsahuje funkce, např. vrácení podřetězce atp. c 2006 2007 Michal Krátký Tvorba informačních systémů 16/37

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 c 2006 2007 Michal Krátký Tvorba informačních systémů 17/37

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 2007 Michal Krátký Tvorba informačních systémů 18/37

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 2007 Michal Krátký Tvorba informačních systémů 19/37

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 2007 Michal Krátký Tvorba informačních systémů 20/37

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 2007 Michal Krátký Tvorba informačních systémů 21/37

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 2007 Michal Krátký Tvorba informačních systémů 22/37

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 2007 Michal Krátký Tvorba informačních systémů 23/37

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 2007 Michal Krátký Tvorba informačních systémů 24/37

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 2007 Michal Krátký Tvorba informačních systémů 25/37

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 2007 Michal Krátký Tvorba informačních systémů 26/37

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 2007 Michal Krátký Tvorba informačních systémů 27/37

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 > c 2006 2007 Michal Krátký Tvorba informačních systémů 28/37

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 > c 2006 2007 Michal Krátký Tvorba informačních systémů 29/37

Programovací jazyky a XML Parsery: DOM (Document Object Model) W3C, XML dokument je načten do paměti jako struktura instancí: např. Xerces Java Parser. SAX sekvenčně zpracováváme jednotlivé elementy, které parser načítá: např. Xerces Java Parser. Další např..net umožňuje pro každý typ uzlu definovat třídu. Implementace XSLT: Microsoft XSLT. Java - Apache Xalan (http://xalan.apache.org/). c 2006 2007 Michal Krátký Tvorba informačních systémů 30/37

Příklad, Java, DOM 8. XML Technologie 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 ( ) ; 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 " ) ;.... } c 2006 2007 Michal Krátký Tvorba informačních systémů 31/37

Datový model XML - XML dokument je modelován stromem (XML strom). XML dokument/dokumenty tvoří databázi, schéma dokumentů je schématem této databáze. Pro dotazování XML dat, používáme XML dotazovací jazyky, např. XPath, XQuery apod. Existují jazyky pro provádění změn v XML dokumentech, např. XUpdate. Pro indexování XML dokumentů je nutné použít sofistikované metody. c 2006 2007 Michal Krátký Tvorba informačních systémů 32/37

Příklad, XPath, model 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 2007 Michal Krátký Tvorba informačních systémů 33/37

Triviální implementace Každý element je vložen do B-stromu (indexujeme dle id v uspořádání dokumentu), jinými slovy vytvoříme tabulku Element(tag, id, value) a pro každý element do ní vložíme záznam. n0 books n1 book n2 book n3 n4 n5 id title author n7 n6 n8 id title author 003-04312 The XML Book John Smyth 045-00012 The XQuery Frank Book Nash /books/book[author= John Smyth ]/title c 2006 2007 Michal Krátký Tvorba informačních systémů 34/37

Provádění dotazu 8. XML Technologie 1 Najdi všechny elementy typu books. 2 Najdi všechny elementy typu book. Proved strukturální spojení mezi množinami. 3 Najdi všechny elementy typu author s hodnotou John Smyth. Proved strukturální spojení mezi množinami. 4 Najdi všechny elementy typu title. Proved strukturální spojení mezi množinami. c 2006 2007 Michal Krátký Tvorba informačních systémů 35/37

Aktuální stav 8. XML Technologie 1 Takto triviální přístupy jsou velmi neefektivní. Např. dotaz site/closed_auctions/closed_auction/annotation/ description/parlist/listitem/parlist/listitem/ text/emph/keyword trvá na MS SQL 2005 83s 14min (kolekce XMark 1GB). 2 Efektivní přístupy jsou v současné době záležitostí výzkumu. Např. přístup MDX vyvíjený na katedře tento dotaz vykoná za 4s. c 2006 2007 Michal Krátký Tvorba informačních systémů 36/37

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/ Akmal B. Chaudhri, Awais Rashid, Roberto Zicari: XML Data Management: Native XML and XML-Enabled Database Systems. Addison-Wesley Professional, 2003. c 2006 2007 Michal Krátký Tvorba informačních systémů 37/37