xml

23
XML EXTENSIBLE MARKUP LANGUAGE Rafał Górecki Prezentacja dla celów seminarium dyplomowego w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych Warszawa, październik 2000

Upload: lyris

Post on 05-Jan-2016

25 views

Category:

Documents


2 download

DESCRIPTION

XML. E X TENSIBLE M ARKUP L ANGUAGE. Rafał Górecki Prezentacja dla celów seminarium dyplomowego w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych Warszawa, październik 2000. XML. Plan Prezentacji. - wstęp i historia XML - podstawy budowy dokumentów XML - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: XML

XMLEXTENSIBLE MARKUP LANGUAGE

Rafał GóreckiPrezentacja dla celów seminarium dyplomowego w

Polsko-Japońskiej Wyższej Szkole Technik Komputerowych

Warszawa, październik 2000

Page 2: XML

XML

Plan Prezentacji

- wstęp i historia XML

- podstawy budowy dokumentów XML

- zapytania w dokumentach XML

i przykłady języków zapytań

Page 3: XML

XML

lata ‘60 - poszukiwanie standardu dla dokumentów drukarskich

1969 - IBM zaproponowali GML wraz z hierarchiczna struktura oznaczeń

1978 - ANSI rozpoczyna prace nad norma

1983 - szósta wersja - SGML - staje się standardem Urzędu Kontroli Skarbowej USA

wstęp i historia XML

Page 4: XML

XML

1985 - SGML standardem Komisji UE oraz Departamentu Obrony USA

1986 SGML w wersji ISO 9979:1986

Dziś mamy nowe standardy ISO oraz HTML, Hypermedia/Time-based Structuring Language, XML, XSL i inne - wszystko na podstawie zalorzen GML/SGML

wstęp i historia XML

Page 5: XML

XML

Dokumenty XML cechuje:

- inteligencja - dane „same” się opisują

- zdolność adaptacji - możliwość dostosowania do konkretnych potrzeb i zastosowań

- łatwość pielęgnacji - przez oddzielenie danych od struktury i prezentacji

- możliwość bezpośredniej publikacji w internecie

podstawy budowy dokumentów

Page 6: XML

XML

Przykładowy dokument XML:<?xml version="1.0" encoding="ISO-8859-2"?><OSOBA> <IMIE> Jan </IMIE> <DRUGIEIMIE/> <NAZWISKO> Kowalski </NAZWISKO> <URODZONY> <DATA format="dd.mm.rrrr"> 12.04.1980 </DATA> <MIEJSCE> <MIASTO> Warszawa </MIASTO> </MIEJSCE> </URODZONY> <PESEL> 80041201322 </PESEL> <UWAGI> <!-- tu wpisz uwagi --> </UWAGI></OSOBA>

podstawy budowy dokumentów

Page 7: XML

XML

Jak to wygląda w IE5.0

podstawy budowy dokumentów

Page 8: XML

XML

Sam dokument XML jest jedynie „przechowalnia dla danych”.

Przeglądarki nie są wstanie same zaproponować sposobu prezentacji tych danych.

Przeglądarki nie rozpoznają typów danych.

Dla wykorzystania możliwości XML potrzebne są dwa dodatkowe dokumenty CSS lub XLS dla wizualizacji i DTD dla zdefiniowania formatów i poprawności danych.

podstawy budowy dokumentów

Page 9: XML

XML

Przykładowy plik CSS / XSL (EXTENSIBLE STYLE LANGUAGE)

podstawy budowy dokumentów

OSOBA {display:block;border-width:5;border-style:double;border-color:black;padding:15;background-color:#eeeecc;width:450;

}

IMIE, NAZWISKO {display:inline;text-align:center;width:130;color:#990000;margin:3;padding:3;font-weight:bold;font-size:18pt;

}

URODZONY {display:block;margin:3;padding:5;

}

Rys. OSIAGNIETY EFEKT WIZUALNY

Page 10: XML

XML

DTD DOCUMENT TYPE DEDEFINITION określa hierarchie elementów danych wraz z dopuszczalnymi atrybutami (wartościami).

DTD określa składnie całego dokumentu.

Na podstawie DTD można wnioskować jego zawartość oraz automatycznie sprawdzać poprawność dokumentu XML

podstawy budowy dokumentów

Page 11: XML

XMLSkładnia DTD (wybór):

< ELEMENT nazwa otwarcie zamknięcie (zawartość) < na przykład < !element linuxdoc o o (sect | chapt | article | report | book | letter | telefax | slides | notes | manpage ) < deklarujemy że element linuxdoc (nie obowiązkowy - pozycje ,,otwarcie'' i ,,zamknięcie'' (,,-'' to obowiązkowy, ,,o'' nie obowiązkowy ) może w sobie zawierać alternatywnie elementy sect , chapt , article i inne.

, - wszystkie elementy muszą występować w określonym porządku

& wszystkie elementy muszą występować, ale porządek dowolny

| rozłączne lub - jeden lub tylko jeden może wystąpić

+ element musi wystąpić co najmniej raz

? element nie obowiązkowy

* element może wystąpić raz lub więcej

ENTITY --- forma makroinstrukcji

ATTLIST --- lista atrybutów ELEMENTU wraz z opcjami: < ATTLIST linuxdoc LANG (CDATA) #REQUIRED<

#FIXED

#REQUIRED

#CURRENT - z poprzedniego użycia

#CONFREF - referencje

podstawy budowy dokumentów

Page 12: XML

XMLSkładnia DTD (wybór):

Typy danych

PCDATA - parsed character data - zwykłe dane tekstowe (z rozwijaniem entitles)

RCDATA - replaceable chracter data

CDATA - character data - zwykłe tekstowe --- nie przewidywana dalsza obróbka

ANY - może zawierać PCDATA i inne elementy

EMPTY

podstawy budowy dokumentów

Page 13: XML

XMLPonieważ przeglądarki jeszcze nie są wstanie same wykonywać operacji na „pełnych” dokumentach XML niezbędne jest publikowanie ich w postaci „czystego” HTML. Wykorzystywanie XML wymaga ogromnych nakładów pracy.

Nie ma uzasadnienia stosowanie XML do publikacji prostej strony WWW - wystarczy HTML / DHTML.

XML może się okazać „złotym środkiem” na udostępnienie zasobów starszych systemów bazodanowych wszelkim odbiorcom posługującym się przeglądarką WWW - klientem uniwersalnym.

podstawy budowy dokumentów

Page 14: XML

XMLBy przetwarzać dane w dokumentach XML niezbędne jest dodatkowe oprogramowanie realizujące obsługę jeżyków zapytań, np.:

- XML-QL

- YaTL

- Lorel

- XQL

zapytania w dokumentach XML

Page 15: XML

XMLPRZYKŁAD:

Dane o bibliografii przechowywane są w: bib.xml opisanym przez następujące DTD:

<!ELEMENT bib (book* )> <!ELEMENT book (title, (author+ | editor+ ), publisher, price )> <!ATTLIST book year CDATA #REQUIRED > <!ELEMENT author (last, first )> <!ELEMENT editor (last, first, affiliation )> <!ELEMENT title (#PCDATA )> <!ELEMENT last (#PCDATA )> <!ELEMENT first (#PCDATA )> <!ELEMENT affiliation (#PCDATA )> <!ELEMENT publisher (#PCDATA )> <!ELEMENT price (#PCDATA )>

zapytania w dokumentach XML

Page 16: XML

XMLPRZYKŁAD 1:

znajdź tytuły książek publikowanych (publisher) przez Addison-Wesley po roku 1991.

XML-QL------ << CONSTRUCT <bib> { WHERE <bib> <book year=$y> <title>$t</title> <publisher><name>Addison-Wesley</name></publisher> </book> </bib> IN "www.bn.com/bib.xml", $y > 1991 CONSTRUCT <book year=$y><title>$t</title></book> } </bib>>>

zapytania w dokumentach XML

Page 17: XML

XMLPRZYKŁAD 1:

w kolejnym języku zapytań:

YATL---- << make bib [ *book [ @year [ $y ], title [ $t ] ] ] match "www.bn.com/bib.xml" with bib [ *book [ @year [ $y ], title [ $t ] ], publisher [ name [ $n ] ] ] where $n = "Addison-Wesley" and $y > 1991>>

zapytania w dokumentach XML

Page 18: XML

XMLPRZYKŁAD 1:

w kolejnym języku zapytań:

Lorel----- << select xml(bib:{ (select xml(book:{@year:y, title:t}) from bib.book b, b.title t, b.year y where b.publisher = "Addison-Wesley" and y > 1991)})>>

zapytania w dokumentach XML

Page 19: XML

XMLPRZYKŁAD 1:

w kolejnym języku zapytań:

XQL--- << document("http://www.bn.com")/bib { book[publisher/name="Addison-Wesley" and @year>1991] { @year | title } }>>

zapytania w dokumentach XML

Page 20: XML

XMLPRZYKŁAD 2:

Jeśli dokument XML nie posiada DTD, nie znamy jego struktury musimy go odpytywac jak zrodlo tekstowe - napis po napisie.

Znajdź książki gdzie jakiś TAG pasuje do wzorca *or (np..: autor, editor) i ma wartość „Suciu”Lorel----- << select xml(bib: (select xml(book: {title: t, xml(LabelOf(a)): l}) from bib.book b, b.%or@a l , b.title t where l = "Suciu"))>>

zapytania w dokumentach XML

Page 21: XML

XMLPRZYKŁAD 2:YATL---- << make bib [ * book [ title [ $t ]. $$a [ "Suciu" ] ] ] match "www.bn.com/bib.xml" with bib [ * book [ title [ $t ], *$$a [ $l ] ] ] where $l = "Suciu" and $$a like "*or">>

zapytania w dokumentach XML

Page 22: XML

XMLPRZYKŁAD 2:YATL---- << make bib [ * book [ title [ $t ]. $$a [ "Suciu" ] ] ] match "www.bn.com/bib.xml" with bib [ * book [ title [ $t ], *$$a [ $l ] ] ] where $l = "Suciu" and $$a like "*or">>

XQL nie obsługuje przeszukiwania TAGow jako zmiennych.

zapytania w dokumentach XML

Page 23: XML

XMLArtykuły zamieszczane na stronach WWW popularnych periodyków:

Magazyn Internetowy WWW

PCKurier

Lista dyskusyjna

pl.comp.xml

oraz artykuł umieszczony pod adresem:

http://www-db.reasearch.bell-labs.com/user/simeon/xquery.txt

bibliografia