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

Podobné dokumenty
Správnost XML dokumentu

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.

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.

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

XML a DTD. <!DOCTYPE kořenový_element [deklarace definující vlastnosti jednotlivých elementů a atributů]> externí deklarace:

Obsah prezentace. Co je to XML? Vlastnosti. Validita

XML terminologie a charakteristiky. Roman Malo

APLIKACE XML PRO INTERNET

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

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

Jazyky pro popis dat

Vývoj Internetových Aplikací

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

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

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

Tvorba WWW stránek. Mojmír Volf

NSWI096 - INTERNET. Úvod do HTML

PRG036 Technologie XML

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

Tvorba webu. Úvod a základní principy. Martin Urza

Základy WWW publikování

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Tvorba informačních systémů

HTML Hypertext Markup Language

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ů

Š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

Teoretické a pokročilé aspekty XML technologií

XML. Aleš Keprt

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

Další XML technologie

XML schémata. Jiří Kosek

Úvod do XML Technologie

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

WWW a HTML. Základní pojmy. Ivo Peterka

(X)HTML-TAGY. VOŠ a SŠT Česká Třebová

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

pracuje na principu Požavek/Odpověď (request/response) výhodou je jednoduchost a teoretická možnost přenášet objekty jakéhokoliv druhu

XML schémata. Jiří Kosek

Využití XML v DB aplikacích

HTML - Úvod. Zpracoval: Petr Lasák

Vstupní data pro program Deformace ve formátu XML

Inovace výuky prostřednictvím šablon pro SŠ

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

(X)HTML, CSS a jquery

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

PRG036 Technologie XML

Tvorba stránek v HTML ve Wordu

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

Mgr. Vlastislav Kučera přednáška č. 1

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

NSWI096 - INTERNET JavaScript

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:

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

XML snadno a rychle Martin Kuba, ÚVT MU

14. Jazyk HTML (vývoj, principy, funkce, kostra stránky). Jazyk XML, XHTML. Algoritmizace - cyklus for, while a do while, implementace v jazyce

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

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

Lidé komunikují prostřednictvím dokumentů připravovaných elektronicky

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

Jemný úvod do spracovania XML

Ukazka knihy z internetoveho knihkupectvi

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

UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0

Mgr. Stěpan Stěpanov, 2013

(X)HTML. Internetové publikování

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

1 Webový server, instalace PHP a MySQL 13

Vývoj Internetových Aplikací

Oracle XML DB. Tomáš Nykodým

Mgr. Vlastislav Kučera lekce č. 2

Kaskádové styly (CSS)

Práce se soubory opakování

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

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

Mgr. Vlastislav Kučera přednáška č. 1

Tvorba jednoduchých WWW stránek

(X)HTML. Internetové publikování

Mgr. Vlastislav Kučera přednáška č. 2

Požadavky pro výběrová řízení TerraBus ESB/G2x

Základy informatiky. HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

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

Mgr. Vlastislav Kučera Struktura stránky, hlavička,

XSLT a jmenné prostory

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

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

Základy informatiky. HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

Systém elektronického rádce v životních situacích portálu

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

EXTRAKT z české technické normy

Tvorba jednoduchých WWW stránek

XPath je jazyk, který slouží k

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

PHP a XML. Stručný obsah

Lehký úvod do XML v kartografii

Základy webových aplikací ZWA Přednáška č. 2 HTML. Martin Klíma

Co je HTML. 1. Párový tag má začátek a konec: 2. Nepárový tag nemá ukončovací značku:

Základy informatiky. 03 HTML, tvorba webových stránek. Kačmařík/Szturcová/Děrgel/Rapant

Transkript:

Úvod do databázových systémů B RNDr. Jan Lánský, Ph.D. 5. přednáška XML Slajdy 2-45 převzaty z Mlýnková, Nečaský: Technologie XML (DBI026, MFF UK) 1

Motivace Místo A Chceme přenést informaci Místo B 2

Např.: chceme přenést zprávu Jan Amos, Karel Hynek Ahoj! Pozdrav z říše divů! Alenka P.S. Napište mi! 3

Jako nestrukturovaný text? Jan Amos, Karel Hynek Ahoj! Pozdrav z říše divů 4

Jako nestrukturovaný text? Karel Hynek Ahoj! Pozdrav z říše divů! Alenka P 5

Jako nestrukturovaný text? Ahoj! Pozdrav z říše divů! Alenka P.S. Napište 6

Jako nestrukturovaný text? Pozdrav z říše divů! Alenka P.S. Napište mi! 7

Jako nestrukturovaný text? Alenka P.S. Napište mi! 8

Jako nestrukturovaný text? Alenka P.S. Napište mi! Jak ale (automatizovaně) zjistit, kdo nám to vlastně píše? 9

Zavedeme konstrukci značka (tag) Počáteční značka otevírací závorka (start tag) <značka>tělo</značka> Koncová značka zavírací závorka (end tag) 10

Jednotlivé složky zprávy označíme <adresa>jan Amos</adresa> <adresa>karel Hynek</adresa> <osloveni>ahoj!</osloveni> <text>pozdrav z říše divů!</text> <podpis>alenka</podpis> <dodatek>napište mi!</dodatek> 11

A zabalíme do závorek <zprava> <adresa>jan Amos</adresa> <adresa>karel Hynek</adresa> <osloveni>ahoj!</osloveni> <text>pozdrav z říše divů!</text> <podpis>alenka</podpis> <dodatek>napište mi!</dodatek> </zprava> 12

Pro zobrazení správného textu prohlížečem to ještě nestačí <zprava> <adresa>jan Amos</adresa> <adresa>karel Hynek</adresa> <osloveni>ahoj!</osloveni> <text>pozdrav z říše divů!</text> <podpis>alenka</podpis> <dodatek>napište mi!</dodatek> </zprava> 13

Musí se přidat informace o kódování Implicitně je dokument v kódu ISO 10646 (Unicode) Pro komunikaci se světem se používá UTF-8 Kompatibilní s ASCII Další znaky kódovány na 2 až 6-ti bytech Obsahuje všechny znaky všech abeced Pro češtinu lze použít ISO-8859-2 nebo Windows- 1250 14

Lepší, ale stále to ještě není ono nepopsali jsme způsob zobrazení dokumentu 15

Např. transformujeme do HTML <html encoding="windows-1250"> <head> <title>zpráva od: Alenka</title> </head> <body> <p>jan Amos</p> <p>karel Hynek</p> <p>ahoj!</p> <p>pozdrav z říše divů!</p> <p>alenka</p> <p>napište mi!</p> </body> </html> 16

Prohlížeč teď ví co s daty 17

O co nám jde? Samotná data se těžko zpracovávají Potřebujeme: Zajistit aby příslušný program datům rozuměl = doplnit význam jednotlivých částí Př. HTML popis vizualizace dat pro HTML prohlížeč Problém 1: Co když nás nezajímá jen vizualizace? Problém 2: HTML má volnou strukturu Komplikuje zpracování Řešení: XML 18

XML XML (extensible Markup Language) je formát pro přenos a výměnu obecných dokumentů Extensible Markup Language (XML) 1.0 (Fifth Edition) http://www.w3.org/tr/xml/ XML je podmnožina (aplikace) SGML (Standard Generalized Markup Language - ISO 8879) Umožňuje přenos dokumentu spolu s popisem jeho struktury (syntaxe) XML se nezabývá způsobem prezentace dokumentů je to syntaktický nástroj 19

XML dokument XML dokument je správně formovaný / dobře vytvořený (well-formed), když: Má úvodní XML deklaraci (prolog) Je dobře uzávorkován Každý element obsahuje počáteční i koncový tag/závorku Odpovídající závorky mají stejné jméno (case sensitivity) <a></a> Dvojice závorek se nekříží <a><b></a></b> Celý dokument je uzavřen v jediném kořenovém elementu 20

Prolog Informace pro SW, že se jedná o XML dokument Musí obsahovat deklaraci verze XML Máme 1.0 a 1.1 Může osahovat informací o kódování a samostatnosti dokumentu Deklarace verze: <?xml version="1.1"?> Pokud není v UTF-8: <?xml version="1.1" encoding="iso-8859-2"?> Pokud je bez odkazů mimo dokument: <?xml version="1.1" standalone="yes"?> vždy malá písmena 21

Elementy Element s elementovým obsahem <?xml version="1.1" encoding="iso-8859-2"?> <zprava> <adresa> <jmeno>jan Amos</jmeno> <ulice>severní 12</ulice> </adresa> <osloveni>ahoj!</osloveni> <text>pozdrav z <it>říše divů</it>!</text> <podpis>alenka</podpis> <priloha/> </zprava> Element s textovým obsahem Element se smíšeným obsahem Kořenový element Prázdný element <priloha></priloha> 22

Atributy Element s atributy <?xml version="1.1" encoding="iso-8859-2"?> <zprava> <adresa> <jmeno>jan Amos</jmeno> <ulice>severní 12</ulice> </adresa> <osloveni>ahoj!</osloveni> <text>pozdrav z <it>říše divů</it>!</text> <podpis>alenka</podpis> <priloha cesta="obr1.png"/> </zprava> Název atributu Hodnota atributu 23

Další prvky XML dokumentu <?xml version="1.1" encoding="iso-8859-2"?> <zprava> <! - komu zprávu doručit? --> <adresa>jan Amos</adresa> <text> <![CDATA[ for (i=0; i < 10; $++) { document.writeln("<p>ahoj</p>"); } ]]> </text> <podpis>alenka</podpis> <datum><?php echo Date("d.m.Y")?></datum> </zprava> Komentář Sekce CDATA Instrukce pro zpracování 24

Jazyk DTD 25

DTD Problém: Správná strukturovanost nestačí Potřebujeme omezit sadu značek a jejich obsah Definice typu dokumentu (Document Type Definition DTD) popisuje strukturu (gramatiku) dokumentu Pomocí regulárních výrazů Validní XML dokument = správně strukturovaný dokument odpovídající dané gramatice Existují i další jazyky XML Schema, Schematron, RELAX NG, 26

Struktura validního dokumentu <?xml version="1.0"?> Deklarace typu <!DOCTYPE kořenový-element [ dokumentu... ]> <kořenový-element>... </kořenový-element> Může být interní (gramatika je přímo uvnitř DOCTYPE) nebo externí (pouze odkaz na gramatiku uvedenou v externím souboru) Interní nemá moc význam Obojí současně je přípustné Lokální deklarace mají přednost před externími 27

Příklad: externí a interní DTD <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE pozdrav [ <!ELEMENT pozdrav (#PCDATA)> ]> <pozdrav>hello, world!</pozdrav> <?xml version="1.0"?> <!DOCTYPE pozdrav SYSTEM "pozdrav.dtd"> <pozdrav>hello, world!</pozdrav> <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html> </html> PUBLIC "veřejný identifikátor" "URI" 28

Základní značky DTD Deklarace typu dokumentu <!DOCTYPE > vše velkými písmeny Deklarace typu elementu <!ELEMENT > Deklarace seznamu atributů <!ATTLIST > Deklarace entity <!ENTITY > Deklarace notace <!NOTATION > 29

Deklarace typu elementu <!ELEMENT rodic (potomek*)> <rodic> <potomek>... </potomek> <potomek>... </potomek>... </rodic> Název elementu + deklarace přípustného obsahu Prázdný, libovolný, textový, smíšený, elementový 30

Deklarace typu elementu, sekvence selekce? iterace (0 nebo 1) + iterace (1 a více) * iterace (0 a více) Prázdný obsah <!ELEMENT priloha EMPTY> Libovolný obsah <!ELEMENT kontejner ANY> Textový obsah <!ELEMENT prijmeni (#PCDATA)> Smíšený obsah <!ELEMENT text (#PCDATA it)*> Elementový obsah <!ELEMENT zprava (adresa,text)> (nazev, (autor editor)?, p*, (nadpis,p+)*) 31

Deklarace atributu Pořadí v dokumentu je libovolné <!ATTLIST osoba cislo ID #REQUIRED zamestnan CDATA #FIXED "ano" dovolena (ano ne) "ne"> Atributy elementu osoba Atribut cislo je unikátní identifikace (ID) a je povinný (#REQUIRED) Atribut zamestnan obsahuje text (CDATA), je konstantní (#FIXED) a má implicitní neměnnou hodnotu (ano) Atribut typ je výčet (ano nebo ne), implicitní hodnota je ne 32

Datové typy atributů CDATA libovolný řetězec znaků Výčtový typ ID jednoznačný identifikátor (v rámci dokumentu), musí to být řetězec písmen, cifer a znaků -, _, :,., nejlépe v ASCII, musí začínat písmenem, nebo znakem _ IDREF odkaz na ID jiného elementu v rámci dokumentu IDREFS seznam odkazů oddělených mezerami NMTOKEN hodnota, tj. řetězec podobný jako ID, který ale může začínat cifrou a není jednoznačný NMTOKENS hodnoty ENTITY odkaz na externí entitu ENTITIES seznam odkazů viz dále 33

Požadavky na hodnoty atributů #REQUIRED povinný atribut #IMPLIED nepovinný atribut #FIXED pevná hodnota atributu 34

Deklarace entity Prakticky se využívají pouze triviální případy Asociace názvu a hodnoty, kterou lze opakovaně využívat Dělení 1: Parsované = text, kterým je nahrazen odkaz na entitu a stává se součástí XML dokumentu Odkazujeme referencemi Neparsované = zdroj, jehož obsahem může být cokoli (např. binární data) Odkazujeme atributem typu ENTITY/ENTITIES Musí s ní asociována notace viz dále Dělení 2: Obecné v XML dokumentech Parametrické v DTD Dělení 3: Interní vs. externí 35

Znakové entity Možnost vložení libovolného znaku s daným kódem Hexadecimální nebo decimální Vyřešte nerovnost 3x < 5 Předdefinované entity pro speciální znaky Vyřešte nerovnost 3x < 5 & amp < lt > gt apos quot 36

Obecné entity Interní entita Použití: Opakující se části XML dokumentů <!ENTITY stav "pracovní verze"> <poznamka>současný stav dokumentu je &stav;</poznamka> Externí parsovaná entita Použití: Modularizace XML dokumentů <!ENTITY xml-serial SYSTEM "xml-serial.txt"> 37

Obecné entity Externí neparsovaná entita Použití: Odkaz na ne-xml data nebo PUBLIC <?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE zprava [ Deklarace notace <!NOTATION avi SYSTEM "C:/Program Files/Video Player/Player.exe"> <!ENTITY video SYSTEM "video.avi" NDATA avi> <!ELEMENT video-dovo (#PCDATA)> <!ATTLIST video-dovo src ENTITY> ]> <zprava>přikládám video z dovolené <video-dovo src="video"/>.</zprava> 38

Parametrické entity Interní entita Použití: Opakující se části DTD <!ELEMENT clanek (automobil*)> <!ENTITY % atributy "barva (modra bila cerna) #REQUIRED rychlost (velka mala) #IMPLIED" > <!ELEMENT automobil (#PCDATA)> <!ATTLIST automobil %atributy; > <!ELEMENT motocykl (#PCDATA)> <!ATTLIST motocykl %atributy; > <!ELEMENT kolo (#PCDATA)> <!ATTLIST kolo %atributy; > 39

Parametrické entity Externí entita Použití: Modularizace DTD <!ENTITY % ISOLat2 SYSTEM "iso-pub.ent">... %ISOLat2;... 40

Podmíněné sekce <!ENTITY % draft 'INCLUDE' > <!ENTITY % final 'IGNORE' > <![%draft;[ <!ELEMENT book (comments*, title, body, supplements?)> ]]> <![%final;[ <!ELEMENT book (title, body, supplements?)> ]]> 41

DTD větší příklad <?xml version="1.0" encoding="windows-1250"?> <!ELEMENT zaměstnanci (osoba)+> <!ELEMENT osoba (jméno, email*, vztahy?)> <!ATTLIST osoba id ID #REQUIRED> <!ATTLIST osoba poznámka CDATA #IMPLIED> <!ATTLIST osoba dovolená (ano ne) "ne"> <!ELEMENT jméno ((křestní, příjmení) (příjmení, křestní))> <!ELEMENT křestní (#PCDATA)> <!ELEMENT příjmení (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT vztahy EMPTY> <!ATTLIST vztahy nadřízený IDREF #IMPLIED> <!ATTLIST vztahy podřízení IDREFS #IMPLIED> 42

Přehled XML technologií 43

Technologie XML XML = extensible Markup Language Technologie XML = sada souvisejících technologií Rozhraní pro práci s XML daty DOM, SAX Popis struktury XML dokumentů DTD, XML Schema Dotazováni nad XML daty XPath, XQuery Aktualizace XML dat XQuery Update Transformace XML dat XSLT 44

Související problematika Standardní XML formáty XHTML, OpenOffice, MathML, SVG, Persistence XML dat Nativní XML databáze Relační databáze s XML SQL/XML 45

Příklady I. V souboru xml1.xml najděte následující informace. Výsledky napište do textového souboru (např. Word, poznámkový blok). 1. V jakém aktu a v jaké scéně poprvé mluví postava FORTINBRAS? 2. Který z důstojníků (officers) mluví ve hře jako první? 3. Která postava mluví jako poslední ve druhém aktu? 46

Příklady II. V souboru xml2.xml najděte následující informace. Výsledky napište do textového souboru (např. Word, poznámkový blok). 4. Kolik druhů zboží se nachází v kategorii "Zboží Panenky Barbie"? 5. Kolik stojí výrobek "Klasická elektronická pokladna", kdo je jeho výrobce a jaká je webová stránka výrobku. 6. Od kterého výrobce(ů) pochází zboží v kategorii "Zboží Stavebnice Ostatní"? 47