230 likes | 373 Views
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
E N D
XML EXTENSIBLE MARKUPLANGUAGE 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 - zapytania w dokumentach XML i przykłady języków zapytań
XML wstęp i historia 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
XML wstęp i historia 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
XML podstawy budowy dokumentów 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
XML podstawy budowy dokumentów 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>
XML podstawy budowy dokumentów Jak to wygląda w IE5.0
XML podstawy budowy dokumentów 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.
XML podstawy budowy dokumentów Przykładowy plik CSS / XSL (EXTENSIBLE STYLE LANGUAGE) 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 podstawy budowy dokumentów 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
XML podstawy budowy dokumentów • Skł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
XML podstawy budowy dokumentów • Skł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
XML podstawy budowy dokumentów Ponieważ 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.
XML zapytania w dokumentach XML By przetwarzać dane w dokumentach XML niezbędne jest dodatkowe oprogramowanie realizujące obsługę jeżyków zapytań, np.: - XML-QL - YaTL - Lorel - XQL
XML zapytania w dokumentach XML PRZYKŁ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 )>
XML zapytania w dokumentach XML PRZYKŁ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> >>
XML zapytania w dokumentach XML PRZYKŁ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 >>
XML zapytania w dokumentach XML PRZYKŁ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)}) >>
XML zapytania w dokumentach XML PRZYKŁAD 1: w kolejnym języku zapytań: XQL --- << document("http://www.bn.com")/bib { book[publisher/name="Addison-Wesley" and @year>1991] { @year | title } } >>
XML zapytania w dokumentach XML PRZYKŁ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")) >>
XML zapytania w dokumentach XML PRZYKŁ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" >>
XML zapytania w dokumentach XML PRZYKŁ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.
XML bibliografia Artykuł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