XML

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
World Wide Web

Struktura stron WWW

HTML, XHTML, XML, XSL


Generowanie dynamicznych stron WWW

Active Server Pages, ASP.NET, JavaServer Pages, PHP


Po stronie użytkownika

kaskadowe arkusze stylów, JavaScript, AJAX, kolory w Internecie


Przesyłanie danych

Hypertext Transfer Protocol, HTTPS, HTTP referer, serwer WWW, VoiceXML, XMLHttpRequest


Pojęcia

web design, architektura informacji, użyteczność, dostępność

XML (ang. Extensible Markup Language, w wolnym tłumaczeniu Rozszerzalny Język Znaczników) – uniwersalny język znaczników przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. Jest niezależny od platformy, co umożliwia łatwą wymianę dokumentów pomiędzy heterogenicznymi (różnymi) systemami i znacząco przyczyniło się do popularności tego języka w dobie Internetu. XML jest standardem rekomendowanym oraz specyfikowanym przez organizację W3C[1][2].

XML a SGML[edytuj]

XML stanowi podzbiór SGML-a. W założeniach ma pozwalać na wysyłanie, odbieranie i przetwarzanie danych rdzennego SGML w sferze www – ogólnie, zapewniać interoperacyjność między SGML a HTML[1][2]. W przypadku wspólnie obsługiwanych funkcji, dane dokumenty SGML i XML są równoważne. W przypadku używania funkcji niedozwolonych w XML, możliwa jest transformacja dokumentu z zachowaniem danych[3].

XML 1.0 a 1.1[edytuj]

Różnice dotyczące specyfikacji oraz budowy dokumentów[2]:

  • Dokumenty XML 1.0 są niezgodne z dokumentami XML 1.1 (działa to w obie strony). Do 09.01.2005 parsery XML 1.1 musiały akceptować dokumenty XML 1.0, po zmianie, parsery XML 1.1 muszą być przystosowane do obsługi dokumentów XML 1.0[4].
  • W XML 1.0 zasady konstruowania nazw wskazują wszystkie możliwości (wszystko, co nie jest dozwolone, jest zabronione). W XML 1.1 wskazują zabronione możliwości, dopuszczając wszystkie inne (wszystko, co nie jest zabronione (dla konkretnego powodu) jest dozwolone).
  • XML 1.1 z góry zezwala na korzystanie znaków, które pojawiają się w wersji 4.0 i każdej nowszej. XML 1.0 zezwala na stosowanie znaków ze standardu Unicode do wersji 2.0, z pewnymi wyjątkami (spowodowanymi nieścisłościami w standardzie Unicode 2.0).
  • Dokumenty XML 1.1 stosują zarówno znaki końca linii Unicode, jak i znaki końca linii zgodne z systemami IBM oraz kompatybilnymi z IBM (znak NEL).
  • XML zezwala na korzystanie ze znaków sterujących z zakresu 1-1F (jednak ze względu na ich funkcje, tylko jako referencje znakowe). XML 1.0 nie zezwala na korzystanie z większości z nich.
  • XML 1.1 dokładnie definiuje zestaw ograniczeń dla parsera (tzw. pełna normalizacja), dzięki czemu porównania nazw, atrybutów i zawartości mogą być realizowane poprzez porównanie ciągów binarnych Unicode.
  • W XML 1.1 instrukcje przetwarzania nie mogą się zaczynać ciągiem znaków xml (wielkość liter bez znaczenia) z uwagi na możliwe przyszłe zastosowania. To samo ograniczenie obowiązywało w XML 1.0 do 9.01.2013. Od tej zabronione jest rozpoczynanie instrukcji przetwarzania ciągiem znaków xml- (z dokładnością do wielkości liter)[5].

Poprawność dokumentu[edytuj]

Dokument jest poprawny składniowo (ang. well-formed), jeśli jest zgodny z ogólnymi zasadami XML. Dokument jest dodatkowo poprawny strukturalnie (ang. valid) jeśli jest zgodny z dodatkowymi schematami[1][2]. Najpopularniejszymi językami do tworzenia schematów są DTD, XML Schema oraz RELAX NG[6].

Poprawny składniowo (ang. well-formed) dokument XML powinien być tworzony zgodnie z kilkoma zasadami[1][2]

  • powinien zawierać deklarację XML, która musi być umieszczona na samym początku pliku oraz musi posiadać atrybut version (dopuszczalne wartości to 1.0 albo 1.1) oraz opcjonalnie atrybuty:
  1. encoding – deklaruje zestaw znaków używanych w dokumencie XML, wartością domyślną jest kodowanie UTF-8 w systemie Unicode.
  2. 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;
  3. każdy element musi zaczynać się znacznikiem początku elementu, oraz kończyć identycznym znacznikiem końca elementu, wyjątek stanowią elementy puste, czyli takie, które nie zawierają żadnych danych, ani innych elementów, mogą zawierać atrybuty;
  4. nazwy elementów mogą zawierać znaki alfanumeryczne (litery a–z, A–Z oraz cyfry 0–9) oraz dowolny znak z przedziałów: c0-d6, d8-f6, f8-2ff, 370-37d, 37f-1fff, 200c-200d, 2070, 218f, 2c00-2fef, 3001-d7ff, f900-fdcf, fdfo-fffd, 10000-efffffi. Znak dwukropka zarezerwowany jest dla identyfikacji przestrzeni nazw, której nazwa dopisywana jest przed nazwą elementu.
  5. nazwy elementów nie mogą zaczynać się od znaku łącznika ( - ), kropki, czy cyfry.
  6. 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.
  7. każdy element może zawierać atrybuty, które definiuje się w znaczniku początku elementu.
  8. informacje, które zawiera element, muszą być zapisane pomiędzy znacznikiem początku i końca elementu;
  9. 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 więc chcemy wstawić znak mniejszości (<), wpisujemy zamiast niego sekwencję &lt; (ang. less than), natomiast gdy chcemy wprowadzić znak ampersand (&), wpisujemy – &amp;;
  10. 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: ]]>.
  11. w dokumencie XML możemy wykorzystywać komentarze, które zaczynają się znakami: <!--,, a kończą: -->. Specyfikacja XML zezwala na wstawianie instrukcji przetwarzania, które są wykorzystywane do przeniesienia informacji do aplikacji. Instrukcje przetwarzania rozpoczynają się znakami: <?, a kończą: ?>.

XML w oknie przeglądarki internetowej[edytuj]

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[7][8]:

<?xml-stylesheet href="single-col.css" media="all and (max-width: 30em)"?>

Transformacje XSL umożliwiają konwersję danych do innego formatu, na przykład XHTML. Arkusz stylów jest zbiorem reguł określających sposób postępowania wobec każdego węzła dokumentu podczas transformacji. Na początku przetwarzanego dokumentu XML instrukcję sterującą podobną do poniższej[9][8]:

<?xml-stylesheet type="application/xslt+xml" href="#style1"?>

Przypisy

  1. a b c d TimT. Bray TimT., JeanJ. Paoli JeanJ., C. M.C. M. Sperberg-McQueen C. M.C. M., EveE. Maler EveE., FrançoisF. Yergeau FrançoisF. i inni, Extensible Markup Language (XML) 1.0 (Fifth Edition), www.w3.org, 26 listopada 2008 [dostęp 2016-11-09].
  2. a b c d e TimT. Bray TimT., JeanJ. Paoli JeanJ., C. M.C. M. Sperberg-McQueen C. M.C. M., EveE. Maler EveE., FrançoisF. Yergeau FrançoisF., JohnJ. Cowan JohnJ. i inni, Extensible Markup Language (XML) 1.1 (Second Edition), „www.w3.org”, 29 września 2006 [dostęp 2016-11-09].
  3. JamesJ. Clark JamesJ., Comparison of SGML and XML, www.w3.org, 15 grudnia 1997 [dostęp 2016-11-09].
  4. Errata in REC-xml11-20040204, www.w3.org [dostęp 2016-11-09].
  5. Errata in REC-xml-20081126, www.w3.org [dostęp 2016-11-10].
  6. Eric van derE. Vlist Eric van derE., XML Schema, O'Reilly Media, czerwiec 2002, ISBN 9780596002527 (ang.).
  7. SimonS. Pieters SimonS., JamesJ. Clark JamesJ., Henry S.H. S. Thompson Henry S.H. S., Associating Style Sheets with XML documents 1.0 (Second Edition), 28 października 2010.
  8. a b Blok kodu jest cytatem.
  9. MichaelM. Kay MichaelM., XSL Transformations (XSLT) Version 2.0, 23 stycznia 2007.

Linki zewnętrzne[edytuj]