XML: co to je, struktura dokumentu a princip fungování

Autor: IT Sectr Publikováno: 2026-03-08 Doba čtení: 8 min

XML (eXtensible Markup Language) je textový formát pro ukládání a přenos strukturovaných dat pomocí uživatelských značek. Je široce používán v konfiguračních souborech, webových službách a vývoji pro Android. Podle konsorcia W3C zůstává specifikace XML stabilním standardem od roku 2008. XML poskytuje přísnou strukturu dat s možností validace pomocí schémat.

Hlavní body

  • XML — rozšiřitelný značkovací jazyk s uživatelskými značkami pro strukturovaná data
  • Přísná struktura — povinné uzavírací značky, kořenový prvek a validace pomocí XSD
  • Jmenné prostory — mechanismus pro zabránění konfliktům názvů v jednom dokumentu
  • XSLT — transformace XML do jiných formátů: HTML, PDF, CSV
  • Vývoj pro Android — XML se používá pro rozvržení, manifest a zdroje

Co je XML?

XML je značkovací jazyk, který definuje sadu pravidel pro kódování dokumentů ve formátu čitelném pro člověka i stroj. Na rozdíl od HTML nemá XML pevnou sadu značek — vývojář vytváří vlastní značky odpovídající struktuře dat.

XML bylo vyvinuto konsorciem W3C v roce 1996 jako zjednodušená podmnožina SGML (Standard Generalized Markup Language). Hlavním cílem XML je oddělení obsahu od prezentace dat. Na rozdíl od HTML, které popisuje vzhled, XML popisuje strukturu a význam dat.

Klíčovou vlastností XML je rozšiřitelnost. Pokud se v projektu objeví nové typy dat, vývojář jednoduše přidá nové značky bez změny existující struktury. To činí XML vhodným pro dlouhodobé ukládání dat a výměnu mezi různými systémy.

Hlavní oblasti použití XML

  • Vývoj pro Android — soubory rozvržení, manifest, zdroje (strings, colors, themes)
  • Konfigurace — Maven POM, Ant build, webové konfigurace (web.xml)
  • Webové služby — SOAP, XML-RPC, RSS/Atom kanály
  • Tok dokumentů — SVG, DocBook, Office Open XML
  • Databáze — SQL Server (XML type), Oracle, PostgreSQL

Syntaxe a struktura XML

Syntaxe XML je přísnější než HTML. Každá otevírací značka musí mít odpovídající uzavírací značku, atributy jsou v uvozovkách, názvy značek rozlišují velká a malá písmena. Dokument musí mít přesně jeden kořenový prvek obsahující všechny ostatní.

XML dokument může začínat deklarací udávající verzi XML a kódování. Poté následuje kořenový prvek, uvnitř kterého mohou být vnořené prvky, atributy, textový obsah a komentáře. Prázdné prvky se zapisují jako .

xml
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <book id="bk001">
        <title>XML Developer Guide</title>
        <author>John Smith</author>
        <price currency="USD">29.99</price>
        <published>2026-03-15</published>
    </book>
    <book id="bk002">
        <title>Advanced XML Schemas</title>
        <author>Jane Doe</author>
        <price currency="USD">49.99</price>
        </book>
</catalog>

Pravidla dobře formovaného XML

Well-formed XML musí dodržovat základní pravidla: uzavírací značky jsou povinné pro každou otevírací, vnořování je přísné (křížení značek je zakázáno), hodnoty atributů jsou vždy v uvozovkách. Porušení jakéhokoli pravidla činí dokument neplatným a nelze jej parsovat.

  1. Jeden kořenový prvek — dokument má přesně jeden kořen
  2. Správné vnořování — značky se nesmí křížit
  3. Uzavírací značky — povinné pro všechny prvky kromě samouzavíracích
  4. Rozlišování velikosti písmen — <Book> a <book> jsou různé prvky
  5. Uvozovky v atributech — hodnoty atributů v dvojitých nebo jednoduchých uvozovkách

Jmenné prostory a schémata XML

Jmenné prostory XML (XML Namespaces) řeší problém konfliktů názvů, když jsou v jednom dokumentu použity prvky z různých slovníků. Jmenný prostor je určen atributem xmlns s URI, které jednoznačně identifikuje slovník.

XML Schema (XSD) je jazyk pro popis struktury XML dokumentu. XSD určuje, které prvky a atributy jsou povoleny, jejich datové typy, povinnost a omezení. Schémata umožňují automatickou validaci dokumentu před zpracováním, což je kritické pro integrační řešení.

Technologie Účel Příklad
DTD Základní validace struktury Staré, méně možností
XSD Přísná typizace a validace Průmyslový standard
RELAX NG Kompaktní alternativa k XSD Jednodušší a čitelnější než XSD
XSLT Transformace XML do jiných formátů XML do HTML, PDF, CSV
XPath Navigace a výběr uzlů Dotazy do XML stromu

XML v mobilním vývoji

XML hraje klíčovou roli ve vývoji pro Android. Operační systém Android používá XML pro popis uživatelského rozhraní (soubory rozvržení), konfiguraci aplikace (AndroidManifest.xml), zdroje (řetězce, barvy, motivy) a vektorovou grafiku (VectorDrawable). Na iOS se XML používá méně, hlavně pro Storyboard a konfigurační soubory plist.

V Androidu je každá obrazovka aplikace popsána XML souborem s hierarchií View komponent: ConstraintLayout, LinearLayout, TextView, Button. Tento přístup odděluje logiku aplikace od prezentace, což zjednodušuje údržbu a přizpůsobení různým obrazovkám. Zdrojové XML soubory umožňují lokalizaci aplikace bez změny kódu.

Příklad rozvržení Android

Typický soubor rozvržení obsahuje kořenový ConstraintLayout s vnořenými prvky, z nichž každý má atributy umístění, velikosti a stylu. Android kompiluje XML do binárního formátu AXML pro optimalizaci výkonu při spouštění.

xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/welcome"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/click"
        app:layout_constraintTop_toBottomOf="@id/title"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Parsování XML na mobilních platformách

Parsování XML na mobilních platformách se provádí dvěma hlavními přístupy: DOM (Document Object Model) načte celý dokument do paměti jako strom, SAX (Simple API for XML) čte dokument streamově a volá obsluhy událostí. DOM je vhodný pro malé dokumenty, SAX — pro velké soubory s omezením paměti.

Na Androidu jsou k dispozici vestavěné parsery: XmlPullParser pro streamovou analýzu a DocumentBuilder pro DOM přístup. Na iOS se používá Foundation XMLParser s delegátským protokolem. Pro serializaci objektů do XML se často používají knihovny jako SimpleXML v PHP nebo Jackson XML v Javě.

Parsování XML na Android (Kotlin)

V Androidu se doporučuje používat XmlPullParser pro efektivní parsování XML. Parser pracuje v událostním režimu: volá next() pro přechod k dalšímu prvku a vrací typ události (START_TAG, TEXT, END_TAG). To umožňuje zpracování dokumentů libovolné velikosti s minimální spotřebou paměti.

kotlin
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import java.io.IOException

fun parseCatalog(parser: XmlPullParser): List<Book> {
    val books = mutableListOf<Book>()
    var eventType = parser.getEventType()
    var currentBook: Book? = null

    while (eventType != XmlPullParser.END_DOCUMENT) {
        when (eventType) {
            XmlPullParser.START_TAG -> {
                when (parser.getName()) {
                    "book" -> currentBook = Book()
                    "title" -> parser.next()
                    "author" -> parser.next()
                }
            }
            XmlPullParser.TEXT -> {
                currentBook?.apply {
                    title = parser.getText() ?: ""
                }
            }
            XmlPullParser.END_TAG -> {
                if (parser.getName() == "book") {
                    currentBook?.let { books.add(it) }
                }
            }
        }
        eventType = parser.next()
    }
    return books
}

Příklady XML v aplikacích

Příklady použití XML ukazují jeho roli v reálných projektech. Kromě vývoje pro Android se XML používá pro konfiguraci sestavení, popis dat a tok dokumentů. Znalost syntaxe XML je nezbytná pro práci s Maven, SOAP službami a mnoha enterprise nástroji.

Konfigurace Maven (POM)

Soubor pom.xml popisuje projekt Maven: závislosti, pluginy, verze a profily sestavení. Každá závislost je určena značkami groupId, artifactId a version. Maven automaticky načítá uvedené knihovny z repozitářů.

xml
<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>2.9.0</version>
        </dependency>
    </dependencies>
</project>

XML vs JSON: kdy co zvolit

Volba mezi XML a JSON závisí na konkrétních požadavcích projektu. JSON je vhodný pro REST API, mobilní aplikace a konfigurace, kde jsou důležité kompaktnost a rychlost. XML je nenahraditelný v enterprise systémech, toku dokumentů a vývoji pro Android, kde je potřeba přísná validace, jmenné prostory a transformace dat.

XML vítězí ve scénářích s dlouhodobým ukládáním dokumentů. Díky XSD schématům lze XML dokumenty automaticky validovat, což je kritické pro lékařské, finanční a právní systémy. XSLT transformace umožňují generovat HTML, PDF a další formáty z jednoho XML zdroje, což zjednodušuje tok dokumentů.

JSON se stal standardem pro web API a mobilní aplikace. Jednoduchost integrace s JavaScriptem, menší velikost a vysoká rychlost parsování činí JSON preferovanou volbou pro REST API, WebSocket zprávy a konfigurační soubory. U většiny nových projektů se doporučuje začít s JSON a přejít na XML pouze při vzniku specifických požadavků.

Často kladené otázky

Čím se XML liší od HTML?

XML popisuje strukturu a obsah dat, HTML — vzhled a prezentaci. XML umožňuje vytvářet libovolné značky, HTML má pevnou sadu. XML je přísnější v syntaxi: všechny značky musí být uzavřeny, HTML povoluje neuzavřené značky. XML — pro data, HTML — pro zobrazení.

Co je XSD a k čemu slouží?

XSD (XML Schema Definition) je jazyk pro popis struktury XML dokumentu. XSD určuje, které prvky a atributy jsou povoleny, jejich datové typy, povinnost a omezení. Schéma umožňuje automatickou validaci XML dokumentu před zpracováním, čímž předchází chybám a zaručuje integritu dat.

Jak parsovat XML na Androidu?

Na Androidu pro parsování XML použijte XmlPullParser — vestavěný streamový parser. Pracuje v událostním režimu: zpracovává START_TAG, TEXT a END_TAG ve smyčce a efektivně spravuje paměť. Pro malé dokumenty je vhodný DOM parser přes DocumentBuilderFactory, který načte celý dokument do paměti jako strom uzlů.

Jaký je rozdíl mezi DTD a XSD?

DTD (Document Type Definition) je starý validační mechanismus s omezenými možnostmi: nepodporuje datové typy (vše jsou řetězce) ani jmenné prostory. XSD je moderní náhrada s podporou datových typů (čísla, data, výčty), jmenných prostorů a rozšiřitelnosti. XSD samo je XML dokument, DTD používá vlastní syntaxi.

Proč jsou v XML potřeba jmenné prostory?

Jmenné prostory zabraňují konfliktům názvů, když XML dokument kombinuje prvky z různých zdrojů. Například v rozvržení Android může značka View pocházet jak z android.view, tak z knihovny. Atribut xmlns s URI jednoznačně identifikuje zdroj každého prvku a atributu.

Shrnutí

  • XML — rozšiřitelný značkovací jazyk s uživatelskými značkami pro strukturovaná data
  • Přísná syntaxe — povinné uzavírací značky, kořenový prvek, rozlišování velikosti písmen
  • Jmenné prostory a schémata XSD zajišťují validaci a zabraňují konfliktům názvů
  • Android používá XML pro rozhraní, zdroje a konfiguraci aplikace
  • Parsování probíhá přes XmlPullParser (streamově) nebo DOM (do paměti)
  • XSLT umožňuje transformovat XML do HTML, PDF a dalších formátů
  • Menší popularita v REST API ustupuje JSON, ale XML je nenahraditelný v Enterprise a Android

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také