Úvod do XML S využitím materiálů z Zdeněk Žabokrtský
eXtensible Markup Language Botička a Verpánek, s.r.o. Přípotoční 17 Praha / Oprava obuvi, koženého zboží, výměna zipů v kabelkách a taškách, výroba zdravotnické a ortopedické obuvi na zakázku. </firma>
Vývoj 1960s – koncepce značkování, tj. vkládání značek do dokumentu –např. formátovacích (např. TeX) 1969 – GML – Generalized Markup Language –Goldfarb, Mosher a Lorie, zpracování právních textů pro IBM 1986 – SGML – Standard Generalized Markup Language, ISO 8879 –Příliš komplexní 1992 – HTML (Hypertext Markup Language) –Základy syntaxe převzaté z SGML, velice jednoduchý 1996 – W3C vytyčilo deset cílů pro nový jazyk 1998 – XML 1.0
Databáze vs. XML Výhody XML –Otevřený formát (specifikace zdarma na w3c) –Snadná srozumitelnost –Textově orientovaný formát – lze zpracovávat bez specializovaných nástrojů (v podstatě v libovolném textovém editoru) –Vysoký informační obsah (např. oproti prezentačnímu značkování) –Snadná konverze do jiných formátů –Snadná automatická kontrola správnosti struktury –Snadné odkazování
Základy syntaxe XML Termíny: XML dokument – textový soubor ve formátu XML Dokument se skládá z deklarace a elementů Hranice elementu jsou určeny počátečním a koncovým tagem S elementem mohou být asociované další vlastnosti – atributy elementu
Základy syntaxe XML (2) Tagy –počáteční tag –koncový tag –tag pro prázdný element Elementy mohou být vnořené jeden do druhého, hranice elementů se nesmí křížit -> dokument~strom elementů K zápisu vyhrazených znaků v obsahu elementu je třeba použít entity < a >, pro zápis znaku & slouží entita & Hodnoty atributy musí být uzavřené v uvozovkách nebo apostrofech; (pro zapsání apostrofu nebo uvozovky do hodnoty atributu slouží entity " a '
Základy syntaxe XML (3) Dokument může (měl by) obsahovat instrukce pro xml procesor –Deklarace XML: –Deklarace typu dokumentu: Dokument může obsahovat komentáře (nesmí být uvnitř tagů, nesmí obsahovat --) Jestliže dokument splňuje požadavky na syntaxi XML (tj. všechny tagy a atributy mají správnou syntax, dokument má jediný kořenový element, všechny neprázdné elementy mají oba tagy, žádné elementy se nekříží atd.), je správně strukturovaný – well formed.
Čas na první pokus
Document Type Definition (DTD) DTD –Koncepce přejatá ze SGML –Formální sada pravidel pro popis struktury dokumentu –Deklaruje jména elementů, omezení na vzájemné zanoření elementů, jména atributů a jejich hodnoty… –Příklad struktury dokumentu: dokument se skládá z posloupnosti kapitol, každá kapitola obsahuje nadpis a posloupnost oddílů, oddíly obsahují text. Umístění DTD –Externí DTD - samostatný soubor –Interní DTD - uvnitř XML dokumentu Validace –proces ověření, zda dokument odpovídá specifikaci v DTD –Jestliže odpovídá, je dokument (vzhledem k danému DTD) validní (srovnej s well-formedness)
Struktura DTD Deklarace čtyř typů –Deklarace elementů –Deklarace atributů –Deklarace entit –Deklarace notací
Deklarace elementů Název musí začínat písmenem, dále může obsahovat číslice a některé speciální znaky.-_: Prázdný element: – Element bez omezení na obsah: –
Deklarace elementů (2) Element obsahující text –Rezervované jméno PCDATA (Parseable Character DATA) –Příklad: Popis obsahu elementu – jako v RE –Kontrola pořadí: sekvenční konektor, a konektor volby | –Kontrola kvantity: ? + * –Příklad elementu se smíšeným obsahem: –
Deklarace atributů Deklarace atributu –Jméno atributu –Typ atributu –Standardní hodnota (nepovinné) Příklad
Deklarace atributů (2) Typy hodnot atributů –CDATA – jednoduchý řetězec –NMTOKEN – řetězec s omezeními jako na jméno atributu –NMTOKENS – posloupnost tokenů oddělených mezerou –ID - identifikátor –IDREF – odkaz na identifikátor –IDREFS – posloupnost odkazů oddělených mezerou –… Povinný atribut –#REQUIRED uvedeno na konci deklarace atributu Implicitní atribut (není-li vyplněn, aplikace očekává standardní nastavení, např. 0) –#IMPLIED uvedeno na konci deklarace atributu
Ukázka DTD <!ATTLIST ingredient name CDATA #REQUIRED amount CDATA #IMPLIED unit CDATA #IMPLIED> <!ATTLIST nutrition protein CDATA #REQUIRED carbohydrates CDATA #REQUIRED fat CDATA #REQUIRED calories CDATA #REQUIRED alcohol CDATA #IMPLIED>