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.



Podobné dokumenty
Správnost XML dokumentu

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

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

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.

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

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

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

XML terminologie a charakteristiky. Roman Malo

XSLT a jmenné prostory

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

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

Jazyky pro popis dat

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

Příklad buňka tabulky

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

Obsah prezentace. Co je to XML? Vlastnosti. Validita

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

Tvorba WWW stránek. Mojmír Volf

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

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

Pravidla dokumentace

TRANSFORMACE XML DOKUMENTŮ POMOCÍ JAZYKA XSLT

XML. Aleš Keprt

Š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

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

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

Tvorba informačních systémů

XPath je jazyk, který slouží k

PRG036 Technologie XML

Vývoj Internetových Aplikací

Vstupní data pro program Deformace ve formátu XML

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

NSWI096 - INTERNET. Úvod do HTML

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

Základy WWW publikování

Dotazování nad XML daty a jazyk XPath

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

Mgr. Stěpan Stěpanov, 2013

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

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Programovací jazyk Pascal

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

Další XML technologie

HTML Hypertext Markup Language

DUM 06 téma: Tvorba makra pomocí VBA

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

Vysoká škola ekonomická v Praze

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

XSL. Jirka Kosek. Poslední modifikace: $Date: 2005/12/01 09:35:37 $ Copyright Jiří Kosek. XML teorie a praxe značkovacích jazyků (IZI238)

HTML - Úvod. Zpracoval: Petr Lasák

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

Vývoj Internetových Aplikací

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

Tvorba stránek v HTML ve Wordu

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

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

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

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

Jiří Bulíček Tvorba Internetových aplikací v jazyce XML

E-learning a DocBook

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

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

XML schémata. Jiří Kosek

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

Realizace obecného elektronického obchodu na platformě 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:

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 jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Assembler - 5.část. poslední změna této stránky: Zpět

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

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

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

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

XML schémata. Jiří Kosek

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

Využití XML v DB aplikacích

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

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

Webové stránky. 2. Úvod do jazyka HTML. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Interaktivní typová kontrola XML a ladění XML transformací

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

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

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

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

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

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

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

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

Překladač XSL šablon

MANUÁLNÍ TVORBA NÁMĚTOVÉ MAPY V SYNTAXI XTM

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

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

Úvod do XML Technologie

Transkript:

24. XML Úvod Značkovací jazyk XML (extensible Markup Language) vznikl ze staršího a obecnějšího jazyku SGML (Standard Generalized Markup Language). XML byl vyvinut konsorciem W3C, aby poskytl standardní formát pro zpracování a výměnu informací. Pomocí XML lze popsat téměř jakákoli data a je ho tedy možno využít jako obecný formát pro mnoho aplikací různého druhu. Tento formát byl navržen, aby splňoval následující kritéria: je možno ho číst a upravovat v libovolném textovém editoru nezávislém na platformě je rozšiřitelný, tzn. umožňuje vytvářet vlastní formáty má jednoduchou syntaxi implementace parserů a dalších nástrojů na jeho zpracování je velice snadná Jazyk je určen především pro výměnu dat mezi aplikacemi a pro publikování dokumentů. Jazyk umožňuje popsat strukturu dokumentu z hlediska obsahu jednotlivých částí, nezabývá se však vzhledem dokumentu nebo jeho částí. Vzhled dokumentu se definuje připojeným stylem. Je zde i možnost transformovat XML dokument pomocí XSLT do jiného dokumentu nebo jiné struktury XML. Pomocí značek (tagů) vyznačujeme v dokumentu význam jednotlivých částí textu. XML neobsahuje žádné předdefinované tagy. Tyto značky můžeme definovat v definičním souboru DTD (Dokument Type Definition). Potom nám parser bude automaticky kontrolovat jestli dokument odpovídá této definici. Syntaxe 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. Každý XML dokument musí obsahovat alespoň jeden element XML dokumenty mohou a měly by začínat XML deklarací, která určuje, jaké verze XML bylo použito. Implicitním kódováním dokumentů je Unicode, je zde však možnost určit jakékoliv jiné kódování v XML deklaraci. Existuje přesně jeden element, který se nazývá root (kořenový element), přičemž žádná jeho část se nenachází uvnitř jiného elementu. Jméno v koncovém tagu se musí shodovat se jménem v počátečním tagu. Záleží na tom, zda jsou použita velká nebo malá písmena. Konec každého elementu, který začíná počátečním tagem musí být označen koncovým tagem, který nese stejné jméno jako tag počáteční. Text mezi počátečním a koncovým tagem se nazývá obsah elementu. Element, který nemá žádný obsah, může být uveden ve speciální formě: <jméno/>. Lomítko před > nahrazuje koncový tag. Pokud se počáteční tag nachází v obsahu nějakého elementu, koncový tag se musí nacházet ve stejném elementu.

Vypracoval: Název elementu může obsahovat písmena, číslice, podtržítko, oddělovník, dvojtečku nebo tečku. Dvojtečka může být použita pouze ve speciálním případě, kdy odděluje tzv. jmenný prostor. Název elementu může začínat pouze písmenem, podtržítkem nebo dvojtečkou. Názvy elementů začínající na xml, XML nebo jinou kombinaci velikostí těchto písmen jsou vyhrazeny pro standard. Element může mít žádný, jeden nebo několik atributů. Pro jejich názvy platí stejná pravidla jako pro názvy elementů. Jméno atributu je odděleno od jeho hodnoty rovnítkem =. Hodnota atributu musí být uvedena uvnitř apostrofů '...' nebo uvozovek "...". Pokud jsou apostrofy nebo uvozovky použity v hodnotě atributu, musí být použit opačný oddělovač. Znaky < a & nemohou být použity v textu, neboť jsou určeny pro značkování. Pokud jsou potřeba, < musí být použito místo < a & místo & Znaky >, " a ' mohou být rovněž nahrazeny >, " a &apos; Komentáře se mohou vyskytovat na libovolném místě v dokumentu mimo vlastní značkování. Řetězec "--" se nesmí objevit uvnitř komentáře. Definiční soubory DTD DTD neboli definice typu dokumentu nám umožňuje určit pravidla, kterými se XML dokument musí řídit. V DTD souborech se definují elementy, atributy, entity a notace. DTD můžeme umístit přímo do dokumentu: <!DOCTYPE korenovyelement [ DTD ]> Lepší je však umístit DTD do externího souboru s příponou.dtd a z dokumentu XML se na ni odkázat takto: <!DOCTYPE korenovyelement SYSTEM "nazev.dtd"> Každý DTD soubor by měl obsahovat XML deklaraci. Deklarace elementu: <!ELEMENT názevelementu obsahelementu>

Místo obsahelementu lze použít modifikátor EMPTY (prázdný element), ANY (může obsahovat cokoliv), (#PCDATA) - obsahuje pouze text. Nebo uvést přesný obsah elementu do kulatých závorek: Odděleno čárkami = elementy následují v daném pořadí Odděleno = jeden z elementů Uzavřít víc elementů do závorek = skupina elementů Výskyt elementů =? jednou nebo vůbec; + jednou nebo vícekrát; * vůbec nebo vícekrát <!ELEMENT kniha (nazev, autor+, anotace?)> Deklarace atributů elementu: <!ATTLIST názevelementu jménoatributu1 typatributu1 modifikátor1 jménoatributu2 typatributu2 modifikátor2... > Typ atributu: CDATA - řetězec znaků ENTITY - název externí entity ID jedinečný identifikátor elementu IDREF odkaz na element s daným ID NMTOKEN - jméno, slovo bez mezer, může obsahovat pouze specifické znaky NMTOKENS více NMTOKEN oddělených mezerou NOTATION povolený datový typ Možnosti atributu = možnosti oddělené implicitní možnost v uvozovkách <!ATTLIST nejakyelement hodnocení (dobrý normální špatný) dobrý > Modifikátor atributu: #REQUIRED - atribut je povinný #IMPLIED v dokumentu můžeme tento atribut vynechat #FIXED hodnota - atribut musí mít právě tuto hodnotu <!ATTLIST kniha rokvydani CDATA #REQUIRED naklad CDATA #IMPLIED nakladatelství NMTOKEN #FIXED "Adria"> Deklarace entit: <!ENTITY nazeventity "obsah"> Entita je v podstatě XML proměnná. Používá se když se určitý výraz nebo hodnota často opakuje, nebo pokud chceme vložit do XML dokumentu externí data. Určitě znáte entity < > a &. Entity se dělí na interní a externí. Neparametrické interní entity jejich obsah je uveden přímo v dokumentu, lze je použít jak v DTD, tak v XML dokumentu.

- deklarace v DTD: <!ENTITY nazev Střední škola informačních technologií a sociální péče > - použití v XML: <skola> <nazev>&nazev; Purkyňova 97</nazev> <typ>soš</typ> </skola> Externí entity jejich obsah je uveden mimo DTD soubor. Dělí se na binární (neanalyzovatelné) a textové (analyzovatelné) podle obsahu, který zastupují. Binární entita musí mít narozdíl od textové určený typ binárních dat. Typ se definuje v notaci. Externí entita se definuje pomocí klíčového slova SYSTEM. <!ENTITY binarnientita SYSTEM "jmenosouboru" NDATA "typ"> Parametrické entity dělí se také na interní a externí, lze je však použít pouze v DTD souboru. - deklarace v DTD: <!ENTITY % atributy barva (červená černá bílá) stav (výborný zachovalý šrot) > - použití v DTD: <!ELEMENT kolo (#PCDATA)> <!ATTLIST kolo %atributy> Deklarace notací: <!NOTATION nazev SYSTEM MIME typ dat /nebo přidružená aplikace > Notace se používají ve spojení s externími binárními (neanalyzovatelnými) entitami, přičemž určují typ dat. - deklarace v DTD: <!ENTITY skola SYSTEM skola.jpg NDATA jpg> <!NOTATION jpg SYSTEM image/jpeg > <!ELEMENT obrazek EMPTY> <!ATTLIST obrazek zdroj ENTITY #REQUIRED> - použití v XML: <skola> <obrazek zdroj= skola /> </skola>

XSLT Pomocí jazyku XSLT můžeme transformovat XML dokument do zcela jiného dokumentu s odlišnou strukturou (např.: HTML, TeX, txt, atd.). Transformace se provádí pomocí XSLT stylů, které jsou vlastně sami o sobě xml dokumenty se speciálními elementy. K navigaci ve struktuře uzlů se používá jazyk XPath, který má podobnou syntaxi jako souborový systém. Připojení XSLT stylu k dokumentu se provádí následujícím příkazem: <?xml-stylesheet href="soubor.xsl" type="text/xsl"?> Definice stylu: Každý XSLT styl musí začínat kořenovým elementem xml:stylesheet. <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/xsl/transform'> <!-- definice stylu --> </xsl:stylesheet> Definice šablon: Základní prvek stylu, je šablona (xsl:template). Každá šablona má určené uzly XML dokumentu, na které se aplikuje. Tyto uzly jsou podle šablony přeměněny na nové uzly ve výsledném dokumentu. Pomocí atributu match specifikujeme na jaké uzly se má šablona aplikovat. <xsl:template match='výraz'> <!-- obsah šablony --> </xsl:template> Popis zpracování: XSL procesor prochází hierarchií uzlů vstupního dokumentu a pro každý uzel hledá odpovídající šablonu. Pokud šablona není nalezena, použije se interní šablona procesoru, která zkopíruje obsah uzlu do výstupního dokumentu a zahájí zpracování podřízených (vnořených) uzlů. Pokud nadefinujete vlastní šablony, přebíráte úplnou kontrolu nad zpracováním. Řízení zpracování: Pomocí následujícího příkazu oznamujeme XSL procesoru, že má začít zpracovávat kořenový uzel se všemi jeho podřízenými uzly. Pokud vynecháme nepovinný atribut select, budou zpracovány všechny podřízené uzly aktuálního uzlu. Do select můžeme dosadit libovolný uzel. <xsl:apply-templates select="/" />

Příkaz value-of slouží k vkládání obsahu uzlů, aniž by byla použita šablona. Pomocí atributu select můžeme vybrat jakýkoliv uzel, tečka vybírá aktuální uzel. Jestliže umístíme do select @ říkáme tím, že chceme vybrat obsah atributu, nikoliv uzlu. <xsl:value-of select="."/> Příkaz for-each slouží k hromadnému zpracování všech uzlů stejného jména. <xsl:for-each select="uzel"> <!-- hromadná akce --> </xsl:for-each> Shrnující příklad: -XML: <katalog sekce="periferie"> <polozka nazev="klávesnice"> <varianta barva="bílá" /> <varianta barva="šedá" /> <varianta barva="černá" /> </polozka> <polozka nazev="myš"> <varianta typ="optická" /> <varianta typ="kuličková" /> </polozka> </katalog> -XSLT: <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/xsl/transform' version='1.0'> <xsl:template match='/katalog'> <html> <head> <title><xsl:value-of select="@sekce" /></title> </head> <body> <xsl:apply-templates select="polozka" /> </body> </html> </xsl:template> <xsl:template match='polozka'> <h3><xsl:value-of select="@nazev" /></h3> <ul> <xsl:apply-templates select="varianta/@barva" /> <xsl:apply-templates select="varianta/@typ" /> </ul> </xsl:template> <xsl:template match='@barva @typ'> <li><xsl:value-of select="." /></li>

</xsl:template> </xsl:stylesheet> Vypracoval: