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.
<?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ů.
<?xml version="1.1"?>
<text></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
<?xml version="1.0"?>
<text>Tabulátor: 	, nový řádek: 
.</text> <?xml version="1.1"?>
<text></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.