Hlavní navigace

Akta X 0402

Petr Cimprich 2. 3. 2004

V únoru uplynulo už šest let od zveřejnění specifikace XML 1.0 jako doporučení W3C. Možná právě k tomuto výročí si konsorcium načasovalo uvedení dosud největších změn od roku 1998; s definitivní platností je zde XML verze 1.1. Prosadí se tato novinka? Jaké budou důsledky pro běžné uživatele?

XML 1.0, třetí vydání

Malým předkrmem doprovázejícím příchod verze 1.1 je aktualizace specifikace stávající verze 1.0, Extensible Markup Language (XML) 1.0 Third Edition. Tento dokument nepřináší nic převratného, pouze upřesňuje formulace a opravuje nepřesnosti předchozího vydání specifikace, jak se v průběhu času nashromáždily v erratě.

XML 1.1

Doporučení Extensible Markup Language (XML) 1.1 také není úplnou revolucí, ale obsažené změny stačí k tomu, aby dokumenty XML 1.1 nebyly kompatibilní s nástroji pro XML 1.0. Změnila se definice pojmu správná zformovanost (well-formedness). Každý správně zformovaný dokument 1.0 je zároveň správně zformovaným dokumentem 1.1, ale opak není pravdou. Některé korektní dokumenty 1.1 musí být parsery verze 1.0 odmítnuty.

Změny se týkají tří oblastí:

  • Definice standardu Unicode – XML 1.0 – vychází z dobové verze Unicode 2.0. Specifikace sice připouští vývoj Unicodu a přidávání dalších znaků, ale na jiném místě výčtem jmenuje povolené znaky. XML 1.1 již je obezřetnější; neváže se přímo na dnešní Unicode 4.0 a explicitně uvádí pouze znaky, jež nejsou povoleny. Všechny ostatní platné znaky dnešní i budoucích verzí Unicodu jsou v XML 1.1 přípustné.
  • Konce řádků – přibyl nový oddělovač řádků, znak NEL používaný na mainframech IBM.
  • Řídicí znaky – XML 1.0 – ve jménech elementů, atributů a dalších značek připouští pouze omezenou třídu znaků (ASCII a několik málo dalších). XML 1.1 povoluje ve jménech všechny znaky Unicode s výjimkou omezeného počtu výslovně zakázaných znaků.

Na první pohled je zřejmé, že běžný uživatel si v podstatě všimne pouze poslední změny. Jména elementů a atributů v XML 1.1 mohou obsahovat háčky a čárky, řecká písmena a další, v tomto kontextu dosud nevídané znaky.

Jmenné prostory v XML 1.1

Nedílnou součástí XML verze 1.1 je také doporučení Namespaces in XML 1.1. Tento dokument především rozšiřuje obor znaků použitelných v identifikátorech jmenných prostorů, místo URI používá obecnější IRI a doplňuje mechanismus oddeklarování jmenných prostorů.

Infoset, druhé vydání

S XML 1.1 souvisí ještě třetí nová specifikace, XML Information Set, Second Edition. Druhé vydání Infosetu kromě běžných oprav a upřesnění zohledňuje změny, jež přinesla verze 1.1. Změny se týkají pouze pravidel parsování, samotný informační obsah dokumentu je u obou verzí XML stále stejný.

Praktické důsledky

O faktickém přijetí či nepřijetí nové verze XML rozhodnou uživatelé a hlavně výrobci softwaru. V okamžiku, kdy se XML 1.0 stalo doporučením W3C, už byl k dispozici široký výběr použitelných parserů. U verze 1.1 jsou výrobci podstatně zdrženlivější. Autoři Expatu mají v úmyslu podpořit novou verzi XML, ale zatím nemají ani přibližný časový rozvrh. Daniel Veillard zmiňuje podporu XML 1.1 ve svých plánech na další rozvoj knihovny Libxml někdy od loňského podzimu, ale skutek zatím utek. Z open source parserů zatím implementují XML 1.1 (byť jen starší pracovní verzi specifikace) pouze oba apachovské projekty: Xerces-C++ od verze 2.3.0 a Xerces2-Java od verze 2.4.0. Na příchod XML 1.1 zatím nestačily zareagovat ani firmní parsery, podporu dosud ohlásil jen Corel.

Dříve nebo později se asi všechny významné parsery k podpoře verze 1.1 rozhoupou, ale současná situace je poměrně výmluvná. Po XML 1.1 nikdo obzvlášť netoužil ani ho nepotřeboval. Je tady, protože ho příslušná pracovní skupina vyrobila, a zatím budí spíš rozpaky. Uživatelé však musí vzít novou verzi XML alespoň na vědomí. Rozumný postoj by se asi dal shrnout do dvou bodů:

  • Pokud produkujete XML, zůstaňte zatím u verze 1.0. Nástrojů na zpracování verze 1.1 je málo a nejsou dost rozšířené. Konzumenti vašich dokumentů by na vaši přílišnou pokrokovost mohli doplatit. Nemáte-li opravdu vážný důvod k přechodu na XML 1.1, není třeba nic měnit ani dlouhodobě. Všechny budoucí parsery verze 1.1 musí stále podporovat XML 1.0.
  • Pokud zpracováváte XML z různých zdrojů, které nemáte plně pod kontrolou, porozhlédněte se v dohledné době po parseru podporujícím verzi 1.1, případně v tomto ohledu upravte svou aplikaci. Vždy se najde někdo, kdo se nebude řídit doporučením z předchozího bodu.

Změny základních pravidel způsobené XML 1.1 budou muset být postupně brány na vědomí všemi standardy a technologiemi tvořícími širší jádro XML: XPath, XSL, XQuery, XInclude, X-doplňte-si-sami. Nelze například garantovat, že současný procesor XSLT 1.0 navržený pro dokumenty 1.0 korektně zpracuje každý dokument verze 1.1. Může a nemusí, záleží na detailech implementace konkrétního procesoru. Uvidíme, zda W3C bude zpětně upravovat platná doporučení (třeba formou dalšího vydání, viz Infoset), nebo podporu XML 1.1 zabuduje do příštích verzí příslušných specifikací. Buď jak buď, prostoru technologií XML přibyl nový rozměr a vše je zase o malý kousek složitější.

Našli jste v článku chybu?

2. 3. 2004 11:16

Jirka Kosek (neregistrovaný)

Jen bych upřesnil, že různé národní znaky lze používat v názvech elementů i ve verzi XML 1.0. Standard XML 1.0 vyjmenovává poměrně široký rozsah znaků, který však s dalším vývojem Unicode zastaral. Ironicky shrnutý rozdíl mezi 1.0 a 1.1 jde popsat jednou větou: "XML 1.1 dokumenty můžeme vytvářet na mainframech IBM a názvy elmentů zapisovat v etiopštině."

Pro implementátory vidím největší v problém unicodové normalizaci textu (http://www.w3.org/TR/2004/REC-xml11-20040204/#sec-CharNorm). Pokud …

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Root.cz: Pinebook: linuxový notebook za 89 dolarů

Pinebook: linuxový notebook za 89 dolarů

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?