XML Extensible Markup Language

Podobne dokumenty
Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Znakowanie tekstu w epoce komputerów

Sprawy organizacyjne. Zawartość zajęć. Plan wykładu. O mnie. empolis. XML i nowoczesne technologie zarządzania treścią

Plan wykładu. O mnie

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

Sprawy organizacyjne. Zawartość zajęć. Plan wykładu. O mnie. Moje projekty. XML i nowoczesne technologie zarządzania treścią

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

Sprawy organizacyjne. XML i nowoczesne technologie zarządzania treścią. Zawartość zajęć. Plan wykładu. empolis. O mnie

Definiowanie typów dokumentów Część 1. DTD, XML Schema

Sprawy organizacyjne. XML i nowoczesne technologie zarządzania treścią. Plan wykładu. Zawartość zajęć. empolis. O mnie

Rola języka XML narzędziem

29. Poprawność składniowa i strukturalna dokumentu XML

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Historia rozwoju technik znakowania tekstu

XML extensible Markup Language. Paweł Chodkiewicz

Historia rozwoju technik znakowania tekstu

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Wprowadzenie do technologii XML

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

Model semistrukturalny

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

Środowisko XML (Extensible Markup Language).

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

2 Podstawy tworzenia stron internetowych

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Programowanie internetowe

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

GML w praktyce geodezyjnej

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Otwarte protokoły wymiany informacji w systemach ITS

XML DTD XML Schema CSS

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

Ćw. IV. Tworzenie stron internetowych. Podstawy projektowania, wprowadzenie do języka HTML

Tomasz Grześ. Systemy zarządzania treścią

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

PREZENTACJE MULTIMEDIALNE cz.2

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

STRONY INTERNETOWE mgr inż. Adrian Zapała

Kaskadowe arkusze stylów (CSS)

E.14.1 Tworzenie stron internetowych / Krzysztof T. Czarkowski, Ilona Nowosad. Warszawa, Spis treści

Przykładowy dokument XML

Implementacja standardu GML w oprogramowaniu firmy INTERGRAPH

Cel ogólny lekcji: Wprowadzenie do tworzenia stron WWW w języku HTML. Wprowadzenie pojęć: strona WWW, język HTML, dokument HTML.

Narzędzia informatyczne w językoznawstwie

DTD - encje ogólne i parametryczne, przestrzenie nazw

XML i nowoczesne metody zarządzania treścią

System sprzedaŝy rezerwacji

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Spis treści. spis treści wygenerowany automatycznie

Internetowy moduł prezentacji ofert pracy do wykorzystania na stronie WWW lub panelu elektronicznym. Wstęp

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Lab.1. Praca z tekstem: stosowanie arkuszy stylów w dokumentach OO oraz HTML/CSS

World Wide Web? rkijanka

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Aplikacje WWW - laboratorium

Semantic Web Internet Semantyczny

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

mgr inż. Jacek Staniec Język XML

METAJĘZYKI

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

HL7 Clinical Document Architecture standard elektronicznej dokumentacji medycznej w Polsce

Rozdział 1. Informacje podstawowe

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

PROGRAM PRAKTYKI ZAWODOWEJ. Technikum Zawód: technik informatyk

Wprowadzenie do HTML, CSS, JavaScript, PHP. Kurs

Zadanie 1. Stosowanie stylów

Historia kodowania i format plików XML. Jolanta Bachan

Część II. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Kurs WWW Język XML, część I

Ministerstwo Finansów

Bazy danych i strony WWW

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

The Binder Consulting

Pierwsza strona internetowa

OfficeObjects e-forms

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

XML extensible Markup Language. część 1

Szczegółowy opis języka HTML5 znajdziemy w specyfikacji, która jest dostępna pod adresem

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

Kurs HTML 4.01 TI 312[01]

HTML DOM, XHTML cel, charakterystyka

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Wykład I. Wprowadzenie do baz danych

Za pomocą atrybutu ROWS moŝemy dokonać podziału ekranu w poziomie. Odpowiedni kod powinien wyglądać następująco:

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Transkrypt:

XML Extensible Markup Language 1

Znakowanie tekstu 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 wytłuszczyć wcięcie Hamlet odstęp Być albo nie być. Oto jest pytanie. 2006-12-09 XML Extensible Markup Language 2 Korzenie XML-a wywodzą się z nowatorskich koncepcji związanych ze znakowaniem tekstu, które powstały na początku lat 60-tych. Kluczem do zrozumienia idei SGML-a [i XML-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) 2

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 Hamlet {bold}hamlet{wyłącz_bold}{nowy_wiersz}{wcięcie} Być albo nie być. Oto jest pytanie. Być albo nie być. Oto jest pytanie. + = 2006-12-09 XML Extensible Markup Language 3 Z bardzo podobnym znakowaniem tekstu mamy do czynienia w dokumentach komputerowych. 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 czytelny dla człowieka, sformatowany dokument. 3

Korzenie XML-a Lata 60-te XX wieku: 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ę, projekt INTIME (INteractive Textual Information Management Experiment) Charlesa Goldfarba wykazuje potrzebę identyfikacji fragmentów tekstu i określenia ich znaczenia. 2006-12-09 XML Extensible Markup Language 4 Pod koniec lat 60-tych XX wieku pojawiło się kilka niezaleŝnych inicjatyw, których autorzy dostrzegali ograniczenia znakowania tekstu znacznikami opisującymi jego wygląd. Pojawiły się pierwsze propozycje znakowania wskazującego strukturę tekstu i jej znaczenie. Kluczowy był projekt INTIME, prowadzony przez Charlesa Goldfarba w laboratoriach IBM Cambridge Scientific Center. Jego celem było stworzenie prototypu zintegrowanego systemu przetwarzania tekstó prawnych, przeznaczonego dla kancelarii prawniczych. Szybko okazało się, Ŝe z aktów prawnych moŝna wycisnąć znacznie więcej (np. dokładniej wyszukiwać), jeśli znaczenie poszczególnych fragmentów tekstu jest jednoznacznie zidentyfikowane. 4

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) 2006-12-09 XML Extensible Markup Language 5 5

Ewolucja Internetu człowiek człowiek człowiek aplikacja aplikacja człowiek aplikacja aplikacja czas start dzisiaj 2006-12-09 XML Extensible Markup Language 6 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 (jako statyczne strony) 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. 6

Idea XML-a (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ź> 2006-12-09 XML Extensible Markup Language 7 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) 7

Sposób prezentacji OSOBA MÓWIĄCA nowy akapit do lewej wytłuszczenie WYPOWIEDŹ nowy akapit wcięcie na 2 cm do lewej Hamlet Być albo nie być. Oto jest pytanie. 2006-12-09 XML Extensible Markup Language 8 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 (ang. stylesheet), 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. 8

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 Hamlet Być albo nie być. Oto jest pytanie. 2006-12-09 XML Extensible Markup Language 9 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). 9

Idea XML-a (2) Stworzenie najodpowiedniejszego modelu dla naszych własnych dokumentów. <OSOBA MÓWIĄCA>Hamlet</OSOBA MÓWIĄCA> <WYPOWIEDŹ> <NUDA> Być albo nie być. Oto jest pytanie. </NUDA> </WYPOWIEDŹ> 2006-12-09 XML Extensible Markup Language 10 Dostępny zestaw semantycznych 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. 10

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>, <wartość-polisy> 2006-12-09 XML Extensible Markup Language 11 11

Rozwój języków uogólnionego znakowania tekstu 1969: GML Generalized Markup Language (IBM; 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. 2006-12-09 XML Extensible Markup Language 12 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 specyfikacji SGML-a i opublikowaniem jej w 1986 roku 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ę duŝymi 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ń. Mówi się wręcz, Ŝe XML daje 80% mocy (siły wyrazu) SGML-a przy 20% jego złoŝoności. 12

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. 2006-12-09 XML Extensible Markup Language 13 W3C jest organizacją non-profit, zrzeszającą firmy zainteresowane rozwojem i standaryzacją technologii internetowych. Większość z prac prowadzonych przez W3C w ostatnich latach dotyczy technologii związanych z XML-em oraz jego zastosowań. W3C nie publikuje norm ani specyfikacji nie jest to oficjalna organizacja standaryzacyjna. Publikacje W3C są nazywane rekomendacjami. Nie przeszkadza to jednak, aby przynajmniej niektóre rekomendacje stawały się de facto standardami poprzez fakt ich powszechnego uŝywania. 13

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,...) 2006-12-09 XML Extensible Markup Language 14 Otwartość XML-a polega na tym, Ŝe struktura dokumentów XML jest jawna i publicznie dostępna, a same pliki mają format tekstowy (moŝna je obejrzeć w dowolnym edytorze tekstowym). Za korzystanie z formatu XML nie są pobierane Ŝadne opłaty. Dodatkowo, wiele narzędzi wspierających wykorzystanie XML-a (szczególnie tych przeznaczonych dla programistów) jest bezpłatnych. XML nie jest związany z Ŝadną platformą sprzętową ani producentem oprogramowania. Jest więc dobrym formatem do wymiany danych pomiędzy aplikacjami, systemami operacyjnymi czy platformami sprzętowymi. 14

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 2006-12-09 XML Extensible Markup Language 15 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, sposób kodowania 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. 15

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. To, co jest poprawne równieŝ określają przeglądarki internetowe. Poprawność XML-a jest ściśle określona przez specyfikację. 2006-12-09 XML Extensible Markup Language 16 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. W odniesieniu do dokumentów HTML przyjęła się praktyka akceptowania dokumentów niepoprawnych. Przeglądarki internetowe nie wyświetlają bowiem komunikatów o błędach składniowych, lecz starają się ominąć błąd i jak najlepiej wyświetlić dokument mimo błędu. Skutkiem tego jest znaczna ilość dokumentów HTML formalnie niepoprawnych. W przypadku XML-a poprawność jest ściśle określona, zaś od narzędzi zgodnych z rekomendacją wymaga się, aby reagowały na napotkane w dokumentach błędy i nie przetwarzały takich dokumentów. 16

SGML XML Filozofia: jeden duŝy system zarządzania treścią. Konieczność definiowania struktury. Skomplikowana składnia, wiele opcji. Trudność tworzenia parserów. Bardzo drogie narzędzia. Filozofia: wiele małych komunikujących się ze sobą modułów. Opcjonalne definiowanie struktury. Uproszczona składnia. Łatwość tworzenia parserów. Darmowe narzędzia. 2006-12-09 XML Extensible Markup Language 17 17

Klasy zastosowań XML-a Zarządzanie dokumentami, treścią, wiedzą: Pierwotne zastosowanie SGML-a. Dokumenty tworzone przez człowieka i przeznaczone dla człowieka. Długi czas Ŝycia dokumentów. Typowy model mieszany zawartości. Elektroniczna wymiana danych, integracja aplikacji: Nowa klasa zastosowań XML-a. Dokumenty tworzone oraz przetwarzane automatycznie Dokumenty tworzone tylko na czas komunikacji. Konieczność dokładnego kontrolowania struktury i zawartości. 2006-12-09 XML Extensible Markup Language 18 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) 18

Dwie twarze XML-a Dokument tekstowy: <zeznanie-sprawcy> Wypadek dnia <data> 13.01.2001 r.</data> o godzinie <godzina>13.13 </godzina> (<dzientygodnia>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> Baza danych: <zamowienie> <pozycja> <nazwa>papier</nazwa> <jednostka>ryza </jednostka> <ilosc>3</ilosc> </pozycja> <zamawiajacy id= 123456 > <imie>szymon</imie> <nazwisko>zioło </nazwisko> <firma>abg Ster-Projekt </firma> </zamawiajacy> </zamowienie> 2006-12-09 XML Extensible Markup Language 19 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. 19

Struktura logiczna dokumentu XML zeznanie-sprawcy nr="1313/2001" autor miejsce treść st. asp. Jan Łapówka Dołowice Górne Wypadek dnia data godzina dzien-tygodnia... 13.10.2001 13:13 piątek o godzinie <?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> ( 2006-12-09 XML Extensible Markup Language 20 O dokumencie XML moŝemy myśleć na dwa sposoby: jako o tekście (ciągu znaków) lub jako o strukturze drzewiastej, w której elementy, atrybuty i fragmenty tekstu są węzłami drzewa. Sposób patrzenia na dokument XML w danym momencie zaleŝy oczywiście od konkretnego zastosowania. 20

Składnia XML Deklaracja XML: <?xml version="1.0" encoding="utf-8" standalone="yes"?> Znaczniki: <tag attributename="attribute value"> </tag> Znaczniki elementu pustego: <br></br> <br/> Komentarz: <!-- komentarz --> Instrukcja przetwarzania: <?target processing-instruction-body?> Sekcja CDATA: <![CDATA[dowolny <tekst " nieprzetwarzany & przez [ parser]]> 2006-12-09 XML Extensible Markup Language 21 KaŜdy dokument XML musi zaczynać się od deklaracji XML inaczej nie zostanie rozpoznany jako dokument XML. Znacznik elementu pustego w postaci <br/> jest skrótem składniowym upraszczającym tworzenie dokumentów i oznacza dokładnie to samo, co pełny zapis <br></br>. Komentarze nie są interpretowane jako część treści dokumentu i pełnią taką samą role, jak komentarze w językach programowania. Instrukcje przetwarzania są swego rodzaju wolnymi elektronami, które moŝna umieszczać w dowolnych miejscach w dokumentach XML i nie trzeba ich nigdzie deklarować. MoŜna je wykorzystywać jako ukryte (tzn. nie naleŝące do właściwej struktury dokumentu) polecenia dla aplikacji przetwarzających dokumenty. Sekcje CDATA są konstrukcją składniową pozwalającą w prosty sposób umieszczać w dokumencie XML teksty zawierające znaki zastrzeŝone, np. <, &. Wewnątrz sekcji CDATA znaki zastrzeŝone nie są bowiem interpretowane. 21

Encje predefiniowane & & < < > > &apos; ' " " 2006-12-09 XML Extensible Markup Language 22 Innym sposobem zapisu w dokumencie XML znaków zastrzeŝonych w składni XML-a jest uŝycie tzw. encji predefiniowanych. Są one domyślnie zdefiniowane i nie trzeba ich samemu definiować. Oczywiście encja predefiniowana to tylko sposób zapisu składniowego znaku. Aplikacje korzystające z dokumentów XML ukrywają tą warstwę składniową i wyświetlają normalne znaki. 22

Język metajęzyk Stan wyjściowy: 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ń. 2006-12-09 XML Extensible Markup Language 23 MoŜliwość definiowania własnych elementów i określania ich znaczenia powoduje, Ŝe XML nie jest tak na prawdę zwykłym językiem, lecz metajęzykiem, tzn. językiem słuŝącym do definiowania własnych języków. Przez własny język rozumiemy tu określony zestaw elementów, atrybutów, sposób ich zagnieŝdŝania, dopuszczalną zawartość tekstową, no i przede wszystkim znaczenie poszczególnych elementów i atrybutów. Dzięki temu w XML-u moŝna zapisać dane zupełnie do siebie nie przystające, np. fakturę oraz hasło encyklopedyczne. Wprawdzie kaŝdy z tych dokumentów będzie miał inny zestaw elementów i atrybutów (będzie napisany w innym języku), ale oba będą miały tę samą składnię i oba będzie moŝna przetwarzać przy pomocy tych samych standardowych, uniwersalnych narzędzi. 23

Definiowanie języków XML, SGML metajęzyki. Definiowanie języków (zastosowań, typów dokumentów, schematów): określanie zestawu dopuszczalnych elementów, atrybutów,..., definiowanie dopuszczalnej zawartości elementów (tekst, inne elementy), przypisywanie atrybutów do elementów,... Metody definiowania struktury: dokument XML bez formalnej definicji struktury, DTD Document Type Definition, XML Schema, Relax NG. 2006-12-09 XML Extensible Markup Language 24 Potrzebujemy więc metod i narzędzi, aby móc w oparciu o metajęzyk XML definiować własne języki (inaczej mówiąc: zastosowania XML-a, typy dokumentów lub schematy). XML dopuszcza wprawdzie dokumenty, które nie mają formalnej definicji struktury, ale szczególnie w odniesieniu do większych, bardziej skomplikowanych dokumentów zaleca się korzystanie z takiej definicji. Mamy do dyspozycji co najmniej kilka metod definiowania języków. DTD wywodzi się z SGML-a i jest metodą dość prostą i ograniczoną. W DTD nie moŝna na przykład określać typów zawartości elementów i wartości atrybutów (nie moŝna np. określić, Ŝe dany element powinien zawierać datę). Niemniej jednak DTD wciąŝ są popularne zapewne m. in. dzięki swej prostocie. Najpopularniejszym obecnie standardem definiowania języków jest XML Schema standard znacznie bardziej rozbudowany niŝ DTD i dający znacznie większe moŝliwości. Coraz większą popularność zdobywa teŝ technika RELAX NG, pozwalająca ominąć niektóre słabe punkty XML Schema. 24

Poprawność dokumentów Dokument XML poprawny składniowo (ang. well-formed): kaŝdy element musi być zamknięty, nie ma nakładających się elementów, wartości atrybutów w apostrofach lub cudzysłowach,... Dokument XML poprawny strukturalnie (ang. valid): struktura dokumentu zgodna ze strukturą zdefiniowaną w definicji typu dokumentu, obecne wszystkie wymagane atrybuty. 2006-12-09 XML Extensible Markup Language 25 Dokument, który nie jest poprawny składniowo, tak na prawdę nie jest dokumentem XML. Drugi stopień poprawności (poprawność strukturalna) wymaga, aby spełniony był takŝe pierwszy. Ma on sens jedynie dla dokumentów dla których zdefiniowano strukturę (schemat). 25

Modelowanie typów dokumentów Wieloetapowy proces analityczno-projektowy: analiza struktury modelowanych bytów, analiza przykładowych dokumentów, analiza potencjalnych zastosowań dokumentów oraz przypadków uŝycia, abstrakcyjny projekt struktury, kodowanie projektu struktury np. przy pomocy DTD lub XML Schema, testowanie, pielęgnacja, zarządzanie zmianami. 2006-12-09 XML Extensible Markup Language 26 Podobnie jak implementacja (kodowanie) jest tylko jedną z wielu faz budowy systemu informatycznego, tak zapisywanie definicji języka przy pomocy DTD, XML Schema lub innego formalizmu jest jedynie jednym z etapów modelowania języka. Etap ten powinien być poprzedzony przez analizę oraz projektowanie struktury języka w sposób abstrakcyjny. Stosowanie pełnego cyklu modelowania ma sens w przypadku skomplikowanych języków, wykorzystywanych np. w systemach zarządzania aktami prawnymi czy zasobami encyklopedycznymi. Proces modelowania takich języków właściwie nigdy się nie kończy, poniewaŝ Ŝyją i zmieniają się same reguły biznesowe będące podstawą modelu języka, lub pojawiają się nowe zaleŝności, które trzeba zamodelować. Dlatego w profesjonalnych zastosowaniach, typy dokumentów muszą podlegać pielęgnacji. Oczywiście w prostych przypadkach (np. modelowanie komunikatu z klienta do serwera aplikacji), rozgarnięty projektant poradzi sobie od razu, bez stosowania pełnego cyklu, po prostu zapisując definicję przy pomocy DTD lub XML Schema. 26

Projektowanie struktury dokumentów autor wiersz? tytuł * zwrotka * wers 2006-12-09 XML Extensible Markup Language 27 Podczas abstrakcyjnego, niezaleŝnego od notacji (DTD lub XML Schema), projektowania struktury dokumentów, uŝywa się z reguły diagramów graficznych. Istnieją specjalne programy, które pozwalają na takie graficzne projektowanie, np. edytor XMLSPY firmy Altova. 27

DTD prosty przykład <!DOCTYPE wiersz [ <!ELEMENT wiersz (autor, tytul?, zwrotka*)> <!ATTLIST wiersz bialy (tak nie) nie > <!ELEMENT autor (#PCDATA)> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers)*> <!ELEMENT wers (#PCDATA)> ]> element główny zawartość elementów wyraŝenia regularne atrybuty 2006-12-09 XML Extensible Markup Language 28 Definicja typu dokumentu jest zawarta w deklaracji DOCTYPE, po której następuje nazwa elementu głównego. Pozycje ELEMENT określają dopuszczalną zawartość poszczególnych elementów przy pomocy wyraŝeń regularnych. #PCDATA (Parsed Characters Data) oznacza czysty tekst, bez podelementów. Przy pomocy pozycji ATTLIST moŝna określić atrybuty poszczególnych elementów. 28

Gdzie szukać dalej: historia XML-a Charles F. Goldfarb's SGML Source Home Page: www.sgmlsource.com Wypych, W., Na początku był rękopis, czyli o historii XML-a: Software 2.0, 6/2001 2006-12-09 XML Extensible Markup Language 29 29

Gdzie szukać dalej: XML 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 Goldfarb, C., Prescod, P., The XML Handbook, 5th Edition, Prentice Hall PTR, 2003 Grupa dyskusyjna pl.comp.xml 2006-12-09 XML Extensible Markup Language 30 30