XML – terminologie a charakteristiky Roman Malo
XML
eXtensible Markup Language (rozšiřitelný značkovací jazyk) Verze
1.0, 1.1 – http://www.w3.org/xml Rozdíly v podpoře různých znakových sad a práci s řídícími znaky
Metajazyk – nejsou definovány konkrétní značky
XML aplikace
2
XML značkování
XML je meta-značkovací jazyk pro textové dokumenty, nedefinuje tedy pevně danou množinu značek Je možné definovat si vlastní elementy, tak jak je potřeba – flexibilita, rozšiřitelnost Všechny dokumenty však musí odpovídat striktní gramatice určující umístění značek, dovolené názvy, atributy – well-formed dokumenty XML je case-sensitive! Identifikátory mohou obsahovat libovolné alfanumerické znaky, podtržítka, pomlčky, tečky i znaky různých abeced XML aplikace
3
Ukázka XML dat
XML aplikace
4
XML aplikace
Při práci s XML je vždy použita XML aplikace XML aplikace představuje konkrétní množinu značek a pravidel jejich použití XML aplikace je instancí XML Jednotlivé skupiny či instituce se mohou dohodnout na jednotné sadě značek, čímž vznikají de-facto standardy (XSLT, SMIL, SVG, ebXML, …) XML aplikace
5
XML dokument
XML dokument je obecné označení pro fyzický zdroj (textový soubor, datový proud) XML dat V rámci dokumentu je uveden především obsah a příslušné značky, které jej logicky člení na elementy Další součásti XML dokumentu
deklarace xml dokumentu – hlavička deklarace typu dokumentu entitní reference komentáře procesní instrukce sekce CDATA XML aplikace
6
Logická struktura XML
Na XML data lze nahlížet jako na strom (XML strom) Jednotlivé části stromu jsou tvořeny elementy a případně dalšími součástmi XML dat Vztahy mezi prvky vycházejí z terminologie rodokmenů (předek, rodič, sourozenec, dítě, potomek (následník)) Podle počtu potomků rozeznáváme hrubou a jemnou granularitu (zrnitost) elementů Hierarchie mohou být rekurzivní
XML aplikace
7
Schéma elementu
Element <jméno_značky atribut="hodnota"> obsah
počáteční značka
koncová značka
XML aplikace
8
XML názvy
Musí začínat na písmeno nebo znak "_" Dalšími povolenými znaky jsou čísla, pomlčky nebo tečky Neměl by obsahovat dvojtečku, ta se používá pro jmenné prostory Je doporučeno nezačínat prefixem "xml" Obecně je možné použít libovolné znaky ze znakové sady UNICODE Rozeznává se velikost písmen XML aplikace
9
UNICODE
Standardizovaná znaková sada zahrnující většinu znaků různých abeced Unicode Consortium, rozšíření ISO 10646 Od verze 2.0 zpětně kompatibilní (dnes verze 5.0) Znak UNICODE může být 31 bitů (původně jen 16) dlouhý (231 = 2147483648) Nutné použití některého kódování (např. UTF-8) XML aplikace
10
UTF-8
UCS Transformation Format – způsob kódování UNICODE znaků UTF-8 používá sekvence bajtů (UTF-16, UTF-32) Pro české znaky postačuje max. 2B Pro vícebajtové znaky se používá big endian zápis Byte Order Mark (BOM) – nedělitelná mezera nulové šířky (U+FEFF), v UTF-8 reprezentován trojicí bajtů 0xEF 0xBB 0xBF BOM se používá k rozpoznání kódování dat Viz např. http://cs.wikipedia.org/wiki/UTF-8 XML aplikace
11
Obsah elementu
Elementy
<jmeno>Roman <prijmeni>Malo Znaková data
Roman Malo Smíšený obsah
<pojem>XMLje značkovací… Prázdný element
nebo
XML aplikace
12
Kořenový element
Právě jeden element je předkem pro všechny ostatní elementy – kořenový element Správně zapsaná XML data
<jmeno>Roman <prijmeni>Malo Chybějící kořenový element – chyba
1446 <jmeno>Roman <prijmeni>Malo XML aplikace
13
XML hlavička
XML hlavička je deklarací XML dokumentu Je-li hlavička dokumentu uváděna, pak se musí vyskytnout na úplném začátku dokumentu, nesmí se před ní vyskytnou žádné jiné (ani bílé) znaky Hlavička je nepovinná (jen v případě použití UTF-8 apod.) Atributy: version – verze xml encoding – kódování dokumentu standalone – povinnost číst definice z externí podmnožiny DTD
XML aplikace
14
Deklarace typu dokumentu
DTD – definice typu dokumentu, obsahuje pravidla zápisu XML dat a definici entit Deklarace typu dokumentu obsahuje DTD (interní podmnožinu) nebo odkaz na DTD (externí podmnožinu) Uvádí se před kořenovým elementem
XML aplikace
15
Předdefinované entity
Stejně jako v jiných jazycích i v XML jsou určité znaky vyhrazeny pro určitý účel – zápis značek XML specifikace definuje pět interních znakových entit
< – znamená levou špičatou závorku < > – pravou špičatou závorku > & – ampersand & ' – apostrof ´ " – uvozovku ” XML aplikace
16
Znakové entity, entitní reference
Každý znak lze zapsat pomocí znakové entity Zápis je možné provést více způsoby
názvem – < (názvy musí být definovány) desítkově – < hexadecimálně – <
Specifikace XML umožňuje použití i dalších entit (textové, binární), nutná definice v části DTD
XML aplikace
17
Fyzická struktura XML dokumentu
XML dokument může být pomocí entit rozčleněn na dílčí části Základní entitou je entita dokumentu – document entity (existuje vždy) Při zpracování XML dokumentu je nejprve třeba sestavit kompletní XML dokument (nahradit entity obsahem) – manažer entit Každá entita je určena svým URI Existují dva základní typy fyzických entit
entity analyzované (parsed entities) entity neanalyzované (unparsed entities) XML aplikace
18
Komentáře
Komentáře umožňují do textu vkládání libovolných informací, které nejsou přímo obsahem dokumentu Většinou se jedná o poznámky autora dokumentu, případně může jít o programové vsuvky Komentáře jsou XML parserem ignorovány Komentář nemůže být součástí značek nebo hodnot atributů
XML aplikace
19
Procesní instrukce
PI nejsou součástí XML dat, obsahují instrukce pro software zpracovávající dané data
Aplikace se orientuje dle cíle PI a zpracovává instrukce PI Obsahem PI jsou znaky platné v XML Používají se například pro propojení XML se styly
XML aplikace
20
CDATA sekce
Sekce CDATA oznamuje XML procesoru, aby ignoroval všechny značky obsažené v sekci – jednotlivé značky jsou chápány v roli normálního textu Podobné informace by bylo možné zapisovat i pomocí znakových entit <skriptik jazyk="JavaScript"> Jak to jde?"); } ]]>
XML aplikace
21
Prolog XML
Prologem je rozuměna část, které předchází kořenovému elementu Součástí prologu může být hlavička, komentář, procesní instrukce či deklarace typu dokumentu Prolog může být prázdný
XML aplikace
22
XML atributy Atribut jazyku – pro určení jazyku obsahu elementu Hodnotou kód dle ISO 639 případně včetně subkódu (ISO 3166)
Hezky česky Atribut zpracování bílých znaků – pro definici zpracování znaků mezer, konců řádku apod. v obsahu elementu Obecně jsou bílé znaky normalizovány na jednu mezeru <mezery xml:space="preserve">
XML aplikace
23
Základní syntaktické pravidla
Každá počáteční značka má značku koncovou Elementy se nesmějí překrývat Musí existovat kořenový element Hodnoty atributů musí být uzavřeny v uvozovkách Element nesmí mít dva stejně pojmenované atributy Komentáře a instrukce nesmí být v názvu značek Ve znakových datech elementu nesmí být žádné nenahrazené entity
XML aplikace
24
Dobře strukturované a validní XML
Každý XML dokument, který striktně dodržuje uvedenou syntaxi (pravidla správné formulace) je dobře strukturovaný (well-formed) Pokud dokument odpovídá určitému DTD (případně jinak popsané definici struktury), pak je validní (valid)
Každý validní dokument je dobře strukturovaný Dobře strukturovaný dokument nemusí být validní Pokud je dokument validní existuje k němu příslušný popis struktury (DTD, XML schéma, ...) ??? XML dokument nemusí být validní ani dobře strukturovaný. ??? (Je to ještě XML?) XML aplikace
25
XML fragment
XML fragmentem je nazývána libovolná ucelená část XML dokumentu XML fragment může být využíván samostatně, když je dobře strukturovaný XML fragment nemusí být dobře strukturovaný Fragmentů se využívá například pro sdílení XML dat mezi různými dokumenty XML aplikace
26
Procesor XML
Aplikace zpřístupňující XML data Plní funkci parseru a manažeru entit Parser je syntaktický analyzátor, který rozpoznává jednotlivé části XML dat Při nalezení chyby končí zpracování dat XML specifikace rozeznává validující a nevalidující XML procesor
XML aplikace
27
Modularizace
Velice často bývá struktura XML velmi rozsáhlá, přičemž řada elementů z definice se v některých případech nevyužívá Proto je celý popis struktury rozdělen na logické celky – moduly, ze kterých se vytvářejí profily Profily je možné efektivně využít například pro aplikace či zařízení, které určitou podmnožinu prvků daného standardu nevyužívají Každý profil je podmnožinou kompletní celé množiny povolených prvků XML aplikace
28
XML – doplňující specifikace
XML Base – vyhodnocování relativní URL adres XML Namespaces – definice logických prostorů jednotlivých elementů a atributů XML Inclusion – vkládání XML dokumentů XML Information Set – popis jednotlivých uzlů dokumentu Kanonizace XML – vyhodnocování ekvivalence XML dokumentů XML aplikace
29
Výhody XML
XML je jednoduchým, otevřeným, dostupným a nezávislým de-facto standardem XML umožňuje dokonalý popis logické struktury dokumentu XML podporuje většinu z národních znakových sad XML je snadno zpracovatelný a konvertovatelný do jiných formátů XML je univerzálním datovým formátem XML se dále rozvíjí a lze předpokládat stále silnější podporu tohoto jazyka i ze strany velkých dodavatelů SW XML aplikace
30
Děkuji za pozornost
[email protected]