Dlaczego XML?

XML (Extensible Markup Language) to język znaczników, za pomocą którego można tworzyć własne struktury dokumentów, co niezwykle usprawnia proces ich przetwarzania i przygotowania do dalszego wykorzystania. Standard XML został stworzony przez World Wide Web Consortium (W3C) z powodu ograniczeń HTML (Hypertext Markup Language), podstawowego języka wykorzystywanego do tworzenia stron internetowych. Podobnie jak HTML, XML opiera się na opracowanym przez IBM standardzie SGML (Standard Generalized Markup Language). SGML był wykorzystywany w branży wydawniczej od dziesięcioleci, ale ponieważ pozostawał w posiadaniu jednej firmy, koszty jego wykorzystania nierzadko przekraczały potencjalne korzyści. Powstało nawet zabawne tłumaczenie skrótu SGML „Sounds Great, Maybe Later” (Brzmi świetnie, może później). W odpowiedzi na te problemy pojawił się znacznie prostszy i tańszy w wykorzystaniu język XML zaprojektowany głównie z myślą o Internecie, ale świetnie sprawdzający się w tworzeniu każdej innej publikacji prezentowanej w dowolnym formacie. Dzięki niemu możliwe jest tworzenie jednorodnej bazy tekstów kompatybilnej ze wszystkimi dostępnymi na rynku kanałami dystrybucji treści.

Przykładowy dokument HTML

HTML jest najpopularniejszym językiem wykorzystywanym do znakowania tekstu. Jest kompatybilny ze wszystkimi urządzeniami elektronicznymi – od telefonów komórkowych przez tablety, aż po komputery. HTML ma jednak poważne ograniczenia, dlatego konsorcjum W3C opracowało i wprowadziło na rynek nieporównywalnie bardziej funkcjonalny standard XML. Poniższy dokument wyjaśnia, jakie są zasadnicze różnice między formatami HTML i XML:

<p><b>Pan Andrzej Nowak</b>
<br />
Kościuszki 16
<br />
01-234 Warszawa, mazowieckie</p>

HTML został zaprojektowany do wizualizowania treści. Jego głównym celem jest formatowanie tekstu, a nie dzielenie go na merytorycznie wydzielone fragmenty. Stworzona powyżej struktura pokazuje, że chodzi o adres pocztowy, w którym nazwisko wyróżnione jest boldem, a nazwa ulicy i miasta mają się pojawić w nowej linii. Taka struktura nie niesie w sobie żadnej informacji merytorycznej, jedynie typograficzną.

Wizualizacja HTML

Wizualizując dokument zapisany w formacie HTML, przeglądarka formatuje tekst zgodnie ze znacznikami umieszczonymi w strukturze. Lista stosowanych znaczników jest zamknięta. Użytkownik korzysta z gotowych tagów, typu <br />nowa linia;  <b> bold;  <h> tytuł czy  <p> nowy paragraf, przy czym większość z nich  może zawierać dodatkowe informacje np. o wielkości fontu. Oznakowanie jest potem porównywane z arkuszem stylów CSS, w którym znajduje się komplet definicji niezbędnych do poprawnego wyświetlenia tekstu. Przeglądarka bezbłędnie sformatuje dokument, ale nie będzie w nim w żaden sposób zawarta informacja o treści merytorycznej wpisu, w tym przypadku, że jest to adres.

Przetwarzanie HTML

System przeszukiwania w treści zapisanej w strukturze HTML (przykład powyżej) jest bardzo skomplikowany lub czasem po prostu niemożliwy. Z powyższego paragrafu można próbować wyodrębnić informację „kod pocztowy”: Jeśli znajdziesz akapit z dwoma następującymi po sobie tagami  <br> (nowa linia), to drugi z nich będzie kodem pocztowym. W przypadku zacytowanego paragrafu, algorytm zadziała poprawnie. W przypadku bardziej rozbudowanej struktury, algorytm drugiego tagu  <br /> nie zadziała poprawnie – wyselekcjonowanie informacji o kodzie pocztowym jest po prostu niemożliwie. Przeszukiwanie treści pod kątem merytorycznym w dokumencie HTML to bardzo skomplikowany i czasochłonny proces, który nie rzadko generuje niepoprawne rezultaty. I wtedy właśnie sprawdza się standard XML.

Zalety XML

Dzięki standardowi XML tworzone są dokumenty zawierające metadane usprawniające ich wykorzystanie zarówno w Internecie, jak też w każdej innej formie prezentacji.

Oto kilka kluczowych przykładów:

XML upraszcza wymianę danych. Różne organizacje, a nierzadko nawet różne działy w tej samej organizacji, używają różnych zestawów narzędzi informatycznych. Narzędzia te, z reguły oparte na odmiennych formatach, stanowią ogromne wyzwanie dla działów informatycznych pod kątem poprawnej i wydajnej wymiany danych. Wykorzystanie standardu XML jako podstawowego formatu wymiany informacji między poszczególnymi działami firmy tworzy jednorodny standard, do którego i z którego konwertowane są wszystkie niezbędne dane. Popularność języka XML sprawia, że wielu dostawców oferuje gotowe rozwiązania pozwalające eksportować bazy danych swoich narzędzi wprost do formatu XML i z powrotem.

XML umożliwia automatyczne przetwarzanie dokumentów. Ze względu na fakt, że poprawnie zaprojektowany standard XML jednoznacznie identyfikuje wszystkie kluczowe elementy oraz relacje pomiędzy nimi, możliwe jest opracowanie narzędzi, które będą przetwarzały dokumenty w sposób całkowicie automatyczny. Na rynku istnieje bardzo wiele programów pozwalających na tworzenie takich narzędzi w wydajny i prosty sposób.

XML umożliwia inteligentne przeszukiwanie treści. Dzisiejsze przeglądarki internetowe poczyniły zasadnicze postępy, ale wciąż zdarza się, że niektóre wyniki wyszukiwania nie mają właściwie nic wspólnego z wyszukiwaną frazą. Poszukiwanie nowej marynarki może na przykład generować odnośniki do stron o marynarce wojennej. Dzięki merytorycznym znacznikom wyszukiwanie marynarki w elementach <ubranie> umożliwi ograniczenie takich fałszywych trafień do zera.

Przykładowy dokument XML

Poniżej przykładowy dokument zapisany w standardzie XML. Struktura XML nie jest zamkniętą listą znaczników typograficznych, lecz otwartą, budowaną przez użytkownika, zdefiniowaną strukturą tagów, zawierającą metadane merytorycznie opisujące treść dokumentu. Cytowany wcześniej kod pocztowy zostaje w tekście opisany tagiem  <postal-code> (otwarcie) ….  <postal-code> (zamknięcie). Wyselekcjonowanie danej „kod pocztowy” staje się banalnie proste.

<address country=”Poland”>
  <name>
    <title>Pan</title>
    <first-name>
      Andrzej
    </first-name>
    <last-name>
      Nowak
    </last-name>
  </name>
  <street>
    Kościuszki 17
  </street>
  <city>Warszawa</city>
  <state>mazowieckie</state>
  <postal-code>
    01-234
  </postal-code>
</address>

Dzięki takiemu ustrukturyzowaniu bazy danych wyszukiwanie Tadeusza Kościuszki nie wygeneruje odnośnika do Andrzeja Nowaka tylko dlatego, że mieszka przy ulicy nazwanej jego nazwiskiem. Wyszukiwanie numerów telefonów nie znajdzie kodu pocztowego tylko dlatego, że ciąg cyfr 234 występuje i w jednym i w drugim. Dzięki XML zapytania kierowane do bazy treści przez użytkowników zwracają celne, konkretne wyniki, bo wyszukiwany tekst można opatrzeć szeregiem dodatkowych warunków.

Tagi, Elementy i Atrybuty

Struktura XML zawiera trzy niezależne wyróżniki definiujące zawartość dokumentu: Tagi, Elementy i Atrybuty.

Tag jest nazwą merytorycznie wyróżnionego fragmentu tekstu, umieszczoną między dwoma nawiasami ostrokątnymi. XML wymaga, by tagi okalające wybrany tekst sygnalizowały otwarcie i zamknięcie definicji: (otwarcie) <…>tekst</…>(zamknięcie). Dzięki takiej strukturze bardzo łatwo można selekcjonować poszukiwane partie dokumentu. Komputer przetwarzając strukturę publikacji wie, w którym miejscu zaczyna się i kończy logicznie wybrana informacja. Poniżej przykładowy Tag

<first-name>Andrzej</first-name>

Element w strukturze XML to łącznie otwierający tag, logicznie wyróżniony fragment tekstu oraz  zamykający tag. Wewnątrz Elementu może znajdować się tekst, grafika, instrukcje, atrybuty oraz tagi podrzędne, które budują bardziej szczegółową strukturę dokumentu. Poniżej przykładowy Element:

<name>
    <title>Pan</title>
    <first-name>
      Andrzej
    </first-name>
    <last-name>
      Nowak
    </last-name>
  </name>

Początkiem Elementu jest <name>, zakończeniem </name>

Atrybut jest dodatkową informacją w otwarciu Elementu, który może go uszczegóławiać, określać poziom ważności, opisywać miejsce w strukturze oraz pełnić szereg innych funkcji zdefiniowanych przez użytkownika.

<address country=”Poland”>
  <name>
    <title>Pan</title>
    <first-name>
      Andrzej
    </first-name>
    <last-name>
      Nowak
    </last-name>
  </name>
  <street>
    Kościuszki 17
  </street>
  <city>Warszawa</city>
  <state>mazowieckie</state>
  <postal-code>
    01-234
  </postal-code>
</address>

W powyższym przykładzie widać zastosowanie atrybutu. W tagu address zawarto atrybut country (kraj) i dla danego wpisu zdefiniowano go jako „Poland”. Inne wystąpienia tagu <address> mogą zawierać odnośniki do pozostałych krajów. Tak zbudowana struktura umożliwia na przykład wyselekcjonowanie wszystkich adresów w Polsce. Bardziej skomplikowana kwerenda oraz odpowiedni plik kontrolny zawierający dodatkowe dane, umożliwi wyeksportowanie wszystkich adresów we wskazanej strefie czasowej, szerokości geograficznej lub takich, które w chwili generowania zapytania są między zachodem a wschodem słońca.

Ciąg dalszy nastąpi

Ciąg dalszy serii XML dla Menedżerów i Wydawców już wkrótce.  Informacje o kolejnym artykule pojawią się na naszym profilu Facebook oraz LinkedIn

Autor: LogoScript