Co je XML

XML (Extensible Markup Language) je textový formát pro zápis strukturovaných dat. Tahle kapitola vysvětluje, co XML je a co není, z čeho se dokument skládá a kde se s ním setkáš.

Autor: Aktualizováno

XML jednou větou

XML je značkovací jazyk: data se v něm obalují do pojmenovaných značek, takže je z textu vidět, co která hodnota znamená. Soubor je obyčejný text, který otevřeš v jakémkoli editoru, a přitom ho spolehlivě přečte program v libovolném programovacím jazyce.

adresar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Jednoduchý adresář -->
<adresar>
  <kontakt id="k1">
    <jmeno>Jana Nováková</jmeno>
    <email typ="pracovni">jana@example.cz</email>
    <telefon>+420 601 123 456</telefon>
  </kontakt>
  <kontakt id="k2">
    <jmeno>Petr Svoboda</jmeno>
    <email typ="soukromy">petr@example.cz</email>
  </kontakt>
</adresar>

Z ukázky je bez dalšího vysvětlování jasné, že jde o adresář se dvěma kontakty a že Jana má pracovní e-mail. Právě tahle samopopisnost je hlavní důvod, proč se XML rozšířilo: data nesou svůj význam s sebou.

„Extensible“ (rozšiřitelný) znamená, že XML nemá žádný pevný seznam značek. Názvy <adresar> nebo <kontakt> jsme si vymysleli. XML samo určuje jen pravidla zápisu; konkrétní slovník značek si definuje každý formát zvlášť.

Co XML není

  • Není to programovací jazyk. XML nic nepočítá ani nevykonává, jen popisuje data. Co se s nimi stane, rozhoduje program, který soubor čte.
  • Není to náhrada HTML. HTML určuje, jak se má stránka zobrazit, a jeho značky mají pevný význam. XML popisuje, co data znamenají, a o vzhledu neříká nic.
  • Není to databáze. XML je formát souboru nebo zprávy. Pro ukládání a vyhledávání ve velkém objemu dat se používají databáze, XML slouží hlavně k výměně dat mezi nimi.
VlastnostHTMLXML
Účelzobrazení stránky v prohlížečipopis a přenos dat
Názvy značekpevně dané specifikací (p, div, table…)libovolné, podle popisovaných dat
Chybný zápisprohlížeč ho tiše opravíparser zpracování ukončí chybou
Velikost písmenna názvech značek nezáležírozlišuje se (Polozka ≠ polozka)
Uzavírání značeku některých prvků nepovinnévždy povinné

Z čeho se XML dokument skládá

Každý XML dokument je strom: jeden kořenový element obaluje všechny ostatní a ty se do sebe dál vnořují. Kromě elementů se v dokumentu mohou objevit tyto prvky:

Elementzákladní stavební prvek: otevírací značka, obsah a uzavírací značka
Atributdvojice název a hodnota uvnitř otevírací značky
Textznaková data mezi značkami
Komentářpoznámka pro člověka; není součástí dat, parser ji aplikaci předat nemusí
XML deklaraceverze a kódování, smí stát jen úplně na začátku souboru
CDATAblok textu, ve kterém se nerozpoznávají značky
Instrukce pro zpracovánípokyn pro aplikaci, např. připojení stylu
Entitazástupný zápis znaku, např. &lt; pro <

Podrobný rozbor syntaxe s barevně označenou ukázkou najdeš v sekci Anatomie XML dokumentu na úvodní stránce, pravidla správného zápisu v kapitole Jak funguje XML.

Stručná historie

XML vzniklo ve W3C jako zjednodušená podmnožina staršího jazyka SGML, který se od 80. let používal hlavně pro rozsáhlou technickou dokumentaci. SGML bylo mocné, ale složité na implementaci; cílem XML bylo zachovat jeho sílu a zároveň umožnit napsat parser za pár dní.

  • 1998 — W3C vydalo doporučení XML 1.0.
  • 1999 — přibyly jmenné prostory (Namespaces in XML), XPath 1.0 a XSLT 1.0.
  • 2001 — W3C XML Schema (XSD) pro popis struktury a datových typů.
  • 2004 — vyšlo XML 1.1, které se ale v praxi téměř nepoužívá; většina dokumentů zůstává u verze 1.0.
  • 2008 — páté, dosud aktuální vydání XML 1.0.

Na přelomu tisíciletí se XML používalo prakticky na všechno včetně webových API. Tam ho později z velké části vytlačil úspornější JSON, ale v dokumentech, kancelářských formátech, výměně dat mezi institucemi a v konfiguraci zůstalo standardem. Srovnání obou formátů najdeš v kapitole XML vs JSON, celou časovou osu XML i JSON v historii XML a JSON.

Kde se s XML setkáš

I když XML soubor možná nikdy vědomě neotevřeš, používáš ho denně. Na XML stojí mimo jiné tyto formáty:

Formáty jako SVG nebo RSS jsou „slovníky“ XML: dodržují jeho pravidla zápisu a k tomu definují vlastní sadu značek. Aby se slovníky z různých zdrojů nepletly, používají jmenné prostory. V XML zveřejňují data i české instituce, například kurzy ČNB, Registr smluv nebo RÚIAN, viz veřejná data v XML.

Co dál

Pokud chceš XML číst nebo psát, pokračuj kapitolou Jak funguje XML, kde se dozvíš, co se s dokumentem děje při načtení a proč parser odmítne i drobnou chybu. Vlastní dokument můžeš hned vyzkoušet ve validátoru.