XML

XML (eXtensible Markup Language, rozszerzalny język znaczników) opracowany przez World Wide Web Consortium (W3C) jest uniwersalnym językiem przeznaczonym do zapisu danych w ustrukturalizowany sposób. Podobnie jak HTML jest on niezależny od platformy, co umożliwia swobodną wymianę dokumentów między różnymi systemami.

XML jest językiem opisu obiektów w postaci pliku tekstowego. Opis składa się z dwóch części: właściwego opisu obiektów oraz ramowego opisu potencjalnie możliwych obiektów. Opis obiektu ma postać:

<typ-obiektu lista-parametrów>wnętrze obiektu</typ-obiektu>.

Wnętrzem obiektu może być tekst i (lub) inne obiekty.

Każdy dokument XML powinien być zbudowany w następujący sposób:

  • prolog, w którym należy określić używaną wersję języka XML, typ dokumentu oraz opcjonalnie - DTD (Document Type Definition). DTD zawiera definicje wszystkich elementów występujących w dokumencie; na jego podstawie programy interpretujące mogą ocenić poprawność składniową dokumentu XML,
  • zawartość, czyli właściwą (użytkową) treść dokumentu.

Tworzenie opisu dokumentu w XML wymaga przestrzegania pewnych reguł. Reguły te wymuszają m.in. umieszczanie wszystkich wartości atrybutów w cudzysłowach, stosowanie znacznika otwierającego wraz zamykającym lub oznaczenie pustego elementu (<element/>).

Istotnym elementem XML-a jest stosowanie języka schematów XML do opisu struktury i zawartości dokumentu XML (m.in. w celu dokonania walidacji podczas wymiany danych). Istnieje kilka języków schematów dla XML, m.in. DTD (Document Type Definition) i jego następca rozwijany przez W3C - XML Schema.

Takie cechy XML jak otwartość standardu, niezależność od platformy sprzętowej, rozszerzalność i łatwość transformacji oraz zgodność z HTML zdecydowały o wykorzystaniu XML w następujących obszarach:

  • Opis zasobów. XML pozwala na tworzenie czytelnych i łatwych w przetwarzaniu deskryptorów zasobów sieciowych. Dość dobrze nadaje się do opisu wiedzy w postaci ontologii. Standard RDF (Resource Description Framework) bazuje na XML-u oraz URI (odsyłaczach do zasobów). WDSL (Web Services Description Language) wykorzystuje XML do opisu punktów dostępu do usług sieciowych (Web Services),
  • Reprezentacja informacji semistrukturalnej. XML bardzo dobrze nadają się do zapisu dokumentów w postaci częściowo ustrukturalizowanej,
  • Multimedia. XML znalazł zastosowania związane z multimediami m.in. w dwóch aspektach: bezpośredniego zapisu multimediów (np. w uniwersalnym formacie dwuwymiarowej grafiki wektorowej SVG (Scalable Vector Graphics)) oraz sterowania przetwarzaniem informacji multimedialnej (np. SMIL (Synchronized Multimedia Integration Language)),
  • Specjalistyczne struktury danych. Jednym z pierwszych zastosowań XML-a było tworzenie specjalistycznych struktur do przekazywania wiedzy z danej dziedziny naukowej. Nadal powstają i rozwijają się różne dialekty, np. MathML (Mathematical Markup Language) służący do opisywania wzorów i symboli matematycznych, MusicXML (znacznikowy format prezentacji graficznej notacji muzycznej) czy CML (Chemistral Markup Language) służący do opisu wyrażeń stosowanych w chemii,
  • Elektroniczna wymiana danych (EDI). Jak dotąd najszerzej XML był stosowany w wymianie elektronicznej danych i dokumentów. XML ułatwia handel elektroniczny typu B2B (business to business) a także integrację oddzielnych systemów informatycznych. Powstały nowsze schematy ułatwiające wymianę danych między firmami, także oparte na XML - m.in. ebXML (electronic business XML),
  • Protokoły komunikacyjne. XML wykorzystuje się w protokołach wymiany komunikatów. Przykładem takich zastosowań jest protokół zdalnego dostępu do obiektów SOAP (Simple Object Acces Protocol), który używa XML do kodowania wywołań,
  • Komunikacja w sferze publicznej. Zarówno w świecie jak i w Polsce obserwuje się znaczne postępy w elektronicznej komunikacji między obywatelami a jednostkami administracji publicznej, w czym standard XML odgrywa znacząca rolę,
  • Tworzenie stron internetowych. Dokument XML nie precyzuje, jak należy wyświetlać przechowywane w nim dane i większość przeglądarek internetowych zaprezentuje go jako zwykły tekst. Możliwe jest jednak wygenerowanie dokumentu XML przy użyciu stylów CSS. W tym celu należy umieścić na początku dokumentu odpowiednią instrukcję sterującą, na przykład: <?xml-stylesheet type="text/css" href="arkusz.css"?>, gdzie arkusz.css to plik zawierający opis formatów dla poszczególnych znaczników XML.  Można użyć także w tym celu języka przekształceń XSLT, który pozwala na przetłumaczenie dokumentów z jednego formatu XML na dowolny inny format zgodny ze składnią XML, np. na stronę WWW XHTML, wzór matematyczny MathML lub zwykły HTML i czysty tekst.