Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

XML i nowoczesne strony internetowe

• Wprowadzenie.
XML (ang. Extensible Markup Language, w wolnym tłumaczeniu Rozszerzalny Język Znaczników) to według Wikipedii: „uniwersalny język formalny przeznaczony do reprezentowania różnych danych w strukturalizowany sposób”.

• Ewolucja.
W 1969 roku w IBM opracowano GML (General Markup Language), który około roku 1974 rozwinął się w SGML (Standard General Markup Language), by w połowie lat osiemdziesiątych stać się standardem międzynarodowym. SGML nie jest językiem w ścisłym znaczeniu tego słowa. Jest „maszyną” do tworzenia słowników, ustala standardowe znaczniki definiujące strukturę dokumentów określonego typu.
Oprogramowanie SGML działające głównie na wielkich komputerach typu mainframe, w bardzo szybkim czasie zostało uzupełnione, czy wzbogacone o tyle opcji, dodatków, uzupełnień, rozszerzeń, że… stało się zbyt skomplikowane by mogło być rzeczywiście efektywne.

W 1981 roku Tim Berners-Lee, który w tym czasie był konsultantem do spraw oprogramowania CERN, na bazie SGML opracował specjalny dokument DTD (Document Type Definition) – zestaw znaczników dla hipertekstu. Była to tak zwana wersja zero języka HTML.

Wraz z lawinowym rozwojem Internetu coraz dotkliwiej dawały o sobie znać rozmaite ograniczenia języka HTML. Np. nie przekaże on programowi, że ten element jest kolorem spodni, tamten jego ceną, a ten z kolei rozmiarem. Oczywiście to tylko jeden przykład z całej listy ograniczeń HTML.

Aby rozwiązać takie i podobne problemy w roku 1996, znów na bazie SGML utworzono język XML, to jest eXtensible Markup Language. Jako wariant czy podzbiór SGML, język XML jest także narzędziem do tworzenia zestawów znaczników, definiowania przestrzeni nazw. W 1998 roku język XML stał się standardem. I tak XHTML jest aplikacją XML, a HTML nią nie jest, o czym warto wiedzieć i pamiętać.

• Uwaga.
HTML nazywa się umownie „językiem” choć właściwie jest jedynie słownikiem znaczników – nie stanowi bowiem narzędzia do tworzenia nowych znaczników. Biblioteka znaczników definiująca P jako akapit, H1-H6 jako nagłówki poziomów 1-6, LI jako element listy, a TAB jako tabelę, nie jest w stanie pomóc odpowiedzieć klientowi, który pyta o kolor i cenę spodni. Oprogramowanie zarządzające zawartością musiałoby przeszukać cały tekst i „zgadywać”, co może być ceną, a co kolorem. Ostatecznie wyświetliłoby potencjalnemu nabywcy spodni wszystkie akapity, albo i wszystkie strony, na których występuje skrót „PLN”, albo słowo „cena”.

XML – STANDARD STRUKTURYZACJI DANYCH PROFESJONALNEJ STRONY INTERNETOWEJ

Wielki portal. Tysiące dokumentów publikowanych miesięcznie. Wiele z nich w kilku różnych wersjach dostosowanych do rozmaitych grup odbiorców. Czy można wyobrazić sobie sztab ludzi mozolnie przetwarzających to wszystko na kod HTML? Zresztą, ludzie to głupstwo, mamy przecież żółtych braci, ale co z oprogramowaniem, które tekstami zarządza?

Internet zawiera całą wiedzę ludzkości. Albo prawie całą. Ale cóż z tego, kiedy natychmiast pojawia się problem wyszukania i prezentacji określonej, żądanej przez czytelnika, informacji. Język HTML nie zapewnia tu żadnego wsparcia. Do przetwarzania bardzo dużych ilości informacji nie jest przydatny, albo w stopniu niewielkim.

Teksty, do których jesteśmy przyzwyczajeni, zorganizowane są na podstawie dość ogólnej struktury konwencjonalnej: to jest książka, a tamto gazeta, to jest rozdział, a to artykuł.

Rozwiązaniem problemu dużej ilości danych (i nie tylko tego) jest zmiana ogólnej struktury dokumentu tradycyjnego na ścisłą strukturę modelu obiektowego. Oprogramowanie radzące sobie z rosnącą ilością informacji, a jednocześnie z wymaganiami i realnymi potrzebami użytkowników, oparte jest często na języku XML. Tylko dzięki niemu można czytelnikowi dostarczyć aktualnego, konkretnego, sensownie zorganizowanego i spersonalizowanego materiału. I, co bardzo ważne, można to zrobić szybko.

• Konkretny przykład.
Załóżmy, że chcemy przez Internet sprzedawać spodnie. W HTML wyglądać by to mogło tak:

Kod pozycji katalogowej, utworzony za pomocą języka XML, byłby oczywiście zupełnie inny:

Jeśli teraz potencjalny klient poprosi o przedstawienie mu aktualnej oferty sklepu dotyczącej wszystkich spodni męskich, zielonych, w cenie powiedzmy do 175,00 PLN – przygotowanie odpowiedzi dla niego nie sprawi najmniejszego problemu. Rzecz jasna odpowiedniemu programowi, bo przecież nikt przy zdrowych zmysłach nie będzie tego robił „na piechotę”.

W języku XML definiowana jest przestrzeń nazw i znaczniki, dzięki którym klasyczny opis języka HTML zmienić można w zestaw obiektów. Obiekty te, jako rekordy bazy danych, wywołuje się na życzenie i składa w zależności od potrzeb jak klocki Lego.

Oczywiście XML i jego możliwości mają zastosowanie nie tylko w sklepach internetowych czy bazach danych. Przecież nic nie stoi na przeszkodzie, by zdefiniować znaczniki takie jak: »Problem«, »Metoda«, »Procedura«, »Rozwiązanie«, »Sposób«, »Pytanie«, »Odpowiedź«, »Instrukcja« itp.

W przypadku projektów naprawdę dużych, im prędzej webmaster „przesiądzie się” na język XML, tym lepiej. Lepiej dla użytkowników/czytelników/klientów strony, dla samego projektu oraz jego autorów.

 

windows porady programowanie

Komentarze

0 nowych
  #1 26.07.2010 11:48

Piszesz bardzo ciekawe artykuły. Miło się je czyta.... Wielkie Brava dla Ciebie..

  #2 26.07.2010 12:18

Fajny artykuł
a tak czepiając się: Czy w przykładzie XMLa nie brakuje czasem na końcu , bo chyba w xmlu każdy znacznik trzeba zamknąć, ale głowy nie dam :)

borzole   4 #3 26.07.2010 12:30

A ja powiem szczerze, że nie rozumiem dlaczego właściwie używa się XML. Dla mnie ma to sens jedynie w sytuacji, kiedy dane są celowo udostępniane do dalszej obróbki np. kanał rss. W środku serwisu dane siedzą w bazie w postaci binarnej i dostęp do nich jest/powinien być znacznie szybszy niż przetwarzanie tekstowego xml. Manipulacja danymi z XML przy pomocy szablonów XSL też może być wykonana znacznie prościej i wydajniej przy użyciu obróbki danych z bazy w danym języku.

Proszę mnie źle nie zrozumieć. Bawiłem się ostatnio szablonami XSL i świetnie to działa, ale wydaje mi się, że to ma użytek tylko tam, gdzie nie można mieć typowej bazy danych. Proszę o konkretny przykład, gdzie właściwie xml jest nie zastąpiony.

  #4 26.07.2010 12:57

Dosyć ciekawym rozwiązaniem jest opracowany przez Mozillę RDF. Wiele programów obecnie korzysta z RDF, np. sam Firefox czy Nepomuk.

  #5 26.07.2010 12:58

Co do XHTML i HTML, to można zapisać dokument XHTMLa w trybie zgodności z HTML-em. Oznacza to, że nawet przeglądarka nie obsługująca do końca XHTML-a i odpowiedniego mime-type(wraz z nowszym, szybszym sposobem przekazu informacji przez sieć), jak IE6, będzie mogła wyświetlić dokument.

Meszuge   16 #6 26.07.2010 13:23

XHTML nie jest lekarstwem… właściwie na nic, a jego zalety są ewidentnie przereklamowane - IMHO. Jeśli kod, pełen ramek i tabelek, w HTML Transitional zamienimy na XHTML Transitional, to nie uzyskamy nic. Warto też pamiętać, a przede wszystkim rozumieć, że XHTML nie jest następcą HTMLa, bo XHTML to nie jest osobny język, a jedynie alternatywny sposób przedstawienia HTML. A poza tym, co bardzo ważne, niepoprawny XHTML jest dużo gorszy niż niepoprawny HTML.

TheUsh   7 #7 26.07.2010 17:01

Jak zwykle ciekawy temat i dobry język :)
Nie myślałeś Meszuge o tym, żeby wydać kiedyś zbiór swoich tekstów w wersji drukowanej? Czytało by się go jeszcze przyjemniej :D

Meszuge   16 #8 26.07.2010 18:40

@TheUsh & blackberrystorm

Dziękuję.

W przypadku komputerów i informatyki, to jeszcze nie myślałem. A jeśli chodzi o inne tematy i zagadnienia, które mnie pasjonują, to... to też o tym nie myślę, bo od takiego myślenia są moi wydawcy. Podział ról po prostu: ja piszę, oni wydają.
Albo i nie... :-)

  #9 26.07.2010 22:35

Czy nie lepiej do tego celu użyć baz danych??

Qaer   1 #10 26.07.2010 23:07

Przyjemnie się czyta takie małe i treściwe artykuły. Faktycznie, brakuje tu przykładu w jaki sposób XML może być wykorzystany np. do przeszukiwania witryn przez silniki indeksujące np. Google itp.

Extraordinarykid   6 #11 27.07.2010 03:19


Fajnie, jak zawsze
Szkoda, że tekst pobudza tylko "fachową dyskusję

"Internet zawiera całą wiedzę ludzkości. Albo prawie całą. Ale cóż z tego, kiedy natychmiast pojawia się problem wyszukania i prezentacji określonej, żądanej przez czytelnika, informacji."

I cóż z tego.
Przecież już się umówiliśmy, że internet kłamie ;D

Extraordinarykid   6 #12 27.07.2010 03:20

Zeżarło mi wszystkie znaczniki, których użyłem, aby moja wypowiedź miała wygląd tematu ;p

Niedobry Lisek ;D:D

borzole   4 #13 27.07.2010 09:48

XML używa się również do:
- skład tekstu (dokumentacja techniczna DocBook)
- budowanie interfejsu użytkownika (Glade dla GTK)
- jako format pliku (wektorowy SVG)
- plik konfiguracyjny ("rejestr" GNOME)
- budowanie szablonu strony z poziomu użytkownika (blogger.com)
- parser nie tylko plików XML przy pomocy XSL

Mogę sobie wyobrazić, że po stronie serwera wrzuca się do bazy bloki xml w jakiejś sytuacji (wspomniany wyżej szablon do blogger.com musi być jakoś przechowywany, a potem odtwarzany ), ale wciąż nie wiem poco nam XHTML wyświetlany w przeglądarce?

Meszuge   16 #14 27.07.2010 11:00

XHTML? Moim skromnym zdaniem to prawie po nic, ale takim stwierdzeniem narażę się pewnie jego zwolennikom. :-)

fenixproductions   6 #15 27.07.2010 21:19

Całkiem niezły artykuł, szkoda tylko, że tak późno to wszystko zaczyna wchodzić w życie.

Podobne treści (i zachwyty) czytałem lata temu, gdy xHTML, SVG i wiele innych były w powijakach. Wtedy to mało kto był w ogóle zainteresowany budowaniem systemów w całości opartych na XML. Teraz się to pozmieniało i pozostaje mi jedynie żałować tego, ze sporo na ten temat pozapominałem.

Ciężko w to dzisiaj uwierzyć, ale pierwsze pliki XMLowe (zwłaszcza SVG*) klepałem w notatniku :)

*) Bez internetu nie miałem nawet szansy poznać Sodipodi.

Meszuge   16 #16 10.12.2011 06:32

@fenixproductions

Lepiej chyba późno, niż wcale? :-)

  #17 08.11.2014 07:09

@Stevard (niezalogowany): Również pomyślałem o tym samym.