XML dla początkujących: Czym jest XML?

Kurs HTML | Czym jest XML? | Pierwszy dokument | Encje | Style CSS | DTD |

O poradniku

W poradniku przedstawimy w jak najbardziej przystępny sposób podstawy języka XML - projekt zakrojony jest na dłuższy czas, zatem prosimy o cierpliwość i wyrozumiałość; nadmiar rozmaitych obowiązków nie pozwoli na jego szybkie ukończenie.

Czym jest XML?

XML zainteresuje zapewne tylko kilka procent webmasterów. Może 10, a może 2, nieważne. Chodzi o podkreślenie faktu, że XML nie jest i zapewne nie będzie masowo używanym językiem tworzenia stron internetowych. Wszyscy ci, którzy budują swoje domowe witryny, prezentując w nich siebie i swoją rodzinę, przyjaciół, wycieczki, domowe zwierzaki, pamiętniki i co tam jeszcze dusza zapragnie, będą mogli z pewnością robić to dalej i nie obawiać się, że przyjdzie grupa jakichś nawiedzonych speców i wywróci wszystko do góry nogami.

Jeśli można zabawić się w proroka, HTML pozostanie podstawowym narzędziem na bardzo długie lata, a może i na zawsze, nawet gdy w Sieci pojawią się języki, o jakich nawet nam się jeszcze nie śni. HTML, z całą swoją rozwichrzoną konstrukcją, przyprawiającą sieciowych magików o palpitacje serca, jest językiem prostym i łatwym, doskonale zaspokajającym potrzeby znacznej większości internetowego społeczeństwa. Twórcy przeglądarek włożyli mnóstwo starań, aby ich produkty były łaskawe dla rozlicznych webmasterskich błędów i tolerowały najdziksze swawole.

XML, czyli eXtensible Markup Language (rozszerzalny język znaczników, zaprojektowany przez World Wide Web Consortium) ma inne zadanie. Przede wszystkim nie jest to język do tworzenia dokumentów, lecz język do tworzenia innych języków. Dopiero te języki służą do budowania dokumentów w Internecie. Języki takie nazywamy aplikacjami XML - zapewne wszystkim znana jest choćby nazwa MathML, czyli aplikacji XML służącej do tworzenia dokumentów zawierających formuły matematyczne. Inną znaną aplikacją jest WAP do wyświetlania internetowej informacji w telefonach komórkowych. Są takie narzędzia, jak GedML (obsługa danych genealogicznych), MusicML (notacja muzyczna), VoiceML (dane głosowe), ThML (teksty teologiczne), VML i SVG (grafika wektorowa), XMLNews (wymiana aktualnych wiadomości), RSS (kanały informacyjne) i inne. Aplikacji takich powstało mnóstwo i są to języki służące biznesowi, naukowcom, wyspecjalizowanym mediom itd.

Oczywiście, najbardziej znaną aplikacją XML jest język XHTML, czyli następca HTML.

Od razu jednak podkreślmy, że KAŻDY może być poważnym twórcą aplikacji XML, jeśli tylko starczy mu wiedzy, czasu i cierpliwości - buławę marszałkowską każdy nosi w swoim tornistrze. Jeśli będzie miał dobry pomysł, jego język może stać się standardem w jakiejś wybranej dziedzinie.

Zapyta teraz ktoś, jakim cudem można tworzyć własny język, skoro to specjaliści zbudowali nam HTML, a wielkie firmy programistyczne zaprojektowały przeglądarki, które ten język interpretują i wyświetlają informacje w żądany sposób. Jakim sposobem można tworzyć coś samemu, w domowym zaciszu, nie oglądając się na to, co powie Microsoft, Netscape, Opera, społeczność Mozilli...?

W zwykłym dokumencie HTML piszemy <h1>Tytuł rozdziału</h1> i wiemy, że przeglądarka wyświetli nam coś takiego:

Tytuł rozdziału

Ale jeśli napiszemy <tytuł>Tytuł rozdziału</tytuł>, to przeglądarka zignoruje ten nasz znacznik, bo go po prostu nie rozpozna:

Oczywiście, tak się stanie w dokumencie HTML. Ale nie w dokumencie XML!

W HTML mamy ograniczony zestaw znaczników, a przeglądarka rozpoznaje je na podstawie wbudowanych w nią definicji typów dokumentów, czyli DTD (np. DTD dla HTML 4.01). Jeśli znacznika nie ma w definicji, po prostu go ignoruje (kto nie z nami, ten przeciw nam...).

W XML to TY tworzysz własny zestaw znaczników, a przeglądarka posłusznie wyświetla je w żądany sposób - dba o to procesor XML. Jeśli życzysz sobie, aby twoja aplikacja miała znaczniki <tytuł></tytuł>, <imię_psa></imię_psa>, <kolor_włosów></kolor_włosów>, przeglądarka musi to uwzględnić.

Oto dlaczego mówimy "rozszerzalny język znaczników". Nie ma już ograniczenia do nic nie mówiących <p>, <h1>, <ul> - możemy wymyślić nazwy znaczników, które coś mówią czy coś wskazują.

Oto przykład dokumentu XML (rozszerzenie .xml), który zawiera wyłącznie hierarchiczną strukturę danych i żadnego formatowania. Dane są wyświetlane w postaci drzewa. W takim dokumencie struktura danych jest całkowicie oderwana od formatowania, w przeciwieństwie do HTML, gdzie formatowanie jest wbudowane w polecenia. Zauważ, że drzewo możesz zwijać i rozwijać. Do oglądania dokumentów polecamy jak najnowsze wersje przeglądarek, przede wszystkim Firefoksa, ewentualnie Opery i Internet Explorera (w tych ostatnich możliwe są błędy w wyświetlaniu - w Operze nie wyświetlają się kody źródłowe, a w IE są kłopoty z akceptacją polskich znaków w nazwach elementów).

Przyklad001.xml

A teraz ten sam dokument, który zawiera formatowanie za pomocą arkusza stylów. Hierarchia nie jest już widoczna.

Przyklad002.xml

Zawartość zewnętrznego arkusza CSS, który formatuje dokument XML:

zwierzaki {
 font-family: Verdana, Arial
}
pies {
display: block;
font-size: 14pt;
font-weight: bold;
padding: 10px;
background-color: #FFCC00;
}
kot {
display: block;
font-size: 14pt;
font-weight: bold;
padding: 10px;
background-color: #66FF00;
}
królik {
display: block;
font-size: 14pt;
font-weight: bold;
padding: 10px;
background-color: #CCFFFF;
}

Oczywiście XML to daleko więcej niż możliwość budowania własnych znaczników. Jak twierdzą specjaliści, XML jest przede wszystkim narzędziem do wymiany informacji między maszynami, co w dobie globalizującego się świata ma szczególną wagę. Nic dziwnego, że XML jak burza wdziera się do oprogramowania i jest uważany za jedną z najważniejszych technologii świata komputerów, o ogromnej przyszłości.

Pierwsze prace podjęto w 1996 roku - wtedy właśnie powstawał nasz kurs HTML :-) - rezultaty prac zaprezentowano w 1998 roku, w roku 2000 wniesiono poprawki. Od tej chwili obowiązuje specyfikacja XML 1.0. W listopadzie 2002 roku pojawiła się rewizja 1.1 czekająca na rekomendację. Specyfikację starają się gonić przeglądarki, doskonaląc wbudowane w nie procesory XML. Jeśli przypomnieć sobie, jak długo trwa wbudowanie interpretacji HTML i CSS - ta ostatnia jest ciągle jeszcze wysoce niedoskonała - zapewne mamy przed sobą długie lata sukcesywnego implementowania rozwijającego się standardu XML i wszystkich współpracujących z nim standardów "okołoXMLowych". Już teraz jednak ci, którzy mogą zetknąć się z tą problematyką w pracy zawodowej, powinni ją stopniowo poznawać.

W naszym poradniku zaprezentujemy kurs XML dla początkujących, sugerując zaglądanie do dobrej literatury, która pojawiła się w ostatnich latach. Zawsze możesz sięgnąć do wyszukiwarki w Wydawnictwie Helion, które przoduje w webmasterskiej tematyce:

Książki o XML w Helionie