Definicja #
XML (Extensible Markup Language) to standard opracowany przez W3C w 1998 roku, będący uproszczonym podzbiorem SGML. Pozwala na definiowanie własnych znaczników (tagów) opisujących strukturę i semantykę danych.
Podstawowa struktura dokumentu XML:
- Deklaracja XML —
<?xml version="1.0" encoding="UTF-8"?> - Element główny (root) — jeden obowiązkowy element okalający całą zawartość
- Elementy i atrybuty — hierarchiczne znaczniki z opcjonalnymi atrybutami
- Przestrzenie nazw (namespaces) — zapobiegają konfliktom nazw z różnych schematów
Walidacja dokumentu XML odbywa się przez:
- DTD (Document Type Definition) — starszy mechanizm walidacji
- XML Schema (XSD) — nowoczesny, bogaty schemat walidacji z typami danych
Choć XML był dominującym formatem wymiany danych w erze usług webowych SOAP i SOA, w aplikacjach webowych i REST API w dużej mierze zastąpił go JSON — lżejszy i wygodniejszy w JavaScript. XML pozostaje standardem w SOAP, konfiguracji (Maven pom.xml, Spring XML, Android layouts), EDI i systemach korporacyjnych.
Zastosowania #
XML stosuje się do:
- Pliki konfiguracyjne — Maven
pom.xml, Spring, Android layout XML, konfiguracje serwerów - Usługi webowe SOAP — XML jest natywnym formatem wiadomości protokołu SOAP i WSDL
- Wymiana danych w systemach korporacyjnych — EDI, ERP (SAP iDocs), systemy finansowe i ubezpieczeniowe
- Formaty dokumentów — Microsoft Office Open XML (.docx, .xlsx), SVG (grafika wektorowa), XHTML
- Konfiguracja i metadane — RSS/Atom feeds, konfiguracja Ant, TestNG, NUnit
Ścieżka nauki #
XML jest stosunkowo prostą technologią do opanowania. Zacznij od:
- Składnia XML — elementy, atrybuty, komentarze, CDATA, encje (
&,<) - Walidacja przez XSD — definiowanie schematu dokumentu
- Parsowanie w wybranym języku: DOM vs SAX vs StAX (Java),
ElementTree(Python),XmlDocument(C#)
Następnie poznaj:
- XPath — język zapytań do nawigacji po drzewie XML
- XSLT — transformacja dokumentów XML do innego formatu (XML, HTML, tekst)
- Namespace i integracja z SOAP/WSDL
- Porównaj z JSON — zrozum kiedy XML jest lepszy (schemat, namespace, SOAP) a kiedy JSON (REST API, JavaScript)
FAQ #
- Czy XML jest przestarzały?
- XML nie jest przestarzały — jest nadal powszechnie używany w konfiguracjach, SOAP, formatach dokumentów (OOXML) i systemach korporacyjnych. W REST API i nowoczesnych aplikacjach webowych wyprzedził go JSON ze względu na mniejszy rozmiar i prostotę.
- Czym różni się XML od JSON?
- XML jest bardziej rozbudowany: obsługuje atrybuty, namespace, walidację przez XSD i transformacje XSLT. JSON jest lżejszy i bardziej naturalny dla JavaScript. JSON dominuje w REST API, XML w SOAP i systemach korporacyjnych.
- Co to jest XSD?
- XSD (XML Schema Definition) to język definiowania struktury i typów danych dokumentu XML. Umożliwia walidację — sprawdzenie, czy dokument XML jest zgodny z oczekiwanym formatem. Jest nowocześniejszy i bogatszy od starszego DTD.
- Czy znajomość XML jest potrzebna programiście?
- Podstawy XML są przydatne każdemu programiście — szczególnie w Javie (Maven, Spring, Java EE) i .NET (konfiguracje, SOAP). Dogłębna znajomość jest wymagana przy integracji systemów korporacyjnych i pracy z SOAP/WSDL.