XML
XML (ang. Extensible Markup Language) – uproszczony, rozbudowywalny język znaczników opracowany w 1998 roku przez World Wide Web Consortium (W3C). Jego głównym celem jest umożliwienie przechowywania i wymiany danych w sposób czytelny zarówno dla ludzi, jak i dla maszyn, przy zachowaniu struktury hierarchicznej.
Historia
XML wywodzi się z SGML – standardu definiującego języki znaczników. W latach 1995–1997 obserwowano rosnącą potrzebę prostszego języka, który mógłby być używany w aplikacjach internetowych i wymianie danych pomiędzy różnymi systemami operacyjnymi. Projekt XML został rozpoczęty w 1998 roku, a pierwsza wersja standardu ISO 8879:1998 została opublikowana w 1998 roku.
Podstawowe zasady
- Dokument XML jest dokumentem tekstowym kodowanym najczęściej w Unicode (UTF‑8, UTF‑16).
- Struktura dokumentu jest drzewiasta – każdy element może zawierać podelementy i atrybuty.
- Dokument musi być dobrze uformowany (well‑formed): musi posiadać jedną korzeniową etykietę, wszystkie znaczniki muszą być poprawnie otwarte i zamknięte oraz muszą być odpowiednio zagnieżdżone.
- Możliwość walidacji względem schematu (DTD, XML Schema, Relax NG) zapewnia, że dokument spełnia określone reguły strukturalne.
Składnia
<?xml version="1.0" encoding="UTF-8"?>
<książka>
<tytuł>Przykładowy tytuł</tytuł>
<autor>Jan Kowalski</autor>
<rok wydania="2024"></rok>
</książka>
W powyższym przykładzie:
- Linia deklaracji określa wersję XML i kodowanie.
- Element
<książka>jest korzeniem. - Atrybut
wydaniaw elemencie<rok>jest przykładem atrybutu XML.
Walidacja i schematy
Walidacja dokumentu XML może odbywać się przy użyciu:
- Document Type Definition (DTD) – najstarszy mechanizm definiowania struktury.
- XML Schema Definition (XSD) – oparty na XML, obsługuje typy danych, przestrzenie nazw i bardziej złożone reguły.
- Relax NG – prostszy i bardziej elastyczny język schematów.
Technologie pokrewne
XML jest bazą dla wielu innych standardów i technologii:
- XSLT – język transformacji dokumentów XML.
- XPath – język zapytań służący do nawigacji po drzewie XML.
- XQuery – język zapytań i transformacji podobny do XPath, ale bardziej rozbudowany.
- SOAP – protokół wymiany wiadomości oparty na XML, używany w usługach sieciowych.
- RSS i Atom – formaty kanałów informacyjnych.
- AJAX – technika pozwalająca na asynchroniczną wymianę danych XML między przeglądarką a serwerem.
Zastosowania
XML znajduje zastosowanie w wielu dziedzinach:
- Web services – wymiana danych pomiędzy aplikacjami.
- Konfiguracja oprogramowania – pliki konfiguracyjne (np.
pom.xmlw Maven). - Przechowywanie danych – jako format wymiany i archiwizacji (np. Office Open XML).
- Dokumenty techniczne – DocBook, DITA.
- Mapowanie danych – XSLT do konwersji między formatami (np. XML → HTML).
Przyszłość i alternatywy
Mimo rosnącej popularności JSON, XML nadal jest szeroko stosowany w aplikacjach wymagających silnej walidacji i rozbudowanych schematów. Współczesne projekty często wykorzystują oba formaty, wybierając ten, który lepiej spełnia określone wymagania.