Hlavní navigace

XML - Úvod

23. 1. 2001
Doba čtení: 4 minuty

Sdílet

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.

bitcoin_skoleni

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.

Autor článku

Bedřich Košata je vedoucím Laboratoří CZ.NIC, výzkumného a vývojového centra sdružení CZ.NIC, správce české národní domény.