Data ostatniej aktualizacji: 25 marca 2025 r.

Tytuł - Czym jest XML: Kompleksowy przewodnik

Czym jest XML?

XML (Extensible Markup Language) to język znaczników i format plików używany do przechowywania, przesyłania i odtwarzania danych. Umożliwia strukturalne podejście do kodowania informacji, dzięki czemu jest zarówno czytelny dla ludzi, jak i maszyn.

Kluczowe cechy XML

1. Określony przez otwarte standardy

  • Ustanowiony przez World Wide Web Consortium (W3C) w 1998 roku zgodnie ze Specyfikacją XML 1.0.
  • Przestrzega ścisłych reguł, aby zapewnić, że dane są dobrze zorganizowane i łatwe do odczytania.

2. Cele projektowe

  • XML został zaprojektowany z myślą o prostocie, ogólności i użyteczności na różnych platformach.
  • Używa formatu tekstowego, który jest łatwy do odczytania i edytowania.

3. Obsługa Unicode

  • XML obsługuje Unicode, co pozwala na przechowywanie i przetwarzanie tekstu w wielu językach.

4. Wszechstronność

  • Początkowo stworzony dla dokumentów, XML jest obecnie szeroko stosowany do reprezentacji danych w różnych dziedzinach, w tym usług sieciowych, API i plików konfiguracyjnych.

5. Schematy i API

  • Struktury XML można definiować za pomocą Document Type Definition (DTD), XML Schema (XSD) lub Relax NG.
  • Różne API, takie jak DOM (Document Object Model) i SAX (Simple API for XML), umożliwiają przetwarzanie XML.

6. Powszechne zastosowania XML

  • Wymiana danych między różnymi systemami (np. usługi sieciowe, API).
  • Pliki konfiguracyjne w aplikacjach programowych.
  • Przechowywanie zorganizowanych informacji (np. kanały RSS, grafiki SVG, formaty dokumentów jak DOCX).
  • Tworzenie stron internetowych (np. XHTML, SOAP, aplikacje oparte na AJAX).

Przegląd XML

1. Główny cel XML: Serializacja

Serializacja w XML oznacza:

  • Przechowywanie danych w ustrukturyzowanym formacie.
  • Przesyłanie danych między różnymi systemami.
  • Odtwarzanie danych w użytecznej formie.

Gdy dwa systemy muszą wymienić informacje, XML zapewnia zstandardyzowany format pliku do interoperacyjności. Działa jako “lingua franca” dla wymiany strukturalnych danych.

2. XML jako język znaczników

XML to język znaczników, co oznacza, że:

  • Oznacza dane tagami dla przejrzystej struktury.
  • Organizuje informacje hierarchicznie.
  • Kategoryzuje dane za pomocą metadanych.

Przykład:

<book>
    <title>Podstawy XML</title>
    <author>John Doe</author>
</book>

Tutaj, <book>, <title> i <author> to tagi, które definiują elementy danych.

3. Schemat XML (XSD) i walidacja

Schemat XML (XSD) definiuje zasady strukturalne dla dokumentów XML.

Dokumenty XML mogą być:

  • Dobrze sformowane → Spełnia podstawowe zasady składni (poprawne zagnieżdżanie, prawidłowe zamykanie tagów).
  • Ważne → Zgodne z zasadami schematu (wymagane elementy, poprawne typy danych).

Przykład zasady XSD:

<xs:element name="title" type="xs:string"/>

To zapewnia, że <title> musi zawierać wartość typu string.

4. Typy mediów XML (RFC 7303)

IETF RFC 7303 definiuje typy mediów XML do przesyłania danych:

  • application/xml → Standardowe dane XML.
  • application/xml-external-parsed-entity → Parsowane jednostki XML.
  • application/xml-dtd → Dokumenty DTD XML.

Dla formatów opartych na XML używa się przyrostka +xml (np. image/svg+xml dla obrazów SVG).

5. XML w aplikacjach sieciowych (RFC 3470 / IETF BCP 70)

IETF BCP 70 (RFC 3470) zawiera najlepsze praktyki dotyczące używania XML w aplikacjach sieciowych, zapewniając płynną interoperacyjność danych między systemami.


1. Zastosowania XML

XML to elastyczny język znaczników zaprojektowany do wymiany danych w Internecie. Jego składnia wpłynęła na liczne formaty dokumentów i protokoły komunikacyjne, czyniąc go technologią fundamentalną w wielu branżach.

Typowe formaty oparte na XML:

  • Kanały sieciowe: RSS, Atom
  • Dokumenty biurowe: Office Open XML, OpenDocument
  • Grafiki i modele 3D: SVG, COLLADA
  • Technologie internetowe: XHTML
  • Protokoły wymiany danych: SOAP, XMPP
  • AJAX: Wykorzystuje XML do asynchronicznej wymiany danych

Standardy branżowe używające XML:

  • Ochrona zdrowia: HL7 (Health Level 7)
  • Branża turystyczna: OpenTravel Alliance
  • Finanse: FpML (Financial products Markup Language)
  • Nieruchomości i kredyty hipoteczne: MISMO
  • Wymiana danych rządowych: National Information Exchange Model

XML w nauce:

W meteorologii XML jest używany do reprezentacji danych pogodowych operacyjnych zgodnie ze standardami IWXXM. Podobnie, Darwin Information Typing Architecture (DITA) to standard XML szeroko stosowany w publikacjach.


2. Kluczowa terminologia XML

Zrozumienie podstawowej terminologii XML jest kluczowe do efektywnej pracy z dokumentami XML.

Znak

Dokument XML to sekwencja znaków Unicode. XML 1.1 pozwala na niemal wszystkie znaki Unicode, z wyjątkiem znaku Null (U+0000), który jest absolutnie zabroniony.

Procesor i aplikacja

  • Procesor XML (lub parser) czyta i analizuje znaczniki XML.
  • Aplikacja otrzymuje zorganizowane dane od procesora i na ich podstawie podejmuje działania.

Markup i zawartość

XML dzieli znaki na markup i zawartość:

  • Markup: Obejmuje elementy, atrybuty i encje (np. <tag> i &amp;).
  • Zawartość: Faktyczne dane wewnątrz elementów.
  • Sekcje CDATA: Pozwalają na tekst, który nie powinien być analizowany jako znacznik, otoczony <![CDATA[ ... ]]>.

Tagi i elementy

  • Tagi: Konstrukcje znaczników otoczone < >.
    • <section> (Tag początkowy)
    • </section> (Tag końcowy)
    • <line-break /> (Bez-elementowy tag)
  • Elementy: Jednostki logiczne zdefiniowane przez tagi.
    • Przykład: <greeting>Cześć, świecie!</greeting>

Atrybuty

Atrybuty zapewniają metadane dla elementów za pomocą par nazwa-wartość. Przykład:

<img src="obrazek.jpg" alt="Opis" />
  • src="obrazek.jpg" i alt="Opis" to atrybuty elementu <img>.

3. Znaki i eskapowanie w XML

Prawidłowe znaki Unicode w XML

Dokumenty XML pozwalają tylko na określone znaki Unicode, aby zapewnić poprawne parsowanie.

Dozwolone znaki w XML 1.0:

  • Znaki sterujące:
    • U+0009 (Tabulator)
    • U+000A (Przejście do nowej linii)
    • U+000D (Powrót karetki)
  • Znaki tekstowe:
    • U+0020–U+D7FF
    • U+E000–U+FFFD
    • U+10000–U+10FFFF

Ulepszenia w XML 1.1:

  • Pozwala na wszystkie U+0001–U+001F znaki sterujące, ale wymagają one, aby były zakodowane.
  • U+0000 (Znak Null) pozostaje zabroniony.

4. Kodowanie w XML

Popularne kodowania XML:

XML obsługuje kodowania oparte na Unicode, w tym:

  • UTF-8 (Zalecane domyślne)
  • UTF-16 (Musi być obsługiwane przez wszystkie parsery XML)
  • ASCII, ISO-8859-X (Stare kodowania)

Deklaracja kodowania w XML:

Nagłówek XML może określać kodowanie:

<?xml version="1.0" encoding="UTF-8"?>
  • Jeśli nie określono kodowania, zakłada się UTF-8.
  • UTF-16 wymaga znaku BOM (Byte Order Mark) do prawidłowego wykrycia.

5. Eskapowanie znaków specjalnych w XML

Ponieważ składnia XML zarezerwowała niektóre znaki, muszą one być ekscapowane, aby uniknąć konfliktów.

Zdefiniowane encje XML:

ZnakZakodowana formaPrzykład
< (Mniejsze niż)&lt;I &lt;3 XMLI <3 XML
> (Większe niż)&gt;x &gt; yx > y
& (Ampersand)&amp;AT&amp;TAT&T
' (Pojedynczy cudzysłów)&apos;"O&apos;Reilly"O’Reilly
" (Podwójny cudzysłów)&quot;She said &quot;hello&quot;She said “hello”

Odwołania do znaków numerycznych:

Dla znaków specjalnych, których nie można wpisać, użyj odwołań numerycznych:

  • Dziesiętne:
    &#20013;  <!-- Chiński znak "中" -->
    
  • Szesnastkowe:
    &#x4E2D;  <!-- Chiński znak "中" -->
    
  • Przykład:
    <message>I &lt;3 J&#xF6;rg</message>
    
    Wyświetla się jako: I <3 Jörg

Obsługa danych binarnych:

XML nie obsługuje surowych danych binarnych. Zamiast tego należy użyć kodowania Base64.


6. Komentarze w XML

Składnia komentarzy XML:

<!-- To jest prawidłowy komentarz XML -->

Zasady dotyczące komentarzy XML:

  • Nie mogą się pojawić przed deklaracją XML.
  • Nie mogą zawierać -- (podwójnego myślnika) wewnątrz komentarza.
  • Odniesienia do encji są ignorowane w komentarzach.

Przykład:

<!-- To jest komentarz z symbolami < i & -->

Podsumowanie

XML to niezbędna technologia dla strukturalnej wymiany danych, wspierająca kanały sieciowe, dokumenty biurowe, dane naukowe i standardy branżowe. Zrozumienie kluczowej terminologii XML, zasad kodowania i mechanizmów eskapowania zapewnia dobrze sformowane dokumenty XML, które działają poprawnie na różnych systemach.

Stosując najlepsze praktyki w kodowaniu i eskapowaniu znaków, programiści mogą unikać błędów parsowania i zapewnić kompatybilność w aplikacjach opartych na XML.