Čtyři důležité atributy
| Atribut | Význam |
|---|---|
| xml:lang | jazyk obsahu; platí i pro potomky, dokud jej nepřepíší |
| xml:space | záměr aplikace při práci s whitespace: default nebo preserve |
| xml:base | základní URI pro vyhodnocení relativních URI |
| xml:id | identifikátor typu ID podle zpracování xml:id |
URI prefixu xml je http://www.w3.org/XML/1998/namespace. Prefix nemusíš deklarovat a nesmíš ho přiřadit jinému URI. Jiné prefixy naopak nesmí používat tento rezervovaný prostor.
xml:lang
<text xml:lang="cs">Ahoj <citace xml:lang="en">hello</citace>.</text> Jazykový tag používá pravidla BCP 47, například cs nebo en-GB. Atribut určuje jazyk obsahu a hodnot atributů, není příkazem k překladu. Prázdná hodnota značí, že jazyk není určen, a ruší zděděnou informaci. Funkce XPath lang() zohledňuje jazyk předků.
xml:space
<ukazka xml:space="preserve"> dva úvodní prostory
nový řádek</ukazka> Hodnota preserve vyjadřuje záměr zachovat whitespace. Default dovoluje běžné chování aplikace. Atribut nevypíná normalizaci konců řádků ani hodnot atributů podle XML a nezaručuje, že každý formatter nebo renderer zachová původní bajty. Zkontroluj, zda ho konkrétní aplikace respektuje.
xml:base
<katalog xml:base="https://example.cz/data/"><soubor href="cenik.xml"/></katalog> Aplikace, která vyhodnocuje href jako URI a respektuje XML Base, získá adresu https://example.cz/data/cenik.xml. Vnořené xml:base se vyhodnocuje vůči zděděnému základu. Samotný parser nemusí žádný soubor stahovat; atribut href také není univerzálně speciální.
xml:id
<kapitoly><kapitola xml:id="uvod">Úvod</kapitola></kapitoly> Procesor podporující xml:id rozpozná identifikátor bez deklarace ID v DTD. Normalizovaná hodnota musí být NCName a identifikátory mají být v dokumentu jedinečné. Ne každý parser má zpracování xml:id nebo vyhledání přes ID zapnuté; ověř podporu například před použitím XPath id().
Časté chyby
langbez prefixu neníxml:lang.xml:space="true"není povolená hodnota.- xml:base mění kontext relativních adres, ne text atributů.
- Obyčejný atribut
idnení automaticky typu ID.
Obecná pravidla prefixů najdeš v jmenných prostorech.
Dědění na konkrétním příkladu
<dokument xml:lang="cs" xml:base="https://example.cz/navody/">
<odkaz href="uvod.xml"/>
<cast xml:lang="en" xml:base="en/">
<odkaz href="intro.xml"/>
</cast>
</dokument> První odkaz zdědí češtinu a základ https://example.cz/navody/. Aplikace respektující XML Base z něj odvodí https://example.cz/navody/uvod.xml. Druhý odkaz patří anglické části; její relativní xml:base se spojí se základem předka, takže výsledná adresa je https://example.cz/navody/en/intro.xml.
Hodnota href ve stromu zůstává intro.xml. Změnil se kontext jejího vyhodnocení, ne text atributu. Při vyříznutí části dokumentu a přesunu do jiného souboru proto zkontroluj, zda se zachoval jazyk a základní adresa. Pravidla vyhodnocení popisuje XML Base, oddíl 4.