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.



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

Správnost XML dokumentu

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

Využití XML v DB aplikacích

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

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

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

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

XML terminologie a charakteristiky. Roman Malo

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Jazyky pro popis dat

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

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

APLIKACE XML PRO INTERNET

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

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

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

Programovací jazyk Pascal

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

Distanční opora předmětu: Databázové systémy Tématický blok č. 3: OLAP, operátory CUBE a ROLLUP Autor: RNDr. Jan Lánský, Ph.D.

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

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

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

Soutěž v programování - kategorie mládež 2010 Okresní kolo Gymnázium Klatovy

NSWI096 - INTERNET. Úvod do HTML

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 5 VY 32 INOVACE

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

HTML - Úvod. Zpracoval: Petr Lasák

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Výukový materiál KA č.4 Spolupráce se ZŠ

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

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

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

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

DUM 06 téma: Tvorba makra pomocí VBA

Vývoj Internetových Aplikací

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Validace souborů DS3

Základy WWW publikování

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

(X)HTML, CSS a jquery

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

Kaskádové styly základy grafiky

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

RELAČNÍ DATABÁZE ACCESS

8.2 Používání a tvorba databází

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

DUM 12 téma: Příkazy pro tvorbu databáze

Tvorba WWW stránek. Mojmír Volf

Vstupní data pro program Deformace ve formátu XML

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

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmizace a programování

INTERSTENO 2013Ghent Mistrovstvísvta v profesionálním word processingu

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

6. blok část C Množinové operátory

1 Webový server, instalace PHP a MySQL 13

13. blok Práce s XML dokumenty v databázi Oracle

Tabulkový procesor. Základní rysy

HTML Hypertext Markup Language

Databázové systémy. Cvičení 6: SQL

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

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

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

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

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

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

2. cvičení z ZI1 - Excel

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Návod na velmi jednoduchý import z XLS souboru včetně atributů

Informační systémy ve zdravotnictví. 6. cvičení

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Pracovní list VY_32_INOVACE_33_20 Databáze Databáze Databáze Projekt II. Ing. Petr Vilímek

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

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Aplikace vytěžování dat

1 Tabulky Příklad 3 Access 2010

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

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

PRG036 Technologie XML

Databázové systémy Cvičení 5.2

ALGORITMIZACE A PROGRAMOVÁNÍ

Mgr. Stěpan Stěpanov, 2013

Š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

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

XML. Aleš Keprt

45 Plánovací kalendář

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

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-210

Import a export dat EU peníze středním školám Didaktický učební materiál

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Access. Tabulky. Vytvoření tabulky

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Transkript:

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. Obsah kapitoly 1 XML 2 DTD 2.1 Atributy 2.2 Entity 3. XML v SQL Serveru Studijní cíle Cíle nutné k zahájení studia dalšího tématického bloku Další cíle Znalost formátu XML. Umět ukládat XML dokumenty do databáze v SQL Serveru. Umět vytvořit XML dokument z dotazu v SQL Serveru Umět vytvořit DTD k danému XML dokumentu. Umět rozhodnout zda XML dokument je správně formovaný. Umet ověřit validitu XML dokumentu vůči danému DTD pomocí validátoru. Umět definovat entity. Čas potřebný ke studiu 2-6 hodiny na prostudování výukových textů + zodpovězení otázek k rekapitulaci 1-4 hodiny na vypracování modelových úloh na PC 1-2 hodiny na praktické zopakování učiva na PC ( v jiný den) 30 min - 1 hodina na (znovu)zodpovězení otázek k rekapitulaci (v jiný den) Časy jsou hodně individuální a jsou závislé na míře znalostí z oblasti databázových systémů získaných během bakalářského studia. Úvod V tomto bloku probereme následující témata. Nejprve si podrobně vysvětlíme syntaktická pravidla platná pro značkovací jazyk XML, naučíme se jak má vypadat správně formovaný dokument.

Vysvětlíme si jazyk pro popis struktury XML dokumentu DTD. Naučíme se definovat pravidla pro obsah elementů, datové typy a hodnoty atributů. Naučíme se ověřit validitu XML dokumentu vůči danému DTD s pomocí validátoru. Naučíme se definovat a používat entity. Naučíme se ukládat XML dokumenty do databáze v SQL Serveru. Naučíme se vyvářet XML dokumenty z výsledků dotazů v SQL Serveru. Výkladová část Vysvětlivky Červený text Porušením nebo opomenutím takto označených pravidel vznikají těžko odladitelné chyby (zejména pro začínající programátory). Modrý text Doporučení jak programovat v praxi. Často prevence závažných chyb. 1 XML XML (Extensible Markup Language) je značkovací jazyk sloužící pro popis, uchovávání a přenos dat v lidsky čitelném formátu. Množina značek není pevně dána, pro každý dokument může být definována vlastní. Jazyk XML je podmnožinou komplexnějšího jazyka SGML. XML se nezabývá způsobem, jak data zobrazit. Data lze prohlížet jako zdrojové kódy. Pomocí transformačního jazyka XSLT lze XML dokument převést na jiný formát, například HTML. Na slajdu č. A/13 vidíme základní stavební jednotku XML nazvanou element. Element se skládá z počáteční značky (= tagu), těla a koncové značky. Počáteční a koncová značka jsou uzavřeny ve špičatých závorkách a obsahují stejný identifikátor, který se označuje jako název elementu. Koncová značka navíc obsahuje lomítko, které je umístěno za levou špičatou závorku. V těle elementu se může vyskytovat text, jiné vnořené elementy, kombinace obojího, nebo element může být prázdný. Element může obsahovat atributy a jejich hodnoty, které se píší do počáteční značky. Na slajdu je element bez atributů, v těle elementu je pouze text. Zanořování elementů je zobrazeno na slajdu č. A/15. V elementu zpráva se nacházejí vnořené elementy adresa (tento element se nachází dvakrát za sebou), oslovení, text, podpis a dodatek. XML dokument musí obsahovat úvodní deklaraci (= prolog) obsahující údaje o verzi normy XML použité pro tvorbu dokumentu. Příklady několika úvodních deklarací nalezneme na slajdu č. A/24. Úvodní deklarace může obsahovat další údaje, například název kódování, ve kterém je XML dokument napsán. Obvykle se používá kódování UTF-8, které obsahuje znaky všech běžných i exotických abeced (včetně indiánských obrázkových písem). Znakům jsou přiřazeny proměnlivé délky (1-6 bytů). Při použití kódování UTF-8 se informace o použitém kódování z úvodní deklarace vynechává. Pokud pracujeme pouze v českém národním prostředí, lze použít kódování windows-1250 (na Windows) nebo iso-8859-2 (na Unixu) XML dokument se nazývá správně formovaným (= well-formed) pokud obsahuje úvodní XML deklaraci a je správně uzávorkován. Správně uzávorkovaný dokument je:

(1) Uzavřen v jediném kořenovém elementu. (2) Každý jeho element obsahuje počáteční i koncovou značku. (3) Identifikátory v počáteční i koncové značce jsou shodné (včetně velikosti písmen). (4) Dvojice značek se nekříží. Dodržují správné uzávorkování, koncová značka vnořeného elementu následuje dříve něž koncová značka rodičovského elementu. Například <osoba><adresa></osoba></adresa> toto pravidlo porušuje, protože vnořený element adresa má svoji koncovou značku za koncovou značkou svého rodiče osoba. Na slajdu č. A/25 vidíme příklad jednoduchého XML dokumentu. V úvodní deklaraci zjistíme verzi použité normy XML a kódování dokumentu. V dokumentu je jediný kořenový element zpráva. Element adresa obsahuje dva jiné elementy, element jméno má textový obsah. V elementu text je kombinace textového a elementového obsahu, element má smíšený obsah. Element příloha je prázdný, zápis <příloha/> je zkráceným zápisem pro zápis <příloha><příloha>. Dokument je dobře formovaný. Elementy mohou mít své atributy. Atributy elementu se zapisují do počáteční značky mezi název elementu a zavírací špičatou závorku. Pokud element obsahuje atributů více, jsou navzájem odděleny mezerou. Za názvem atributu následuje znaménko = a do uvozovek "" uzavřená hodnota atributu. Na slajdu č. A/26 vidíme u prázdného elementu příloha atribut cesta s hodnotou obr1.png. Na slajdu č. A/27 je ukázka dalších prvků, které se mohou nalézat v XML dokumentu. Komentáře (na slajdu označené zeleně) se uzavírají mezi <-- a -->. Pokud textový obsah elementu obsahuje znaky, které by se mohly interpretovat jako části syntaktických zápisů v XML, můžeme tento obsah uzavřít do sekce CDATA (červeně označeno na slajdu). Instrukce pro zpracování se uzavírají do <? a?>, Ihned po <? začíná název (obvykle skriptovacího) jazyka, který je následován zdrojovým kódem v daném jazyce (modře označeno na slajdu). 2 DTD Jazyk DTD (Document Type Definition) slouží k popisu struktury XML dokumentu. DTD definuje gramatiku dokumentu, která obsahuje pravidla (regulární výrazy) popisující množinu značek, které může daný XML dokument používat a omezuje obsah těchto značek. DTD je historicky nejstarším jazyk sloužící k popisu struktury XML dokumentu. V současné době existují silnější jazyky (umožňující definovat více podrobností). Mezi tyto jazyky patří například XML Schema nebo Relax NG. Validní XML dokument je správně formovaná dokument, který odpovídá své gramatice dané DTD, nebo jinými jazyky pro popis struktury dokumentu. Program, které rozhodne, zda dokument je validní, se nazývá validátor. Na internetu lze nalézt velké množství online validátorů, například [7]. DTD může být součástí validního XML dokumentu, ale může být také v samostatném souboru. V XML dokumentu je pak pouze odkaz na toto DTD. Na slajdu č. A/31 vidíme tři příklady. Na prvním z nich je DTD součásti XML dokumentu. Na druhém příkladě se soubor s DTD nachází ve stejném adresáři jako XML dokument a v XML dokumentu je uvedena k němu pouze cesta. Ve třetím příkladě je v XML dokumentu uvedena cesta k DTD dokumentu umístěném na internetu.

V DTD se jednotlivé značky uzavírají mezi <! a!>, jejich základní přehled nalezneme na slajdu č. A/32. DTD začíná značkou DOCTYPE, po které následuje název DTD a hranaté závorky, vevnitř kterých mohou být použity ostatní značky ELEMENT, ATTLIST, ENTITY a NOTATION. Na slajdu č. A/33 vidíme příklad použití značky ELEMENT. Značka definuje element a jeho přípustný obsah. V našem příkladě zápis <!ELEMENT rodic (potomek*)> znamená, že element rodič smí obsahovat libovolně mnoho elementů potomek. Na slajdu č. A/34 vidíme jak definovat obsah elementu. Pomocí klíčového slova EMPTY definujeme prázdný element. Pomocí klíčového slova pomocí ANY umožníme, aby element obsahoval libovolný obsah. Textový obsah elementu se definuje pomocí (#PCDATA). Element obsahující jiný element se definuje pomocí názvu vnořeného elementu uzavřeného v kulatých závorkách. Element může obsahovat i více elementů, nebo kombinaci elementů a textového obsahu. Operátor čárky "," vytvoří sekvenci (zřetězení), operátor vytvoří výběr jedné ze dvou variant. Operátor? vyjadřuje nepovinný výskyt, operátor * libovolný počet výskytů (včetně žádného) a operátor + libovolný počet výskytů, nejméně však jeden. Vytvořené výrazy lze uzávorkovat pro změnu priority vykonávání operátorů. V definici obsahu elementů záleží na pořadí jednotlivých částí definice. Pokud chceme dovolit libovolné pořadí elementů x a y, musíme použít zápis ((a,b) (b,a)). Příklad na slajdu č. A/34 dole vyjadřuje následující obsah: První je element název, po kterém nepovinně může následovat jeden ze dvou elementů autor nebo editor. Dále následuje libovolný počet (včetně žádného) elementů p Dále následuje.libovolný počet (včetně žádné) posloupností jednoho elementu nadpis a libovolného nenulového počtu elementů p. 2.1 Atributy Na slajdu č. A/35 vidíme, jak lze definovat atributy elementu pomocí značky ATTLIST. Na pořadí atributů v rámci elementu (na rozdíl od pořadí vnořených elementů) nezáleží. U jednotlivých atributů musíme uvést název a datový typ, můžeme nepovinně uvést požadavky na hodnotu atributu. Datové typy atributů mohou být následující (seznam uveden na slajdu č. A/36): Datový typ CDATA umožňuje uchovávat libovolný řetězec znaků (v příkladu na slajdu č. A/35 nahoře je tohoto typu atribut zaměstnán). Výčtový typ se definuje uvedením seznamu hodnot výčtového typu. Seznam hodnota je uzavřen v kulatých závorkách. Hodnoty jsou navzájem oddělené symbolem. V našem příkladu je výčtového typu atribut dovolená s hodnotami ano a ne. Datový typ ID lze použít pro atribut, jehož hodnota je unikátním identifikátorem v rámci dokumentu. Identifikátor musí začínat písmenem nebo znakem _, obsahovat může písmena, číslice a několik málo interpunkčních symbolů. V našem příkladu je tohoto typu atribut číslo. Atribut datového typu IDREF má hodnotu obsahující odkaz na identifikátor ID jiného elementu. Hodnotou datového typu IDREFS je seznam identifikátorů ID oddělených mezerou.

Datový typ NMTOKEN je obdobou typu ID. Identifikátor, který může obsahovat, nemusí být unikátní a může začínat i číslicí. Datový typ NMTOKENS je obdobou typu IDREFS, ale místo seznamu identifikátorů ID obsahuje seznam identifikátorů NMTOKEN. Na hodnoty atributů můžeme mít dodatečné požadavky. Pokud má být výskyt atributu povinný, uvedeme na konci jeho deklarace #REQUIRED. V našem příkladu se jedná o atribut číslo. Nepovinný atribut může (ale nemusí) být označen jako #IMPLIED. Atribut s konstantní hodnotou se označuje jako #FIXED, za tímto označením následuje povinná neměnná hodnota. V našem příkladu se jedná o atribut zaměstnán s implicitní hodnotou "ano". 2.2 Entity Entita v XML dokumentu je identifikátor, který se používá uvozený symbolem & a zakončený středníkem. Entita v XML dokumentu zastupuje symbol (znakové entity) nebo řetězec znaků (obecné entity). V DTD mohou být definovány parametrické entity, které jsou uvozeny symbolem % a zakončeny středníkem. Znakové entity slouží k nahrazení jednoho znaku. Využívají se obvykle pro znaky, které uvozují syntaktické konstrukce v XML a nelze je proto napsat přímo (&, <, >, ', "), protože parser by je chápal jako začátky těchto konstrukcí. Příklady znakových entit v XML dokumentu vidíme na slajdu č. A/39. V obou příkladech na slajdu řešíme jak nahradit matematický symbol < entitou. Symbol < nelze napsat přímo, parser by ho považoval za začátek elementu. Na výběr máme mezi jeho zápisem v desítkové či šestnáctkové soustavě < (první příklad) nebo použitím předdefinované entity pro speciální znaky < (druhý příklad). Obecné entity slouží k nahrazení opakující se částí XML dokumentu jedním identifikátorem (interní entity) nebo pro rozdělení jednoho XML dokumentu do více modulů (externí entity). Interní entita se definuje pomocí značky ENTITY následované identifikátorem entity a její hodnotou uzavřenou v uvozovkách. Externí entita se definuje pomocí značky ENTITY následované identifikátorem entity, klíčovým slovem SYSTEM a v uvozovkách uzavřeným názvem souboru, ve kterém se nachází obsah entity. Na slajdu č. A/40 vidíme dva příklady definice obecných entit. V horním příkladu definujeme interní entitu stav, která je v XML dokumentu použita uvnitř elementu poznámka. V dolním příkladě definujeme externí entitu xml-seriál, její obsah se nalézá v souboru xmlseriál.txt. Parametrické entity slouží v DTD k zpřehlednění a zkrácení jeho zápisu. Definují se obdobně jako interní entity, ale navíc je před jejich názvem uveden symbol %. Použít je lze pouze na jiném místě DTD, uvedením symbolu %, názvu entity a středníku. Na slajdu č. A/42 vidíme definici parametrické entity atributy, která je v příkladu použita na několika místech pro definici seznamu atributů různých elementů. 3. XML v SQL Serveru Práce s XML v každém databázovém systému bývá řešena rozdílnými způsoby. My si v této kapitole popíšeme situaci v SQL Serveru 2005.

Na slajdu č. B/24 vidíme příklad, jak lze vytvořit tabulku obsahující sloupec (Dok) datového typu XML. Hodnotou sloupce Dok je celý XML dokument. Pomocí příkazu INSERT lze tabulku naplnit daty, hodnota (= XML dokument) vkládaná do sloupce Dok musí být v apostrofech (viz příklad dole na slajdu). Můžeme také naopak exportovat data z tabulek do formátu XML, dokonce můžeme exportovat i výsledek celého dotazu. Na slajdu č. B/25 vidíme rozšířenou syntax příkazu SELECT, která umožňuje výsledek dotazu zobrazit jako XML dokument. Za příkaz SELECT se přidají klíčová slova FOR XML a jeden z následujících módů: RAW, AUTO, EXPLICIT nebo PATH. Například SELECT * FROM zákazník FOR XML AUTO exportuje do XML tabulku zákazník. Na slajdu č. B/26 vidíme použití módu RAW. Pro každý řádek výsledku dotazu se vytvoří samostatný element pojmenovaný row. Název elementu row lze změnit uvedením požadovaného názvu v apostrofech do závorky za klíčové slovo RAW. Například FOR XML RAW ('řádek ). Jednotlivé sloupce výsledku dotazu jsou atributy elementu a hodnoty sloupců jsou hodnotami těchto atributů. Na slajdu č. B/27 vidíme použití módu AUTO. Pro každý řádek výsledku dotazu a pro každou použitou tabulku ve výsledku dotazu vytvoří samostatný element. Názvy elementů odpovídají názvům tabulek. Struktura zanoření elementů odpovídá pořadí spojení tabulek. Nejhlouběji zanořený element je ten, jehož tabulka je v klauzuli FROM uvedena jako poslední. K oběma módům RAW a AUTO lze použít nepovinný modifikátor ELEMENTS, který ze sloupců výsledku dotazu vytvoří místo atributů samostatné podelementy. Příklad je uveden na slajdu č. B/28. Modifikátor ELEMENTS se přidává za klíčová slovo AUTO nebo RAW a je od nich oddělen čárkou. Například FOR XML AUTO, ELEMENTS. Dalším užitečným modifikátorem je ROOT, za kterým je v závorce a apostrofech uvedeno jméno kořenového elementu, který bude obalovat všechny elementy vytvořené pro jednotlivé řádky výsledku dotazu. Tento modifikátor se odděluje od zbytku dotazu čárkou, obdobně jako modifikátor ELEMENTS. Například FOR XML RAW, ROOT('kořen'). Na slajdu č. B/29 vidíme jaké indexy lze vytvořit pro XML data. Pokud plánujeme v těchto datech často vyhledávat (tématické bloky č. 5 a 6), je vytvoření těchto indexů nezbytné. Nejprve je nutné vytvořit primární XML index příkazem CREATE PRIMARY XML INDEX. Na slajdu nahoře tento index vytváříme a pojmenováváme XmlIdx. Následně s použitím tohoto indexu lze vytvořit tři samotné indexy: index cest (PATH), hodnot (VALUE) a vlastností (PROPERTY). Příklad je uveden v dolní části slajdu. Klíčové pojmy XML, DTD element, značka, atribut, správně formovaný dokument, správně uzávorkovaný dokument validní dokument CDATA, ID, IDREF, IDREFS Entita (znaková, obecná, interní, externí, parametrická)

Otázky k rekapitulaci Upozornění: odpovědi na některé zde uvedené otázky nelze najít ve studijním textu tohoto tématického bloku. Lze je získat vlastním experimentováním se zdrojovými kódy nebo studiem doporučené literatury. Jaký je rozdíl mezi elementem a značkou? Lze nahradit atribut vnořeným elementem? Lze nahradit vnořený element atributem? Co může obsahovat element? Jaké podmínky musí splňovat správně formovaný XML dokument? Na vhodných příkladech ukažte porušení těchto podmínek. Jakým způsobem se v XML označují instrukce pro zpracování a k čemu slouží? K čemu se v XML používá sekce CDATA? Kdy je její použití rozumné? Čím ji lze nahradit? Vysvětlete DTD uvedené na slajdu č. A/45. K čemu slouží DTD, jaké má jeho použití výhody? Jak v DTD definujeme obsah elementu? Jakým způsobem v DTD definujeme, že nezáleží na pořadí elementů? Lze v DTD definovat, že záleží na pořadí atributů? Jaké typy atributů lze v DTD definovat? K čemu slouží entity v XML, jaké typy známe a jak se používají? K čemu slouží entity v DTD? Své odpovědi zdůvodněte. Můžete přidat i syntaktické zápisy tam, kde je to vhodné. Doporučené příklady k naprogramování 1. Napište validní XML dokument k DTD uvedenému na slajdu č. A/45, tak aby v něm byl využit každý řádek z DTD. Validitu vytvořeného XML dokumentu ověřte validátorem [7]. 2. Vytvořte DTD pro některý z XML dokumentů nacházejících se v souboru xml.zip (uloženém v adresáři se studijními materiály tohoto předmětu). Validitu daného XML souboru vůči vámi vytvořenému DTD zkontrolujte validátorem. 3. Vytvořte zajímavé DTD, které bude obsahovat co nejvíce probíraných prvků. K tomuto DTD vytvořte XML dokument, zkontrolujte ho validátorem. 4. Vytvořte tabulku (pojmenovanou XMLTab) se sloupcem datového typu XML a do této tabulky vložte všech pět XML dokumentů (pro každý dokument bude vytvořen jeden řádek tabulky) ze souboru xml.zip. Pro tabulku vytvořte všechny možné XML indexy. 5. Vytvořte dotaz obsahující spojení tří tabulek z databáze Northwind. Výsledek dotazu uložte jako XML pomocí módů RAW a AUTO v kombinaci s modifikátory ROOT, a ELEMENTS. Vyzkoušejte všechny varianty a výsledky si prohlédněte.

Studijní literatura [1] Mlýnková, Nečaský: Slajdy k 1. přednášce z předmětu technologie XML (PRG036) vyučovaného na MFF UK (v tomto tématickém bloku označované jako slajdy A, například slajd č. A/xx). https://is.vsfs.cz/auth/el/6410/leto2010/eq_n_ds/um/ds4a.ppt [2] Kopecký: Výběr ze slajdů k 7. přednášce z předmětu Databázové aplikace (DBI026) vyučovaného na MFF UK(v tomto tématickém bloku označované jako slajdy B, například slajd č. B/xx). https://is.vsfs.cz/auth/el/6410/leto2010/eq_n_ds/um/ds4b.ppt [3] XML dokumenty používané v doporučených příkladech k naprogramování (5 her od Shakespeare) https://is.vsfs.cz/auth/el/6410/leto2010/eq_n_ds/um/xml.zip [4] Mlýnková a kol.: Technologie XML - Principy a aplikace v praxi. Grada, Praha, 2008. [5] Seriál článků o XML: http://programujte.com/?akce=clanek&cl=2007030501-xml-prozacatecniky-1-cast [6] http://www.kosek.cz/xml/ [7] Online XML validátor: http://www.xmlvalidation.com/