| 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 referrer, serwer WWW, VoiceXML, XMLHttpRequest
Pojęcia
architektura informacji, użyteczność, dostępność
|
XML (ang. Extensible Markup Language, w wolnym tłumaczeniu Rozszerzalny Język Znaczników) – uniwersalny język formalny przeznaczony do reprezentowania wielorakich danych w strukturalizowany sposób.
XML jest niezależny od platformy, co dopuszcza łatwą wymianę dokumentów pomiędzy heterogenicznymi (różnymi) systemami oraz znacząco przyczyniło się do popularności tego języka w dobie Internetu. XML jest standardem rekomendowanym oraz specyfikowanym przez organizację W3C.
XML a SGML
Koncepcja XML-a opiera się na znacznym uproszczeniu zawiłego SGML-a, co pozwoliło na budowę prostszych parserów (procesorów XML). XML jest podzbiorem standardu SGML eliminując jego zbyt skomplikowany charakter tam gdzie się tylko dało. Przeważajaca ilość dokumentów XML jest także zgodna z SGML, ale nie na odwrót. Istnieją dokumenty XML, które nie są poprawnymi dokumentami SGML (lub też przetwarzane zgodnie z regułami SGML potrafią zostać zinterpretowane wbrew intencji autora) – za sprawą sposobu zamykania pustych znaczników (jak np. <p/>, które w XML-u jest równoważne <p></p>), kolidującego ze skróconą notacją znaczników SGML znaną jako Null End Tag (np. <p/abc/, co w dokumentach SGML bywa równoważne <p>abc</p> albo być niepoprawne, jeśli definicja dokumentu zabrania stosowania NET).
Vide: <p/>abc/ w XML-u odpowiada <p></p>abc/, z tym że w SGML-u <p>>abc</p>. Notabene cecha ta jest jednym z argumentów wysuwanych przeciwko tezie o kompatybilności opartego na XML języka XHTML z opartym o SGML językiem HTML.
Istnieją także inne cechy różniące te dwa metajęzyki.
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 zawierają w sobie m.in. konieczność domykania wszystkich znaczników. Dokument niepoprawny składniowo nie bywa 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.
Poprawny składniowo (ang. well-formed) dokument XML powinien być tworzony zgodnie z kilkoma zasadami:
- powinien zawierać deklarację XML, która musi być umieszczona na samym początku pliku (nie bywa poprzedzona np. komentarzem) oraz musi posiadać atrybut version (dopuszczalne wartości to 1.0 albo 1.1) oraz opcjonalnie atrybuty:
- encoding – deklaruje zestaw znaków używanych w dokumencie XML, wartością domyślną jest kodowanie UTF-8 w systemie Unicode.
- standalone – wyznacza tryb dokumentu XML, może przyjmować wartość yes albo 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 albo definicja DTD;
- musi zawierać dokładnie jeden element podstawowy (zwany root element), w naszym przypadku elementem podstawowym jest element o nazwie
ksiazka-telefoniczna;
- 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, potrafią zawierać atrybuty;
- nazwy elementów potrafią zawierać znaki alfanumeryczne (litery a-z, A-Z oraz cyfry 0-9), znaki ideograficzne (ą, ó, ń, jednak trzeba unikać takich konstrukcjipotrzebne źródło) 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 potrafią zaczynać się od znaku łącznika -, kropki, czy cyfry. Dodatkowo nie potrafią zaczynać się od xml, XML, xML itp. (wielkość liter bez znaczenia).
- elementy da się zagnieżdżać w sobie oraz wtedy każdy element znajdujący się wewnątrz innego elementu jest nazywany "dzieckiem" tego elementu, a element, wewnątrz którego leżą inne elementy, zwany jest "rodzicem" tych elementów. W naszym przypadku element
<newsy> jest rodzicem elementu <news>, element <news> jest dzieckiem elementu <newsy>, a równocześnie rodzicem elementów <data>, <autor>, <e-mail>, <tresc>. Nie da się stosować konstrukcji takiego typu: <news><data></data><tresc></news></tresc>, albowiem 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 głosi się w cudzysłowach albo apostrofach (pojedynczych cudzysłowach).
- informacje, które zawiera element, muszą być zapisane pomiędzy znacznikiem początku oraz końca elementu;
- w danych, atrybutach oraz nazwach elementów nie potrafią pojawiać się pewne znaki. Przykładem bywa znak mniejszości (<), albo ampersand (&). Znaków tych nie da się używać, albowiem parsery XML "widząc" np. znak mniejszości wewnątrz elementu stwierdzą, że jest to początek znacznika oraz 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ąstka danych, które zawierają np. kod html albo 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 bywa odniesienie do arkusza stylów, który jest związany z dokumentem XML: <?xml-stylesheet type="text/xsl" href="newsy.xsl"?>.
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ą zwykle znikome w porównaniu ze stratą, jaką jest niedobór 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 oraz rozwijane przez W3C, a kolejne ich edycje, jak dotąd, pojawiają się w tym samym czasie.
Przykładowy dokument XML
<?xml version="1.0" encoding="UTF-8"?>
<ksiazka-telefoniczna kategoria="bohaterowie książek">
<!-- komentarz -->
<osoba charakter="dobry">
<imie>Ambroży</imie>
<nazwisko>Kleks</nazwisko>
<telefon>123-456-789</telefon>
</osoba>
<osoba charakter="zły">
<imie>Alojzy</imie>
<nazwisko>Bąbel</nazwisko>
<telefon/>
</osoba>
</ksiazka-telefoniczna>
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, da się 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.
Korzeniem dokumentu jest element o nazwie ksiazka-telefoniczna. Ma on przypisany jeden atrybut o nazwie kategoria oraz wartości bohaterowie książek. Korzeń jest rodzicem dwóch innych elementów, oba posiadają tę samą nazwę osoba oraz przypisany atrybut o nazwie charakter. Każdy z elementów o nazwie osoba jest rodzicem dla trzech innych elementów o nazwach imie, nazwisko oraz telefon, które zawierają konkretne dane w formie węzłów tekstowych (tekst pomiędzy odpowiednimi znacznikami otwierającym oraz zamykającym). Element o nazwie telefon w dwunastym wierszu dokumentu jest pusty (nie ma żadnych potomków), a znacznik otwierający jest równocześnie znacznikiem zamykającym. Zapis <telefon/> jest równoważny zapisowi <telefon></telefon>. W trzecim wierszu dokumentu istnieje komentarz.
XML w oknie przeglądarki internetowej
Dokument XML nie precyzuje, jak trzeba wyświetlać przechowywane w nim dane oraz przeważajaca ilość przeglądarek internetowych przy próbie wyświetlenia go w swym oknie potraktuje go jak zwykły tekst. Istnieją jednak proste 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 trzeba umieścić na początku dokumentu odpowiednią instrukcję sterującą, na przykład:
<?xml-stylesheet type="text/css" href="moj-styl.css"?>
Transformacje XSL dopuszczają konwersję danych do innego formatu, dla przykładu XHTML. Arkusz stylów jest zbiorem reguł określających sposób postępowania wobec każdego węzła dokumentu podczas transformacji. Przeważajaca ilość współczesnych przeglądarek wyposażona jest w transformator XSL oraz wystarczy dodać na początku przetwarzanego dokumentu XML instrukcję sterującą podobną do poniższej:
<?xml-stylesheet type="text/xsl" href="moj-xslt.xsl"?>
Linki zewnętrzne
Sprawdź hasło
XML w Wikisłowniku