i nowoczesne technologie XML i nowoczesne technologie zarządzania treścią Wykład monograficzny Semestr zimowy 2003/04 Szymon Zioło Dyrektor d/s Konsultingu empolis Polska
Sprawy organizacyjne Strona internetowa wykładu: http://www.empolis.pl/mimuw Terminy zajęć: wykłady: czwartki, 16:00 – 17:30, pracownia: Michał Gajda: poniedziałki, 14:15 - 16:00 Patryk Czarnik: środy, 10:15 - 12:00 Jacek Sroka: piątki, 12:15 - 14:00 Konsultacje: w siedzibie firmy empolis Polska po indywidualnym umówieniu. Kryteria zaliczenia: pracownia: zadania cząstkowe + projekt programistyczny, wykład: egzamin pisemny.
Plan wykładu Wprowadzenie: Historia rozwoju technik znakowania tekstu. Technologia i standardy: Podstawowe koncepcje SGML-a i XML-a. Wykorzystanie XML-a we własnych aplikacjach. Definiowanie typów dokumentów. Modelowanie informacji. Przekształcenia XSL. Standardy związane z SGML-em i XML-em. Zastosowania biznesowe: Systemy i technologie zarządzania i publikowania treści. XML w elektronicznej wymianie danych i integracji aplikacji. XML a bazy danych. Kategoryzacja, klasyfikacja i wyszukiwanie informacji. Technologie modelowania, kodowania i wymiany wiedzy.
Zawartość zajęć Dodatkowo na wykładzie: case studies: formularze ubezpieczeniowe KEDU ZUS, zarządzanie przepływem dokumentów strukturalnych w PTC Era, neutralna pula zasobów w wydawnictwie Planeta Actimedia pokazy oprogramowania. Pracownia: korzystanie z parserów XML-owych, modelowanie informacji, tworzenie przekształceń XSL, projekt zaliczeniowy.
O mnie Absolwent MIMUW-u. W empolis Polska od 1999 roku: prace analityczno-projektowe, wdrożenia systemów zarządzania i przetwarzania informacji strukturalnej opartych na technologii SGML/XML, popularyzacja technologii XML, kursy, szkolenia, obecnie na stanowisku Dyrektor d/s Konsultingu. Inicjator powstania grupy newsowej pl.comp.xml. Redaktor Prowadzący wydań 6’2001 i 6'2003 czasopisma Software 2.0 poświęconych XML-owi. Autor kursów "Podstawy XML-a" i "Modelowanie informacji w XML-u".
empolis empolis: Niemcy – Węgry – Norwegia – Polska – Wielka Brytania – USA, Bertelsmann, grupa Arvato Knowledge Management. Doświadczenie w: technologiach wspierających zarządzanie informacją strukturalną (m. in. SGML / XML), organizacji środowiska informacyjnego zorientowanej na treść i jej strukturę. empolis Polska (http://www.empolis.pl) jest firmą informatyczną specjalizującą się w technologiach zarządzania dużymi zasobami dokumentów. Świadczy usługi w środowiskach charakteryzujących się: dużą ilością informacji cyfrowej, długim cyklem życia informacji, dużą częstością aktualizacji informacji, wysoką wartością informacji. empolis Polska, firma znana wcześniej pod nazwą STEP Polska, należy do międzynarodowej grupy firm empolis, wchodzącej w skład Bertelsmann Mohn Media Group. W projektach reorganizacji środowisk informacyjnych, firmy grupy empolis kładą nacisk na rozwiązania wspierające zarządzanie treścią (ang. content management) w miejsce podejścia skoncentrowanego na konkretnym sposobie publikowania informacji czy produkcie końcowym, takim jak książka, publikacja papierowa, CD-ROM czy serwis WWW.
Rozwiązania empolis Rozwiązania w zakresie zarządzania treścią i zarządzania wiedzą w całym cyklu jej życia: przygotowywania treści, generowania wartości dodanej, dostarczania treści. Obszary zainteresowań empolis: zarządzanie treścią, inteligentne wyszukiwanie, zarządzanie wiedzą, publikowanie. empolis Polska jest firmą informatyczną specjalizującą się w technologiach zarządzania dużymi zasobami dokumentów. Świadczy usługi w środowiskach charakteryzujących się: dużą ilością informacji cyfrowej, długim cyklem życia informacji, dużą częstością aktualizacji informacji, wysoką wartością informacji.
Referencje empolis Polska
technik znakowania tekstu Historia rozwoju technik znakowania tekstu 2 października 2003
Markup – znakowanie Markup Languages (eMeLe): SGML – Standard Generalized Markup Language, HTML – Hypertext Markup Language, XML – Extensible Markup Language. Markup: the process of marking manuscript copy for typesetting with directions for use of type fonts and sizes, spacing, indentation, etc. (The Chicago Manual Of Style).
Prehistoria: znakowanie tekstu wytłuszczyć odstęp wcięcie Hamlet Być albo nie być. Oto jest pytanie. Prawdziwe korzenie XML-a tkwią jednak nie w rozwoju Internetu czy aplikacji komputerowych, obserwowanym w ostatnich latach, ale w nowatorskich koncepcjach związanych ze znakowaniem tekstu, które powstały na początku lat 60-tych. „Kluczem do zrozumienia idei SGML-a jest rozwikłanie jego nieco dziwnej nazwy, a przede wszystkim znaczenia słowa markup. Otóż jest to termin techniczny, utrwalony w tradycji amerykańskiego edytorstwa. [...] W języku polskim czynność ta, nie mająca osobnej nazwy, należy do procedur nazywanych ogólnie adiustacją techniczną. Przetłumaczenie markup jako znakowanie wydaje się jednak trafne (a w każdym razie lepsze niż tagowanie lub markowanie). W całkiem podobnym sensie mówimy np. o znakowaniu dróg i ich oznakowaniu jako rezultacie czynności znakowania.” (Włodzimierz Wypych, Na początku był rękopis, czyli o historii XML-a, Software 2.0, 6’2001)
Znakowanie tekstu w epoce komputerów Treść Hamlet Być albo nie być. Oto jest pytanie + Formatowanie, adjustacja {nowy_wiersz} {bold} {wyłącz_bold} {wcięcie} = Dokument Tekst oznakowany zawiera – oprócz samej treści – także pewne znaczniki opisujące formatowanie tekstu. Tak oznakowany tekst może być przetworzony np. przez system składu, który wyprodukuje czytelną dla człowieka, sformatowaną postać tekstu. Hamlet Być albo nie być. Oto jest pytanie. {bold}Hamlet{wyłącz_bold}{nowy_wiersz}{wcięcie} Być albo nie być. Oto jest pytanie.
Przykłady języków znakowania Frame (MIF) <Font <FTag `B’>> <String `Hamlet’> QuarkXPress <B>Hamlet<B> RTF {\b\f5\cf1 Hamlet} Ventura <B>Hamlet<D> TeX/LaTeX \textbf{Hamlet} PostScript /Times-BoldR 900 ff (Hamlet)W HTML <B>Hamlet</B>
Korzenie Lata 60-te: 1967 – William Tunnicliffe, prezes Graphic Communications Association, podczas spotkania w Canadian Government Printing Office przedstawia ideę oddzielenia zawartości informacyjnej dokumentów od ich formatu, Stanley Rice proponuje użycie uniwersalnych znaczników do znakowania struktury tekstu, projekt GenCode definiuje sposób oznaczania tekstu ukierunkowany na jego strukturę.
Korzenie: INTIME INTIME – INteractive Textual Information Management Experiment: projekt badawczy Charlesa Goldfarba (IBM Cambridge Scientific Center, koniec lat 60-tych), prototyp zintegrowanego systemu przetwarzania tekstu: edycja tekstu, repozytorium dokumentów, wyszukiwanie; wykorzystane technologie: "maszyny wirtualne" na mainframie IBM 360, "concurrent access to a disk file", "context editors".
Edytor kontekstowy LOCATE /researchers/ researchers. A system which integrates CHANGE /researchers/analysts/ analysts. A system which integrates CHANGE /edit/edit/ * In online systems, text editing is are known as "context" editors. They NEXT provide a retrieval capability: e.g., QUIT
Wnioski z projektu INTIME The usefulness of a retrieval program can be affected by its ability to identify the structure and purpose of the parts of text (e.g., footnotes, abstracts, citations). [...] A heuristic routine for identifying new paragraphs in normal text was developed for INTIME, but a more sophisticated facility is needed. A typesetting command language could convey such information, but present languages deal with the appearance of the text, not with the purpose which motivated it. C. Goldfarb, "SGML: The Reason Why and the First Published Hint", Journal of the American Society for Information Science. Volume 48, Number 7 (July 1997)
Rozwój języków uogólnionego znakowania tekstu 1969, IBM: GML – Generalized Markup Language (Goldfarb, Mosher, Laurie). 1986: SGML – Standard Generalized Markup Language, ISO 8879:1986. 1991: powstaje World Wide Web. 1994: HTML 2.0 zdefiniowany jako zastosowanie SGML-a. 1998: XML – Extensible Markup Language, World Wide Web Consortium. Pierwszym standardem, który realizował opisane idee, był GML (Generalized Markup Language). Składnia tego standardu stopniowo ewoluowała, dostosowując się do rosnącego zapotrzebowania na rozmaitą funkcjonalność. Rozwój ten zaowocował zdefiniowaniem w 1986 roku SGML-a jako normy ISO. SGML jest stosowany od lat w profesjonalnych systemach zarządzania dokumentami. Jest to standard elastyczny, oferujący wiele opcji, ale skomplikowany. Spowodowało to, że nie był on szerzej znany poza gronem fachowców zajmujących się systemami zarządzania treścią. Dopiero odważne uproszczenie zawiłości SGML-a i zdefiniowanie w ten sposób XML-a spowodowało gwałtowny wzrost popularności opisanych idei oraz wykorzystywanie ich w znacznie szerszym kontekście zastosowań.
Wokół SGML-a Pierwsze szerzej znane zastosowania SGML-a: Electronic Manuscript Project, Association of American Publishers, 1987, CALS – Computer-Aided Acquisition and Logic Support, US Department of Defense, MIL-M-28001, February 1988. Standardy pokrewne: DSSSL – Document Style Semantics and Specification Language, HyTime: meta-notacja dla linków, opis struktur multimedialnych, rozciągniętych w czasie.
World Wide Web Consortium (W3C) Kuźnia standardów internetowych, np.: HTML – Hyper Text Markup Language, HTTP – Hyper Text Transfer Protocol, CSS – Cascading StyleSheets, ... XML – Extensible Markup Language: najważniejsza rekomendacja ostatnich lat, twórcy: Tim Bray (Netscape), Jean Paoli (Microsoft), C.M. Sperberg-McQueen (University of Illinois). Obecne dominują prace nad standardami związanymi z XML-em.
Ewolucja Internetu aplikacja dzisiaj aplikacja człowiek człowiek Bezpośrednia przyczyna powstania XML-a związana jest z ewolucją zastosowań Internetu, jaka nastąpiła w ostatnich latach. Początkowo witryny internetowe były tworzone „ręcznie” (statycznie) przez ludzi i przeznaczone do czytania przez ludzi. Następnie pojawiły się formularze internetowe, wypełniane w przeglądarkach, a interpretowane przez aplikacje. Kolejne generacje stron były generowane automatycznie przez aplikacje (np. skrypty pobierające treść z bazy danych), zaś czytane przez ludzi. Ograniczenia, jakie niesie ze sobą używany w Internecie format HTML (np. orientacja na wygląd tekstu, a nie jego znaczenie) sprawiają, że nie sprawdza się on jako medium w komunikacji bezpośrednio między aplikacjami. czas start
Programy i ich formaty Prawie każda aplikacja wprowadza swój wewnętrzny format. Nowe wersje tej samej aplikacji wprowadzają zmiany do używanego formatu: wsteczna kompatybilność, brak możliwości zapisu do formatu poprzednich wersji. Aplikacje dostarczają konwerterów: tylko do najpopularniejszych formatów, możliwość utraty danych podczas konwersji.
Standardy Nie istnieją uznane standardy. Istnieją substandardy w różnych dziedzinach: dokumenty biurowe: Microsoft Word, teksty naukowe: Postscript, TeX, Internet: HTML, GIF, JPG, elektroniczna wymiana danych: EDIFACT. Standard musi być: własnością publiczną, otwarty i jawny, niezależny od konkretnego producenta oprogramowania. Standardem uznanym byłby taki, który jest akceptowany i używany przez różne środowiska. Tak jednak nie jest – dokument napisany przez urzędnika w Wordzie może być nie do odczytania przez naukowca, pracującego w systemach unixowych (nb. gdyby format Worda był otwarty, pewnie ktoś napisałby konwerter na maszyny unixowe).
Potrzeba struktury Masa informacji cyfrowej powoduje potrzebę struktury: jeden format dokumentu nie wystarczy dla 5 miliardów ludzi, ale nie możemy operować milionami niekompatybilnych formatów.
Oddzielenie znaczenia tekstu od sposobu prezentacji. Idea SGML/XML (1) Oddzielenie znaczenia tekstu od sposobu prezentacji. <OSOBA MÓWIĄCA>Hamlet</OSOBA MÓWIĄCA> <WYPOWIEDŹ>Być albo nie być. Oto jest pytanie.</WYPOWIEDŹ> Nowatorski pomysł Charlesa Goldfarba i jego współpracowników z laboratorium IBM polegał na zastąpieniu znaczników opisujących formatowanie tekstu przez abstrakcyjne oznakowanie określające jego znaczenie. „Sam Goldfarb nie szukał dla swoich koncepcji uzasadnień teoretycznych. Proponował jedynie, aby uogólnić dotychczasową praktykę i znakować teksty w sposób, który nie przesądza o ich prezentacji. Po prostu wydawało się bardziej efektywne, by zamiast znaczników typograficznych w rodzaju: 14 punktów, Times Roman, kursywa, użyć takich, które opisują strukturę i znaczenie tekstu, np.: tytuł, akapit, cytat.” (Włodzimierz Wypych, Na początku był rękopis, czyli o historii XML-a, Software 2.0, 6’2001)
Być albo nie być. Oto jest pytanie. Sposób prezentacji OSOBA MÓWIĄCA nowy akapit do lewej wytłuszczenie WYPOWIEDŹ nowy akapit wcięcie na 2 cm do lewej Ponieważ takie abstrakcyjne znaczniki nie opisują formatowania, formatowanie trzeba opisać w inny sposób. Najczęściej definiuje się w tym celu tzw. arkusz stylów, który określa jednolity sposób formatowania dla każdego elementu semantycznego. Raz zdefiniowany arkusz stylów można oczywiście wykorzystać do formatowania wszystkich dokumentów określonego typu. Hamlet Być albo nie być. Oto jest pytanie.
Inny sposób prezentacji OSOBA MÓWIĄCA na marginesie tekst pionowo niebieski hiperlink do opisu postaci na początku dramatu WYPOWIEDŹ nowy akapit kursywa ew. użyj syntezatora mowy z ustawieniami dla OSOBY MÓWIĄCEJ Takie oddzielenie sposobu prezentacji od znaczenia tekstu pozwala na zdefiniowanie dla tego samego tekstu wielu sposobów prezentacji (arkuszy stylów) i używanie ich zamiennie w zależności od zastosowania (np. inny arkusz stylów może być stosowany dla publikacji papierowych, a inny – dla elektronicznych). Być albo nie być. Oto jest pytanie. Hamlet
Idea SGML/XML (2) <OSOBA MÓWIĄCA>Hamlet</OSOBA MÓWIĄCA> Stworzenie najodpowiedniejszego modelu dla naszych własnych dokumentów. <OSOBA MÓWIĄCA>Hamlet</OSOBA MÓWIĄCA> <WYPOWIEDŹ> Być albo nie być. Oto jest pytanie. </WYPOWIEDŹ> <NUDA> </NUDA> Dostępny zestaw znaczników nie jest z góry ograniczony. To my – jako projektanci nowego języka (typu dokumentu) – określamy ich nazwy i znaczenie. Wykorzystanie własnych znaczników opisujących znaczenie tekstu pozwala na zrealizowanie drugiej idei – dopasowania modelu dokumentu strukturalnego do potrzeb konkretnego zastosowania.
Najodpowiedniejszy model Przykłady: encyklopedia: <nazwisko>, <imie>, <ur>, <zm>, <wymowa>, <etymologia>, <liczba-mieszk> prawo: <promulgator>, <rocznik>, <poz>, <art> <sąd>, <sygn-wyroku>, <teza> dokument techniczny: <part-number>, <function-name> patenty: <wynalazca>, <nr-zgłoszenia> ubezpieczenia: <data-polisy>, <wart-polisy>
Język – metajęzyk Stan obecny: Wieża Babel (brak wspólnego języka), czy w ogóle możliwy jeden wspólny język? Wspólny metajęzyk: znana gramatyka, jednolita metodologia, takie same narzędzia. Dowolnie wiele języków specyficznych dla zastosowań.
Genealogia XML-a ... RDF CDF SVG HTML XML SGML VRML ... GML
Co to jest XML? XML to nie język programowania. XML to sposób zapamiętywania danych wraz z ich strukturą w dokumencie tekstowym: otwarty, elastyczny, bezpłatny, niezależny od platformy sprzętowej. XML to rama składniowa do tworzenia języków specyficznych dla zastosowań. Użycie XML-a nie zwalnia od myślenia (analizy, projektowania, ...) XML jest otwarty, tzn. struktura plików XML-owych jest jawna i publicznie dostępna, a same pliki są tekstowe. Elastyczność XML-a wynika bezpośrednio z tego, że jest to metajęzyk. Za korzystanie z formatu XML nie są pobierane żadne opłaty. Dodatkowo, wiele narzędzi wspierających wykorzystanie XML-a (szczególnie przeznaczonych dla programistów) jest bezpłatnych. XML nie jest związany z żadną platformą sprzętową ani producentem oprogramowania.
Jak wygląda XML? <?xml version=”1.0”?> <zeznanie-sprawcy nr=”1313/2001”> <autor>st. asp. Jan Łapówka</autor> <miejsce>Dołowice Górne</miejsce> <treść>Wypadek dnia <data>13.10.2001r</data> o godzinie <godzina>13:13</godzina> (<dzien-tygodnia>piątek </dzien-tygodnia>) miał miejsce nie z mojej winy. <poszkodowany>Alojzy M.</poszkodowany> nie miał żadnego pomysłu w którą stronę uciekać, więc go przejechałem.</treść> </zeznanie-sprawcy> Deklaracja XML Element główny Atrybut Element Znacznik początkowy Znacznik końcowy Zawartość tekstowa Slajd przedstawia jedynie podstawowe elementy składni dokumentu XML. Każdy dokument XML zaczyna się od deklaracji XML, określającej wersję składni XML-a, kodowanie znaków, itp. Cała zawartość dokumentu zawarta jest w jednym elemencie – elemencie głównym. On dopiero zawiera inne elementy oraz tekst. Elementy mogą posiadać atrybuty, opisujące pewne właściwości elementów. Element jest kodowany przy pomocy znacznika początkowego oraz znacznika końcowego.
HTML XML Znaczenie elementów i ich atrybutów z góry określone. Znaczenie elementów i ich atrybutów określa użytkownik lub aplikacja. Interpretację elementów określa standard, a w praktyce przeglądarki internetowe. <p> może w jednym dokumencie oznaczać paragraf, w drugim pomoc, a w trzecim pismo odręczne. Chociaż XML nie ma bezpośrednio nic wspólnego z HTML-em (który jest zastosowaniem SGML-a), to jednak warto te dwa języki porównać, ze względu na ich silny związek z Internetem. To, co jest poprawne również określają przeglądarki internetowe. Poprawność XML-a jest ściśle określona przez specyfikację.
SGML XML Filozofia: jeden duży system edytorialny. Filozofia: wiele małych komunikujących się ze sobą modułów. Konieczność definiowania struktury. Opcjonalne definiowanie struktury. Skomplikowana składnia, wiele opcji. Uproszczona składnia. Trudność tworzenia parserów. Łatwość tworzenia parserów. Bardzo drogie narzędzia. Darmowe narzędzia.
Klasy zastosowań XML-a Zarządzanie dokumentami, treścią, wiedzą: Elektroniczna wymiana danych, integracja aplikacji: Pierwotne zastosowanie SGML-a. Nowa klasa zastosowań XML-a. Dokumenty tworzone przez człowieka i przeznaczone dla człowieka. Dokumenty tworzone oraz przetwarzane automatycznie Długi czas życia dokumentów. Dokumenty tworzone tylko na czas komunikacji. Historycznie, zastosowania SGML-a wiązały się z zarządzaniem dokumentami. Są to więc także zastosowania XML-a. Prostota XML-a sprawiła jednak, że zaczął on być używany także w serwisach internetowych, publikacjach elektronicznych oraz do elektronicznej wymiany danych między systemami komputerowymi. Szczególnie te ostatnie zastosowania zasługują na uwagę, ponieważ sposób wykorzystania przez nie XML-a diametralnie różni się od pierwotnych założeń leżących u podstaw SGML-a. „SGML był związany z praktyką klasycznego edytorstwa. Dokument SGML, choć elektroniczny, był nadal czymś ‘namacalnym’, stanowił określony korpus tekstów, opracowywanych w ramach systemu edytorskiego lub udostępniany w obrębie sieci lokalnej. W normie SGML najwyraźniej założono, że teksty będą znakowanie ręcznie. [...] XML powstał w innym świecie – w świecie opasanym globalną siecią. Stanowi odpowiedź na potrzeby, jakie stawia publikowanie zasobów baz danych w skali Internetu i w lokalnych intranetach. Jego żywiołem są raczej dokumenty automatycznie generowane niż redagowane, dokumenty tworzone dynamicznie na żądanie, dokumenty wirtualne, integrujące informacje z wielu źródeł, których nikt nigdy w nie opracował w takim kształcie, w jakim są prezentowane.” (Włodzimierz Wypych, Na początku był rękopis, czyli o historii XML-a, Software 2.0, 6’2001) Typowy model mieszany zawartości. Konieczność dokładnego kontrolowania struktury i zawartości.
Dwie twarze XML-a Dokument tekstowy: Baza danych: <zamowienie> <zeznanie-sprawcy> Wypadek dnia <data> 13.01.2001 r.</data> o godzinie <godzina>13.13 </godzina> (<dzien-tygodnia> piątek</dzien-tygodnia>) miał miejsce nie z mojej winy. <poszkodowany>Alojzy M.</poszkodowany> nie miał żadnego pomysłu w którą stronę uciekać, więc go przejechałem. </zeznanie-sprawcy> <zamowienie> <pozycja> <nazwa>Papier</nazwa> <jednostka>ryza </jednostka> <ilosc>3</ilosc> </pozycja> <zamawiajacy id=”123456”> <imie>Szymon</imie> <nazwisko>Zioło </nazwisko> <firma>empolis Polska </firma> </zamawiajacy> </zamowienie> Te różnicę między dwoma klasami zastosowań ilustrują dwa przykłady dokumentów. Podstawą dokumentu tekstowego, stosowanego w zastosowaniach związanych z zarządzaniem treścią, jest mieszany model zawartości, w którym tekst jest w dowolny sposób przemieszany z podelementami. Natomiast aplikacje wymieniające przy pomocy XML-a dane w sposób automatyczny, operują zwykle na relacyjnych bazach danych. Dlatego struktura takiego dokumentu jest ściśle określona i często odpowiada strukturze odpowiedniej bazy danych. Właśnie w tego typu zastosowaniach możliwości oferowane przez DTD są niewystarczające.
Gdzie szukać dalej Charles F. Goldfarb's SGML Source Home Page: www.sgmlsource.com W3C – The World Wide Web Consortium: www.w3.org XML.com: www.xml.com The XML Industry Portal, hosted by OASIS: www.xml.org The XML Cover Pages: www.oasis-open.org/cover/xml.html Paweł Stroiński, Kurs języka XML: www.wckp.lodz.pl/~pabloware/xml Grupa dyskusyjna pl.comp.xml Treść rekomendacji XML. „Kuźnia standardów internetowych” – organizacja zajmująca się ich zatwierdzaniem i promowaniem. Duży zbiór materiałów, artykułów itp. Nowości, zasoby, lista organizacji zajmujących się XML-em itp. Między innymi potężny zbiór referencji do narzędzi XML-owych. Tutorial po polsku – dla początkujących.
Gdzie szukać dalej Harold, E. R., „XML Księga eksperta”, Wydawnictwo Helion, 2000 (wersja oryginalna: „XML Bible”, IDG Books Worldwide, Inc., 2000) Marchal, B., „XML w przykładach”, Wydawnictwo Mikom, 2000 (wersja oryginalna: „XML by Example”, QUE Corporation) Young, M. J., „XML krok po kroku”, Wydawnictwo RM, 2000 (wersja oryginalna: „XML step by step”, Microsoft Press) McLaughlin, B., „Java i XML”, Wydawnictwo Helion, 2001 Ray, E. T., „Nauka języka XML”, Wydawnictwo ReadMe, 2001 Castro, E., „Po prostu XML”, Wydawnictwo Helion, 2001 Elliotte, R. H., Scott, W., „XML. Almanach”, Wydawnictwo Helion, 2002 ...