XML je rozšiřitelný značkovací jazyk, který definuje sadu pravidel pro kódování dokumentů ve formátu čitelném pro lidi i stroje. Na rozdíl od HTML, které je zaměřeno na zobrazení dat, XML je navrženo výhradně pro přenos a ukládání dat.
XML je standardem organizace W3C a tvoří základ mnoha dalších technologií, jako jsou SVG, RSS, SOAP nebo kancelářské formáty (DOCX, XLSX).
Každý XML dokument musí být tzv. „dobře strukturovaný“ (well-formed). To znamená, že musí splňovat následující pravidla:
<tag>…</tag>).<Uživatel> není totéž co <uživatel>).<?xml version="1.0" encoding="UTF-8"?>
<knihovna>
<kniha id="101">
<nazev>Design Patterns</nazev>
<autor>Erich Gamma</autor>
<rok>1994</rok>
</kniha>
<kniha id="102">
<nazev>Clean Code</nazev>
<autor>Robert C. Martin</autor>
<rok>2008</rok>
</kniha>
</knihovna>
Hlavní datové jednotky ohraničené značkami. Mohou obsahovat text, další elementy nebo obojí.
Doplňující informace o elementu zapsané uvnitř počáteční značky (např. id=„101“). Atributy by měly obsahovat metadata, zatímco samotná data patří do elementů.
Zabraňují konfliktům jmen, pokud se v jednom dokumentu kombinují data z různých zdrojů. Definují se pomocí atributu xmlns.
Aby bylo zajištěno, že XML dokument obsahuje správná data ve správném formátu, používají se schémata:
| Technologie | Popis |
|---|---|
| XPath | Jazyk pro navigaci a výběr částí XML dokumentu (např. /knihovna/kniha[1]). |
| XSLT | Jazyk pro transformaci XML do jiných formátů (HTML, PDF, jiný XML). |
| DOM | Model, který načte celé XML do paměti jako stromovou strukturu (náročné na RAM). |
| SAX | Událostmi řízený parser, který čte XML postupně (vhodné pro obří soubory). |
| Vlastnost | XML | JSON |
|---|---|---|
| Lidská čitelnost | Dobrá (upovídaná) | Velmi dobrá (stručná) |
| Velikost souboru | Větší (kvůli uzavíracím značkám) | Menší |
| Datové typy | Vše je text (nutno definovat v XSD) | Podporuje čísla, pole, objekty, boolean |
| Podpora polí | Musí se simulovat opakováním elementů | Nativní podpora [] |
Zajímavost: Formáty Microsoft Office (např..docx) jsou ve skutečnosti přejmenované archivy ZIP, které uvnitř obsahují velké množství propojených XML souborů definujících text, formátování a obrázky.