XML

Z Wikipedii

Skocz do: nawigacji, szukaj
Ten artykuł jest częścią serii
World Wide Web


Struktura stron WWW

(X)HTML, XML, XSL


Generowanie dynamicznych stron WWW

ASP, ASP.NET, JSP, PHP, Profile MSP


Po stronie użytkownika

CSS, JavaScript, AJAX, Kolory w Internecie


Przesyłanie danych

HTTP(S), HTTP referrer, Serwer WWW, VoiceXML, XMLHttpRequest


Pojęcia

Architektura informacji, Użyteczność (web-usability), Dostępność (WWW)

XML (ang. Extensible Markup Language, w wolnym tłumaczeniu Rozszerzalny Język Znaczników) to uniwersalny język formalny przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. XML jest niezależny od platformy, co umożliwia łatwą wymianę dokumentów pomiędzy różnymi systemami i znacząco przyczyniło się do popularności tego języka w dobie Internetu. XML jest podzbiorem języka SGML, tj. każdy dokument XML jest też dokumentem SGML. XML jest rekomendowany oraz specyfikowany przez organizację W3C.

Spis treści

[edytuj] Poprawność dokumentu

Mówimy o dokumencie, że jest poprawny składniowo (ang. well-formed), jeżeli jest zgodny z regułami składni XML. Reguły te obejmują m.in. konieczność domykania wszystkich znaczników. Dokument niepoprawny składniowo nie może być przetworzony przez parser XML.

Mówimy o dokumencie, że jest poprawny strukturalnie (ang. valid), jeżeli jest zgodny z definicją dokumentu, tzn. dodatkowymi regułami określonymi przez użytkownika. Do precyzowania tych reguł służą specjalne języki. Najpopularniejszymi są DTD, XML Schema oraz RELAX NG.

Prawidłowo wygenerowany dokument XML powinien być tworzony zgodnie z kilkoma zasadami:

  • powinien zawierać deklarację XML, która może posiadać atrybuty takie jak:
  1. version - określa wersję specyfikacji XML,
  2. encoding – deklaruje zestaw znaków używanych w dokumencie XML, wartością domyślną jest kodowanie unicode „UTF-8”. Dla Polski zaleca się kodowanie „ISO-8859-2”,
  3. standalone – określa tryb dokumentu XML, może przyjmować wartość yes lub no. Jeśli ustawimy wartość na yes to będzie oznaczało, że dokument nie zawiera innych plików, które muszą zostać przetworzone wraz z dokumentem. Może to być np. zewnętrzny arkusz stylów lub definicja DTD;
  • musi zawierać jeden element główny zwany root, w naszym przypadku elementem głównym jest element o nazwie newsy;
  • każdy element musi zaczynać się znacznikiem początku elementu np. <data> oraz kończyć identycznym znacznikiem końca elementu np. </data>, wyjątek stanowią elementy puste (<element-pusty />), czyli takie które nie zawierają żadnych danych, ani innych elementów, mogą zawierać atrybuty;
  • nazwy elementów mogą zawierać znaki alfanumeryczne (litery a-z, A-Z oraz cyfry 0-9), znaki ideograficzne (ą, ó, ń jednak należy unikać takich konstrukcji) oraz 3 znaki interpunkcyjne (podkreślenie _, łącznik -, kropka .). Znak dwukropka zarezerwowany jest dla identyfikacji przestrzeni nazw, której nazwa dopisywana jest przed nazwą elementu np. <przestrzeń1:element>,
  • nazwy elementów nie mogą zaczynać się od znaku łącznika -, kropki, cyfry,
  • elementy można zagnieżdżać w sobie i wtedy każdy element znajdujący się wewnątrz innego elementu jest nazywany „dzieckiem” tego elementu, a element wewnątrz którego znajdują się inne elementy zwany jest „rodzicem” tych elementów, element <newsy> jest rodzicem elementu <news>, element <news> jest dzieckiem elementu <newsy>, a zarazem rodzicem elementów <data>, <autor>, <e-mail>, <tresc>. Nie można stosować konstrukcji takiego typu: <news><data></data><tresc></news></tresc>, ponieważ element <tresc> nie jest prawidłowo zagnieżdżony w elemencie <news>;
  • każdy element może zawierać atrybuty, które definiuje się w znaczniku początku elementu np. atrybutem elementu <news potw=”yes”> jest atrybut o nazwie potw oraz wartości yes. Wartości atrybutów podaje się w cudzysłowach.
  • informacje, które zawiera element muszą być zapisane pomiędzy znacznikiem początku i końca elementu,
  • w danych, atrybutach oraz nazwach elementów nie mogą pojawiać się niektóre znaki. Przykładem może być znak mniejszości (<), lub ampersand (&). Znaków tych nie można używać, ponieważ parsery XML „widząc” np. znak mniejszości wewnątrz elementu stwierdzą, że jest to początek znacznika i dokument zostanie błędnie zinterpretowany. Specyfikacja XML daje możliwość używania takich znaków z wykorzystaniem predefiniowanych odniesień jednostki. Jeśli np. chcemy wstawić znak mniejszości (<) wpisujemy zamiast niego sekwencję < znak ampersand - & znak większości (>) >
  • jeżeli nie chcemy używać predefiniowanych odniesień jednostek możemy część danych, które zawierają np. kod html lub xml zapisać w sekcji danych znakowych, która nie będzie przetwarzana przez analizator składni XML. Znacznik początku sekcji danych znakowych to: <![CDATA[, a znacznik końca:]] >.
  • w dokumencie XML możemy wykorzystywać komentarze, które zaczynają się znakami: <!--, a kończą: -->. Przykład: <!-- To jest komentarz -->,
  • specyfikacja XML zezwala na wstawianie instrukcji przetwarzania, które są wykorzystywane do przeniesienia informacji do aplikacji. Instrukcje przetwarzania rozpoczynają się znakami: <?, a kończą: ?>. Przykładem takiej instrukcji może być odniesienie do arkusza stylów, który jest powiązany z dokumentem XML: <?xml-stylesheet type="text/xsl" href="newsy.xsl"?>.

[edytuj] XML wersja 1.1

Równocześnie z czwartą odsłoną wersji 1.0 W3C opublikowało drugą odsłonę wersji 1.1. Wprowadza ona zmiany w zestawie dopuszczanych znaków, co ma związek z modyfikacjami standardu Unicode przeprowadzanymi już po publikacji wersji 1.0.

Korzyści ze zmian wprowadzonych w nowej wersji są zazwyczaj znikome w porównaniu ze stratą, jaką jest brak zgodności z wersją 1.0. Samo W3C nie traktuje tej wersji jako następcy dla 1.0, raczej jako jego odmianę do bardzo specyficznych zastosowań[potrzebne źródło]. Wciąż zalecane jest korzystanie z wersji 1.0 wszędzie, gdzie to możliwe.

Obie wersje wciąż są wspierane i rozwijane przez W3C, a kolejne ich edycje, jak dotąd, pojawiają się w tym samym czasie.

[edytuj] Przykładowy dokument XML

<?xml version="1.0" encoding="UTF-8"?>
<ksiazka-telefoniczna kategoria="bohaterowie ksiazek">
 <!-- komentarz -->
  <osoba charakter="dobry">
    <imie>Ambrozy</imie>
    <nazwisko>Kleks</nazwisko>
    <telefon>123-456-789</telefon>
  </osoba>
  <osoba charakter="zly">
    <imie>Alojzy</imie>
    <nazwisko>Babel</nazwisko>
    <telefon/>
  </osoba>
</ksiazka-telefoniczna>

Korzeniem dokumentu jest element o nazwie ksiazka-telefoniczna. Ma on przypisany jeden atrybut o nazwie kategoria i wartości bohaterowie ksiazek. Korzeń jest rodzicem dwóch innych elementów, oba mają tę samą nazwę osoba i przypisany atrybut o nazwie charakter. Każdy z elementów o nazwie osoba jest rodzicem dla trzech innych elementów o nazwach imie, nazwisko i telefon, które zawierają konkretne dane w formie węzłów tekstowych (tekst pomiędzy odpowiednimi znacznikami otwierającym i zamykającym). Element o nazwie telefon w dwunastym wierszu dokumentu jest pusty (nie ma żadnych potomków), a znacznik otwierający jest jednocześnie znacznikiem zamykającym. Zapis <telefon/> jest równoważny zapisowi <telefon></telefon>. W trzecim wierszu dokumentu znajduje się komentarz.

Dokument rozpoczyna się instrukcją sterującą, która zawiera informacje o wersji standardu XML, z jakim jest zgodny, oraz o sposobie kodowania znaków. Wszystkie te informacje są opcjonalne, można pomijać dowolne z nich, a nawet całą instrukcję sterującą. W razie braku którejś z danych przyjmuje się wartość domyślną, jakimi są właśnie wersja 1.0 oraz standard kodowania UTF-8.

[edytuj] XML w oknie przeglądarki internetowej

Dokument XML nie precyzuje, jak należy wyświetlać przechowywane w nim dane i większość przeglądarek internetowych, przy próbie wyświetlenia go w swym oknie, potraktuje go jak zwykły tekst. Istnieją jednak łatwe sposoby na prezentowanie dokumentów XML na stronach internetowych w przyjazny dla użytkownika sposób.

Możliwe jest wyrenderowanie dokumentu 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="moj-styl.css"?>

Transformacje XSL umożliwiają konwersję danych do innego formatu, na przykład HTML. Arkusz stylów jest zbiorem reguł określających sposób postępowania wobec każdego węzła dokumentu podczas transformacji. Większość współczesnych przeglądarek wyposażona jest w transformator XSL i wystarczy dodać na początku przetwarzanego dokumentu XML instrukcję sterującą podobną do poniższej:

<?xml-stylesheet type="text/xsl" href="moj-xslt.xslt"?>

XHTML jest językiem HTML przepisanym do postaci XML. Znaczna część przeglądarek potrafi takie strony wyświetlić podobnie do klasycznych stron HTML, Internet Explorer niestety potraktuje je jako zwykłe pliki XML[potrzebne źródło].

[edytuj] Popularne języki i formaty plików oparte na XML

 Z tym tematem związana jest kategoria: Aplikacje XML.
  • OpenDocument - OASIS Open Document Format for Office Applications, dokumenty biurowe
  • SMIL - Synchronized Multimedia Integration Language, opis prezentacji multimedialnych
  • SVG - Scalable Vector Graphics, grafika wektorowa
  • MathML - Mathematical Markup Language, opis formuł matematycznych
  • XAML - Extensible Application Markup Language, GUI w .NET począwszy od wersji 3.0
  • XHTML - Extensible HyperText Markup Language, strony WWW
  • XSL - Extensible Stylesheet Language, przekształcanie XML-i
  • XSLT - XSL Transformations, Przekształcenia Rozszerzalnego Języka Arkuszy Stylów
  • XUL - XML-based User-interface Language, GUI

[edytuj] Zobacz też

Wikisłownik
Zobacz hasło XMLWikisłowniku
Wikibooks
Zobacz publikację na Wikibooks:
XML

[edytuj] Linki zewnętrzne

Utwórz książkę