Upload
lyris
View
27
Download
2
Embed Size (px)
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
Citation preview
XMLEXTENSIBLE MARKUP LANGUAGE
Rafał GóreckiPrezentacja 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
- zapytania w dokumentach XML
i przykłady języków zapytań
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
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
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
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
XML
Jak to wygląda w IE5.0
podstawy budowy dokumentów
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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