XML
XML (ang. eXtensible Markup Language) jest językiem znaczników opracowanym w celu ułatwienia wymiany i przechowywania danych w formacie czytelnym zarówno dla ludzi, jak i dla maszyn. XML jest standardem opracowanym przez W3C i został opublikowany po raz pierwszy w 1998 roku.
Historia
Początkowo XML wywodzi się z języka SGML (Standard Generalized Markup Language), który został opracowany w latach 80. XX‑wieku. W 1996 roku W3C rozpoczęło prace nad uproszczoną wersją SGML, co doprowadziło do powstania XML 1.0. Pierwsza wersja specyfikacji została przyjęta 10 lutego 1998 roku. Następnie publikowano kolejne edycje (1.1 w 2001 r., 1.1 w 2004 r.), które wprowadzały niewielkie zmiany, m.in. obsługę znaków Unicode oraz dodatkowe reguły walidacji.
Podstawowe założenia
- **Rozszerzalność** – użytkownik może definiować własne znaczniki (elementy) i atrybuty, dostosowując język do konkretnej dziedziny.
- **Dobre wsparcie dla struktury hierarchicznej** – dokumenty XML są drzewiastą strukturą węzłów, co ułatwia modelowanie złożonych danych.
- **Niezależność od platformy i języka programowania** – każdy system, który potrafi parsować XML, może go wykorzystać.
- **Zgodność z Unicode** – wszystkie dokumenty XML muszą być kodowane w Unicode, co zapewnia obsługę znaków spoza zestawu ASCII.
Struktura dokumentu XML
Każdy poprawny dokument XML składa się z:
- Deklaracji XML (opcjonalnej), np.:
<?xml version="1.0" encoding="UTF-8"?> - Jednego elementu korzenia, który zawiera wszystkie pozostałe elementy.
- Elementów i atrybutów zdefiniowanych przez użytkownika.
Przykładowy prosty dokument XML:
<?xml version="1.0" encoding="UTF-8"?>
<książka isbn="978-83-123456-7-8">
<tytuł>Podstawy programowania</tytuł>
<autor>Jan Kowalski</autor>
<rok>2022</rok>
</książka>
Walidacja
Aby zapewnić zgodność dokumentu z określonym modelem danych, można go walidować przy użyciu:
- DTD (Document Type Definition) – starsza metoda definiująca strukturę i typy danych.
- XML Schema (XSD) – bardziej rozbudowany i typowany sposób definiowania schematu.
- RELAX NG – alternatywny język schematów, zapewniający większą prostotę.
Technologie oparte na XML
W ekosystemie XML istnieje szereg pokrewnych technologii, które umożliwiają przetwarzanie, transformację oraz zapytania do dokumentów:
- XPath – język wyrażeń służący do nawigacji po drzewie XML.
- XSLT (eXtensible Stylesheet Language Transformations) – język transformacji, umożliwiający przekształcenie jednego dokumentu XML w inny (np. w HTML, tekst, inny XML).
- XQuery – język zapytań do baz danych i kolekcji XML, rozszerzający możliwości XPath.
- SOAP – protokół wymiany wiadomości w architekturze web services oparty na XML.
- RSS i Atom – formaty syndykacji treści internetowych.
Zastosowania
XML znajduje zastosowanie w wielu dziedzinach, m.in.:
- Przechowywanie i wymiana danych w systemach ERP i CRM.
- Konfiguracje oprogramowania (np. pliki
*.xmlw aplikacjach Java, .NET). - Definicje interfejsów web services (WSDL).
- Dokumenty techniczne i publikacje (np. DocBook, OpenDocument).
- Formaty wymiany danych w branżach specjalistycznych: medycyna (HL7), finanse (FIX), geoinformacja (GML).
Alternatywy i współczesne tendencje
Choć XML wciąż jest szeroko stosowany, w ostatnich latach rośnie popularność formatu JSON, który jest lżejszy i łatwiejszy do przetworzenia w aplikacjach JavaScript. Niemniej jednak, XML pozostaje niezbędny w środowiskach wymagających rozbudowanej walidacji i schematów, a także w dziedzinach, w których utrzymano długotrwałe standardy.
Obsługa w programowaniu
Większość języków programowania udostępnia biblioteki do parsowania i generowania XML, np.:
- Java –
javax.xml,DOM,SAX,StAX. - C# –
System.Xml,XmlDocument,XmlReader. - Python –
xml.etree.ElementTree,lxml. - PHP –
SimpleXML,DOMDocument.
Typy MIME
Standardowe typy MIME dla dokumentów XML to:
application/xmltext/xml(starszy, mniej zalecany)- Specyficzne typy dla podtypów, np.
application/rss+xmldla RSS.
Wersje i rozwój
Obecnie najpowszechniej używaną wersją jest XML 1.1. Wersja 1.0 pozostaje w użyciu ze względu na szeroką kompatybilność. Prace nad dalszym rozwojem języka są prowadzone w ramach grup roboczych W3C, ale nie planuje się fundamentalnych zmian w samej składni.
Podsumowanie
XML jest uniwersalnym, otwartym i rozbudowanym standardem do reprezentacji danych w formacie tekstowym. Dzięki własnościom takim jak rozszerzalność, silna walidacja oraz wsparcie szerokiego ekosystemu narzędzi, XML utrzymuje się jako kluczowa technologia w dziedzinie wymiany danych, mimo rosnącej popularności lżejszych formatów.