XML 1.0 vs XML 1.1

XML 1.1 mění především pravidla znaků a konců řádků. Vyšší číslo není důvod k automatické migraci: rozhoduje podpora všech procesorů.

Autor: Aktualizováno

Co znamená verze

Verze v deklaraci určuje pravidla parsování. XML 1.0 (páté vydání) i XML 1.1 (druhé vydání) jsou doporučení W3C. Změna deklarace sama neopraví nepovolené znaky ani nerozšíří schopnosti parseru.

Co znamená verze
<?xml version="1.0" encoding="UTF-8"?>
<zprava>Ahoj</zprava>

Řídicí znaky a řádky

XML 1.0 dovoluje z nízkých řídicích znaků tabulátor, LF a CR. XML 1.1 dovoluje například U+0001 pouze číselným odkazem. NUL (U+0000) zůstává nepovolený v obou verzích. XML 1.1 navíc normalizuje NEL (U+0085) a line separator (U+2028) jako konce řádků.

Řídicí znaky a řádky
<?xml version="1.1"?>
<text>&#x1;</text>

Jména a Unicode

Nesrovnávej XML 1.1 jen s původním vydáním XML 1.0 z roku 1998. Páté vydání XML 1.0 rozšířilo pravidla jmen. Podpora širšího Unicode proto sama neznamená, že potřebuješ XML 1.1.

Kompatibilita a diagnostika

Pro nový výměnný formát zvol XML 1.0, pokud nemáš konkrétní požadavek na 1.1 a ověřenou podporu na straně odesílatele i příjemce. Ukázka s U+0001 výše je pozitivní test pro XML 1.1 a negativní pro 1.0. Parser, který 1.1 nepodporuje, ji může odmítnout už podle deklarace. Online validátor nemusí podporovat 1.1; rozhodující test proveď v cílové knihovně.

Jak ověřit podporu cílového parseru

Platné XML 1.0 i základní přenositelný test
<?xml version="1.0"?>
<text>Tabulátor: &#x9;, nový řádek: &#xA;.</text>
Výhradně XML 1.1: U+0001 musí být číselným odkazem
<?xml version="1.1"?>
<text>&#x1;</text>

Vytvoř dva samostatné soubory a zkus je stejným API i konfigurací, které používáš v aplikaci. Parser odmítající version=1.1 nedokládá chybnou syntaxi tohoto 1.1 vzorku; dokládá nepodporovanou verzi. Naopak parser s podporou 1.1 nesmí přijmout nulový znak jen díky změně deklarace.

XML 1.0 doporučení ve svém pátém vydání má širší pravidla jmen než první vydání z roku 1998. Nesrovnávej proto moderní 1.1 jen s původní 1.0. Pro výměnu souborů je důležitá podpora všech producentů i příjemců, resolverů, validátorů a transformací. Volba 1.1 nemusí odpovídat deklaraci existujícího obchodního standardu.

Verze XML není verze XSD ani namespace aplikačního formátu. Změna XML deklarace neprovede migraci schématu. Přesná pravidla znaků a normalizace jsou ve XML 1.0 a XML 1.1; diagnostiku kódování najdeš v základech syntaxe.