encyklopedia.space

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:

  1. Deklaracji XML (opcjonalnej), np.: <?xml version="1.0" encoding="UTF-8"?>
  2. Jednego elementu korzenia, który zawiera wszystkie pozostałe elementy.
  3. 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 *.xml w 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.:

  • Javajavax.xml, DOM, SAX, StAX.
  • C#System.Xml, XmlDocument, XmlReader.
  • Pythonxml.etree.ElementTree, lxml.
  • PHPSimpleXML, DOMDocument.

Typy MIME

Standardowe typy MIME dla dokumentów XML to:

  • application/xml
  • text/xml (starszy, mniej zalecany)
  • Specyficzne typy dla podtypów, np. application/rss+xml dla 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.