XML 1.1
XML 1.1 jest drugą wersją standardu XML (Extensible Markup Language), opublikowaną przez W3C w 2004 roku. Wersja ta wprowadza szereg zmian i poprawek w stosunku do pierwotnej specyfikacji XML 1.0, z głównym celem zwiększenia zgodności z nowoczesnymi systemami kodowania znaków oraz usunięcia niektórych ograniczeń technicznych.
Historia
Rozwój XML rozpoczął się w latach 90., a pierwsza wersja, XML 1.0, została przyjęta w 1998 roku. Już wkrótce po wdrożeniu pojawiły się doniesienia o problemach z obsługą niektórych znaków Unicode oraz trudnościami w przetwarzaniu dokumentów w językach używających rzadkich kodowań. W odpowiedzi na te wyzwania W3C opracowało XML 1.1, które zostało opublikowane jako Recommendation w kwietniu 2004 roku.
Kluczowe zmiany względem XML 1.0
- Rozszerzony zestaw znaków – Unicode 4.0 wprowadzono możliwość użycia znaków spoza zakresu 0x100–0x10FFFF, w tym niektórych znaków sterujących, które w XML 1.0 były zabronione.
- Nowe zasady nazewnictwa znaków – wprowadzono możliwość użycia znaków kontrolnych
#x1–#x1Foraz#x7F–#x9Fw nawiasie atrybutów i treści, pod warunkiem, że nie są one znakami niedozwolonymi. - Ulepszone reguły nazewnictwa nazw – dopuszczono znaki
#x100–#x10FFFFw nazwach elementów i atrybutów, co umożliwiło tworzenie dokumentów w językach z bardziej skomplikowanymi alfabetami. - Zmiany w deklaracji wersji – dokument może deklarować wersję
1.1w nagłówku<?xml version="1.1"?>, co informuje parser o stosowaniu reguł tej wersji. - Dodatkowe informacje o kompatybilności – wprowadzono mechanizm
xml:versionixml:encodingumożliwiający parsowanie dokumentów mieszanych pod względem wersji.
Struktura dokumentu XML 1.1
Podstawowa składnia dokumentu XML 1.1 jest identyczna z XML 1.0 i składa się z:
- Opcjonalnego prologu z deklaracją wersji i kodowania.
- Elementu korzenia (
<root>…</root>). - Wewnętrznych elementów, atrybutów i treści tekstowej.
Przykład minimalnego dokumentu XML 1.1:
<?xml version="1.1" encoding="UTF-8"?> <note> <to>Jan</to> <from>Anna</from> <message>Witaj świecie! </message> </note>
Kodowanie znaków i Unicode
W XML 1.1 zalecane jest używanie kodowania UTF-8 lub UTF-16, które w pełni obsługują zakres Unicode 0–10FFFF. Dzięki temu dokumenty mogą zawierać znaki pochodzące z praktycznie każdego języka świata, w tym znaki rzadkie, emoji oraz symbole techniczne.
Kompatybilność i wsparcie
Większość współczesnych parserów XML (np. Xerces, libxml2) oferuje obsługę zarówno XML 1.0, jak i XML 1.1. Jednak nie wszystkie aplikacje domyślnie włączają tryb 1.1, dlatego zaleca się wyraźne określenie wersji w prologu dokumentu.
W praktyce XML 1.1 jest rzadziej stosowane niż XML 1.0, głównie z powodu szerokiej kompatybilności pierwszej wersji i braku konieczności korzystania z rozszerzonych możliwości znakowych w typowych zastosowaniach biznesowych.
Zastosowania
Standard XML 1.1 znajduje zastosowanie w:
- Systemach publikacji wielojęzykowych, które muszą obsługiwać znaki spoza BMP.
- Projektach naukowych, w których wymagana jest dokładna reprezentacja znaków technicznych i matematycznych.
- Archiwizacji danych historycznych, gdzie niektóre stare kodowania wymagają konwersji do pełnego zakresu Unicode.
Kontrowersje i krytyka
Choć XML 1.1 przyniosło istotne usprawnienia, spotkało się również z krytyką:
- Niektórzy twierdzili, że wprowadzenie nowych znaków kontrolnych może zwiększyć ryzyko ataków typu XML Injection.
- Utrzymanie podwójnej wersji specyfikacji (1.0 i 1.1) zwiększyło złożoność implementacji parserów.
- W większości przypadków korzyści płynące z XML 1.1 nie były wystarczające, aby uzasadnić migrację istniejących systemów.
Podsumowanie
XML 1.1 jest ważnym krokiem w rozwoju języka znaczników, umożliwiającym pełniejsze wykorzystanie Unicode i eliminującym niektóre techniczne ograniczenia pierwowzoru. Mimo że nie zyskał tak szerokiej popularności jak XML 1.0, pozostaje istotnym elementem węzłem w ekosystemie standardów otwartych i jest wykorzystywany w specjalistycznych aplikacjach wymagających maksymalnej elastyczności znakowej.
Artykuł opracowany na podstawie oficjalnej specyfikacji W3C oraz literatury fachowej.