Hlavní navigace

XML - Úvod

Bedřich Košata

O XML můžete na internetu v poslední době slyšet stále častěji. Podpora XML v různých programech a jazycích je stále rozšířenější a je tedy na čase položit si zásadní otázku - co to je a k čemu je to dobré? Na tuto a další otázky se pokusím odpovědět v následujícím krátkém seriálu.

XML je zkratka anglického eXtensible Markup Language – tedy otrocky přeloženo „rozšiřitelný značkovací jazyk“. A co to znamená?

Extensible – rozšiřitelný

Při objasňování koncepce XML se často jako příklad uvádí HTML. Tento příklad je však vhodný spíše pro popis vzhledu XML zdrojáku, než pro popis jeho vlastností a využití. HTML zná pravděpodobně téměř každý a ví, že jde o sadu zvolených „tagů“ – tedy značek, které umožňují formátování textového dokumentu. V HTML je tedy význam jednotlivých značek přesně určen a jejich počet je omezen. Naproti tomu standard XML pouze popisuje jak má XML dokument vypadat po stránce syntaktické, avšak nepřiřazuje žádným značkám konkrétní obsah. Na autorovi samotném pak záleží, jakou úlohu danému tagu přiřadí a jak bude daný XML dokument zpracován.

V XML tedy nejsou informace členěny pomocí tagů do skupin podle jejich požadovaného vzhledu, ale podle logického uspořádání dokumentu. Takový přístup pak nabízí daleko větší možnosti při zpracování dat než HTML a navíc dává možnost širšího uplatnění XML jako formátu pro ukládání dat.

Markup – značkovací

XML navazuje na mnohem starší standard pro vytváření „značkovaných“ dokumentů – SGML. Tato norma však byla pro reálné použití zbytečně složitá a stejně tak složitá byla její implementace. Proto byl na základě SGML navržen nový standard, který zachovává většinu z výhod SGML (tedy hlavně jeho univerzálnost), ale značně zjednodušuje vytváření a posléze zpracování takových dokumentů – XML. XML dokument je tudíž také platným SGML dokumentem.

O použití značek viz. dále.

Language – jazyk

Velmi významnou vlastností XML je, že jde o formát, který lze prohlížet i editovat v libovolném editoru – jde tedy o tzv. „human readable“ formát.

Pravidla

A jaká jsou pravidla pro psaní XML? Jednoduchá.

  1. obsah tagu (element) musí začínat startovním tagem ve tvaru <jmeno_tagu>
  2. konec elementu je vyznačen koncovým tagem </jmeno_tagu>, který je povinný!
  3. před ukončením elementu musí být ukončeny všechny jeho vnitřní elementy – každý element tedy musí mít koncový tag uvnitř stejného elementu jako počáteční.
  4. prázdný tag vyznačíme <jmeno_tagu/>
  5. počáteční tag může obsahovat atributy v podobě <jmeno_tagu a­tr1=„aaa“ atr2=„ab­c“>
  6. znaky, které jsou součástí textu a mají speciální význam (např. <), musí být escapnuty.
  7. nejvyšší element v hierarchii elementů je nazýván „root element“ a smí být pouze jeden.

Kromě těchto pravidel by měl správný XML dokument obsahovat také „hlavičku“, která popisuje verzi XML standardu, kterou daný dokument používá, popř. některé další údaje:

<?xml version="1.0" ?>

Pokusný XML dokument:

<?xml version="1.0" encoding="iso-8859-2" ?>

<dokument>
  <nadpis level="1">Můj zkušební dokument</nadpis>
  <kapitola number="1">
    <nadpis level="2">První kapitola</nadpis>
    <odstavec>Tak tohle je můj první XML dokument
    (tedy není, ale jako by byl).</odstavec>
    <odstavec>A tohle je další odstavec. Trocha
    matematiky: 2&lt;5.</odstavec>
    <obrazek soubor="/home/beda/muj_obrazek.png"/>
  </kapitola>
</dokument>

Takhle nějak tedy může vypadat XML dokument. V hlavičce je kromě verze XML použit i atribut encoding. Ten je často zapotřebí pro správné zpracování dokumentu, neboť norma XML požaduje po parseru – programu pro čtení a zpracování dokumentu – pouze znalost UTF. V případě, že dokument máte v UTF, není třeba tento atribut psát, v ostatních případech je to jistější.

Jak vidíte, atributy se většinou používají pro data, která nejsou určena pro zobrazení.

V odstavci o troše matematiky není chyba – &lt; je escape sequence pro <, který je normálně interpretován jako začátek tagu ( a &amp;lt; je escape sekvence pro &lt; a &amp;amp;lt; pro &amp;lt; … :) )

Všem zájemcům o konkrétnější informace o pravidlech pro psaní XML, různých druzích XML formátů, jejich syntaxi apod. vřele doporučuji ZVON kde najdete nepřeberné množství informací (bohužel převážně jen v angličtině).

A k čemu to vlastně je???

Standard XML byl vytvořen konsorciem W3, aby poskytl standardní formát pro zpracování dat a splňoval následující kritéria (mimo jiné):

  1. je „human readable“ – je ho tedy možno číst a upravovat v libovolném textovém editoru
  2. je rozšiřitelný – umožňuje vytvářet vlastní formáty
  3. má jednoduchou syntaxi
  4. implementace parserů a dalších nástrojů na jeho zpracování je snadná (alespoň ve srovnání se SGML)

XML umožňuje vývojářům vytvářet poměrně snadno vlastní formáty od něj odvozené, protože poskytuje standardní nástroje pro jejich zpracování. Na standard XML je nabaleno velké množství dalších standardů, které umožňují jednoduše a účinně provádět kontrolu dokumentů, jejich vzájemné převody apod.

XML formátem lze popsat takřka jakákoli data a je ho tedy možno využít jako obecný formát pro mnoho aplikací různého druhu.

Po tomto suchém úvodu se příště podíváme na konkrétní příklady formátů založených na XML – SVG, MathML a další. Časem se také dostaneme k nástrojům pro práci s XML daty, a to jak pro programátory, tak uživatele, a ukážeme si v čem je síla psaní v XML.

Našli jste v článku chybu?

25. 1. 2001 17:43

Beda Kosata (neregistrovaný)

Vsechno bude. V pristim dile se seznamime prave s MathML, WML apod. - ale jen strucne. XSL(T), DTD apod. budou nasledovat stejne jako DOM, SAX, expat apod.

BEDA



25. 1. 2001 9:56

Mamut (neregistrovaný)

Ja by som skor privital clanok o jednotlivych parseroch pouzivany na XML - XSLT transformacnych procesoroch. (napr. Sablotron) a potom ako tvorit spravne XSLT za pomoci Xpath (W3C). Nastastie samotne XML je desne jednoduche a tento clanok ho dostatocne vysvetlil. Jedno tlive standardy si aj tak kazdy najde sam ked ich bude potrebovat (MathML,WML, VoiceML) malokoho myslim bude zaujimat ako sa popisuju matematicke vztahy v MathML ked to potrebuje najde si to. http://www.oasis-open.org/.
Zaujimave…

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla