Microsoft PowerPoint - wyklad_MRI_JWR_1 [tryb
Transkrypt
Microsoft PowerPoint - wyklad_MRI_JWR_1 [tryb
Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Metody reprezentacji informacji Jacek Rumiński Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3471757, e-mail: [email protected] Projekt „Przygotowanie i realizacja kierunku inżynieria biomedyczna – studia międzywydziałowe” współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Jacek W. Rumiński Metody reprezentacji informacji Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Omówienie planu wykładów i ćwiczeń laboratoryjnych Omówienie Omówienie ogólnych zagadnień organizacyjnych (zaliczenia) Jacek W. Rumiński 2 Metody reprezentacji informacji Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Literatura pomocnicza: -XML, XSL, XPath – rekomendacje, specyfikacje i podręczniki na stronach www.w3.org oraz www.xml.com, -podręczniki drukowane o XML, np.: XML. Księga eksperta, Rusty Harold, Wydawnictwo Helion -XML a bazy danych: http://www.rpbourret.com/xml/XMLAndDatabases.htm Jacek W. Rumiński 3 Metody reprezentacji informacji Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Rekomendacja WWW Consortium – www.w3.org Jacek W. Rumiński 4 Metody reprezentacji informacji Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Plan wykładu: 1. Wprowadzenie; 2. Cele XML; 3. Podstawowe definicje i pojęcia; 4. Charakterystyka dokumentu XML; 5. Rozbiór składniowy dokumentu XML; 6. Poprawność dokumentu XML; 7. Metody definicji typów dokumentów: DTD, XML-Schema; 8. Rodzaje dokumentów XML i formy ich składowania; 9. NXD – Native XML Databases; 10. Wyszukiwanie i przeszukiwanie dokumentów XML: XPath a XQuery; 11. XML w technologii Web Services: XML-RPC, SOAP, WSDL 12. Zastosowania XML Jacek W. Rumiński 5 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna XML - eXtensible Markup Language – Rozszerzalny Język Znaczników Znaczników – dokument budowany jest w oparciu o elementy identyfikowane przez znaczniki (ang. tag) Język – dokument budowany jest zgodnie z określonymi zasadami składni, oraz w oparciu o zdefiniowany alfabet, czyli znaczniki Rozszerzalny – wykorzystywane w dokumencie elementy języka, znaczniki, projektowane są przez użytkownika (projektanta schematu dokumentu) Jacek W. Rumiński 6 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Przykładowy dokument XML – widok uproszczony element atrybut znacznik Jacek W. Rumiński 7 XML Przedmiot: Politechnika Gdańska, Inżynieria Biomedyczna wartość atrybutu wartość elementu Jacek W. Rumiński 8 SGML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Standard Generalized Markup Language (SGML) SGML to międzynarodowa norma (ISO; XML to rekomendacja !!!), która tworzy meta-język umożliwiający definiowanie języków bazujących na znacznikach (markup languages). Znaczniki to ogólnie elementy tekstu (adnotacje, oznaczenia) służące do określenia możliwej interpretacji, przetwarzania czy rozumienia tekstu (elektronicznego). Język znaczników określa zbiór formalnych wymagań stosowania znaczników. SGML wykorzystuje pojęcie znaczników opisowych zamiast znaczników definiujących wywołania procedury (np. w danym miejscu wykonaj procedurę z takimi parametrami). SGML wprowadza pojęcie „typu dokumentu” (bazy danych: schemat bazy). http://www.isgmlug.org/sgmlhelp/g-index.htm Jacek W. Rumiński 9 SGML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Standard Generalized Markup Language (SGML) Wyróżnialną jednostką tekstu jest ELEMENT. Element jest jawnie znakowany (znaczniki) poprzez odpowiednie oznaczenie jego początku (znacznik-początku) i końca (znacznik-końca). Element może zawierać zbiór pusty (brak tekstu), może zawierać tekst lub subelementy. Atrybut jest wartością, którą powinno się wykorzystać do opisu kontekstu pojawienia się elementu a nie do przechowywania treści dokumentu. <raport id=r12 status=”szkic” wersja=”ang” > ... </raport> SGML definiuje język tworzenia schematu dokumentu: Document Type Definition (DTD) zaadaptowany później w XML. Jacek W. Rumiński 10 SGML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna XML rekomendacja bazująca na SGML. XML wykorzystywany jest do reprezentacji informacji wykorzystując odpowiednie reguły. Przyjmuje określony model informacyjny; wprowadza możliwość jawnej definicji schematu; określa specyficzne typy danych, definiuje elementy danych i jednostki danych.... JEST SILNIE ZWIĄZANY Z PRZECHOWYWANIEM DANYCH – BAZAMI DANYCH. Jacek W. Rumiński 11 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna XML a bazy danych: Jacek W. Rumiński 1. XML jest uniwersalnym formatem składowania danych. 2. Dokument XML zawiera logicznie uporządkowane dane. 3. Dokument XML może zawierać opisy wielokrotnych instancji tej samej klasy. 4. Dokument XML jest bazą danych. 5. XML nie jest systemem zarządzania bazami danych. 6. Dokumenty XML lub dane dokumentów XML podlegają składowaniu w bazach danych. 12 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Charakterystyka porównawcza XML z systemami zarządzania relacyjnymi bazami danych (SZRBD) XML SZRBD Dane w pojedynczej strukturze hierarchicznej Węzły struktury (elementy) mogą posiadać wartość własną oraz liczne wartości atrybutów Elementy mogą być zagnieżdżone Dane w wielu relacjach (tabelach) Kolejność elementów jest określona Kolejność krotek (wierszy) nie jest definiowana Schemat bazy jest konieczny Schemat dokumentu jest opcjonalny Bezpośrednie składowanie zbioru danych dokumentu w XML Wyszukiwanie danych poprzez dedykowane języki, np.: XQuery Jacek W. Rumiński Komórki tabel przechowują pojedyncze wartości Wartości komórek są atomowe Dane dokumentu rozłożone na zbiór atrybutów/relacji Wyszukiwanie danych poprzez język SQL 13 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna XML a bazy danych – podstawowe zadania: 1. Składowanie danych w dokumentach XML 2. Składowanie dokumentów XML 3. Wyszukiwanie dokumentów XML 4. Wyszukiwanie danych z dokumentów XML Jacek W. Rumiński 14 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Prezentacja dokumentu XML RDB1 Transformacja i prezentacja w sieci WWW Synteza dokumentu XML RDB2 NXD1 Składowanie dokumentu XML WWW Rozbiór (analiza) dokumentu XML NXD1 NXD – Native XML Database Jacek W. Rumiński RDB1 RDB2 15 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Plan wykładu: 1. Wprowadzenie; 2. Cele XML; 3. Podstawowe definicje i pojęcia;; 4. Charakterystyka dokumentu XML; 5. Rozbiór składniowy dokumentu XML; 6. Poprawność dokumentu XML; 7. Metody definicji typów dokumentów: DTD, XML-Schema; 8. Rodzaje dokumentów XML i formy ich składowania; 9. NXD – Native XML Databases; 10. Wyszukiwanie i przeszukiwanie dokumentów XML: XPath a XQuery; 11. XML w technologii Web Services: XML-RPC, SOAP, WSDL 12. Zastosowania XML Jacek W. Rumiński 16 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Podstawowe cele XML: - XML powinien umożliwiać tworzenie dokumentów o strukturze wyznaczanej przez definiowane znaczniki, - Dokument XML powinien być prosty i szybki do utworzenia, czytelny dla twórcy i łatwo interpretowany przez programy komputerowe, - XML powinien być kompatybilny z SGML, - Dokumenty XML powinny być łatwo wymieniane przez Internet i przetwarzane oraz prezentowane w ramach sieci WWW, - XML powinien wspomagać różne typy aplikacji, - Liczba cech opcjonalnych XML powinna być minimalna, - Projektowanie dokumentu XML powinno umożliwiać weryfikację jego poprawności. Jacek W. Rumiński 17 XML Przedmiot: Metody reprezentacji informacji DEMO 1 Politechnika Gdańska, Inżynieria Biomedyczna -Dokument XML powinien być prosty i szybki do utworzenia, czytelny dla twórcy i łatwo interpretowany przez programy komputerowe. Dowolny edytor: <?xml version=”1.0”?> <student>Kowalski</student> Dowolny język programowania: Zapis do strumienia ciągu znaków (j.w.), np.: PrintStream ps = new PrintStream(new FileOutputStream(”plik.xml”)); ps.println(” <student>Kowalski</student> ”); RÓŻNE API – gotowe środowiska do obsługi XML Jacek W. Rumiński 18 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Dokumenty XML powinny być łatwo wymieniane przez Internet i przetwarzane oraz prezentowane w ramach sieci WWW. wymiana: HTTP/MIME: text/xml przetwarzanie: API i SDK (parsery) prezentacja: Transformacja dokumentów XML Jacek W. Rumiński 19 XML Przedmiot: Metody reprezentacji informacji Jacek W. Rumiński DEMO 2 Politechnika Gdańska, Inżynieria Biomedyczna 20 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna XML powinien wspomagać różne typy aplikacji wymiana: Jacek W. Rumiński 21 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Popularność XML – dlaczego? HTML jest językiem bardzo popularnym, i co ważniejsze znanym i stosowanym przez wiele osób (niekoniecznie informatyków). Dlaczego zatem XML? Problem z HTML: 1. Ściśle określone znaczniki HTML służą do opisu prezentacji, nie do opisu danych. Przykładowo: Co oznacza fragment kodu: <td> 3472678</td> - liczbę studentów na sali? - wysokość czesnego? - odległość pomiędzy Gdańskiem a Warszawą? - hasło do ciekawego serwisu w Internecie? Jacek W. Rumiński 22 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Dany jest fragment kodu HTML: <p><b>Jacek Rumiński</b> <br> Katedra Inżynierii Biomedycznej <br> 3472678 Przetworzenie kodu przez przeglądarkę wygeneruje wynik: Jacek Rumiński Katedra Inżynierii Biomedycznej 3472678 Czy maszyna (algorytm) jest w stanie zinterpretować ten kod? Czym jest 3472678? Jacek W. Rumiński 23 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Jak w powyższym kodzie można znaleźć nazwę Katedry? Algorytm 1. Jeśli <p> ma dwa <br> to po drugim <br> dany jest numer telefonu. Jak widać algorytm nie jest zbyt uniwersalny, co jest konsekwencją braku informacji wspomagającej interpretację w samym dokumencie HTML. Przechowanie powyższej informacji (HTML) w kodzie XML może wyglądać następująco: <pracownik> <imię>Jacek</imię> <nazwisko> Rumiński </nazwisko> <katedra> <nazwa>Katedra Inżynierii Biomedycznej</nazwa> </katedra> <kontakt> <telefon>3472678</telefon> </kontakt> </pracownik> Jacek W. Rumiński 24 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Dany wyżej kod XML jest czytelny dla twórcy i potencjalnego użytkownika. Łatwo też stworzyć algorytm interpretujący treść, np.: Algorytm 2. Jeśli nazwa elementu jest „telefon” to jego treść jest numerem telefonu. Dane zapisane w dokumencie XML mogą być zaprezentowane dokładnie w taki sam sposób jak dla wcześniejszego przykładu z HTML, oraz na miliony innych sposobów. Charakterystyczną cechą dokumentów XML jest więc separacja opisu danych od opisu ich prezentacji, definiowanej poza XML. Można zatem wygenerować HTML z opisem prezentacji danych z dokumentu XML. XML jest bardziej uporządkowany niż HTML, nie umożliwia przykładowo: przeplatania znaczników, omijania znaczników końca, itd. Uporządkowaną na wzór XMLa wersją HTMLa jest XHTML. Jacek W. Rumiński 25 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Zgodnie z prezentowanymi celami utworzenia XML, powstał standard sieci WWW, którego aplikacje są obecnie jedną z najbardziej rozwijających się dziedzin praktycznego zastosowania informatyki w składowaniu i wymianie danych. XML włączono do kanonu uniwersalnych technologii: -TCP/IP – uniwersalna sieć; -HTML – uniwersalna prezentacja danych; -XML – uniwersalne składowanie danych; -Java – uniwersalny kod. Do najbardziej istotnych potomków XMLa, należy zaliczyć: XSL, MathML, SVG, XQuery, XPath, SMIL, XHTML, SOAP, ..... Jacek W. Rumiński 26 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Plan wykładu: 1. Wprowadzenie – XML a bazy danych; 2. Cele XML; 3. Podstawowe definicje i pojęcia;; 4. Charakterystyka dokumentu XML; 5. Rozbiór składniowy dokumentu XML; 6. Poprawność dokumentu XML; 7. Metody definicji typów dokumentów: DTD, XML-Schema; 8. Rodzaje dokumentów XML i formy ich składowania; 9. NXD – Native XML Databases; 10. Wyszukiwanie i przeszukiwanie dokumentów XML: XPath a XQuery; 11. XML w technologii Web Services: XML-RPC, SOAP, WSDL 12. Zastosowania XML Jacek W. Rumiński 27 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Podstawą wszelkich definicji są rekomendacje XML 1.0; XML 1.1 opracowane przez W3C (http://www.w3.org/XML/). DOKUMENT XML – Obiekt danych jest dokumentem XML wtedy, jeśli jest dobrze sformułowany („well-formed”), zgodnie z wymaganiami rekomendacji. DOKUMENT XML posiada strukturę fizyczną i logiczną. Fizycznie dokument XML składa się z encji, logicznie z deklaracji, elementów, komentarzy, instrukcji przetwarzania. Obiekt danych jest dobrze sformułowany (jest dokumentem XML) jeśli wszystkie jego encje zarówno bezpośrednio dane jak i te, do których odnosi się przez referencje, spełniają wymagania specyfikacji, oraz obiekt ten posiada wymaganą strukturę logiczną. Jacek W. Rumiński 28 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Struktura logiczna dokumentu XML zdefiniowana jest jako: document ::= prolog element Misc* Dokument XML składa się z trzech podstawowych jednostek: -prologu – deklaracja dokumentu, określająca typ i wersję, -elementu głównego (root)– który zawierać może kolejne elementy, -oraz z zera lub więcej jednostek typu „Misc” definiowanych jako: Misc ::= Comment | PI | S gdzie: Comment – komentarz, PI – instrukcja przetwarzania, S – znaki puste (#x20 | #x9 | #xD | #xA) („white spaces”). Przykładowy prolog: <?xml version="1.0" ?> Jacek W. Rumiński 29 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Podstawowe znaki wykorzystywane w definicjach specyfikacji XML i jej pochodnych do określania krotności (następstwa) jednostek: Jacek W. Rumiński ? jednostka występuje raz lub wcale, * jednostka występuje jedno lub wielokrotnie lub wcale + jednostka występuje co najmniej raz [wartość] jednostka występuje dokładnie raz, tak jak zapisano , lista jednostek – sekwencja rozdzielana znakiem „ ’ ” | zbiór jednostek do wyboru („lub”). 30 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Instrukcja przetwarzania (PI) – zanurzona w dokumencie XML instrukcja dla aplikacji przetwarzającej dokument. Przykładem instrukcji przetwarzania jest prolog. PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>' PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l')) Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] czyli Unicode Name ::= (Letter | '_' | ':') (NameChar)* NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender gdzie: Letter, Digit, CombiningChar, Extender jak i BaseChar oraz Ideographic to znaki zdefiniowane w rekomendacji XML poprzez zestaw kodów Unicodu. Jacek W. Rumiński 31 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Komentarz – opis treści dokumentu XML lub inne uwagi zanurzone w dokumencie Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->' Uwaga! Zgodnie z powyższym zakończenie komentarza ‘--->’ jest niedozwolone. Przykładowy prolog: <!--Zadania testowe z XML--> CDATA – „character data” – dane tekstowe, definiowane w dokumencie XML poza znacznikami. Nie posiadają zatem strukturalnej i uporządkowanej własności języka XML. CDSect ::= CDStart CData CDEnd CDStart ::= '<![CDATA[' CData ::= (Char* - (Char* ']]>' Char*)) CDEnd ::= ']]>' Jacek W. Rumiński 32 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Procesor XML – program komputerowy realizujący odczyt i operacje na treści dokumentu XML. Wymagania dotyczące programu i rodzaj procesorów XML określa specyfikacja XML. DTD – Document Type Definition (definicja typu/schematu dokumentu) – zanurzona w dokumencie XML lub zapisana poza nim struktura dokumentu, a więc dozwolone elementy, ich nazwy, krotność i hierarchia jak również możliwe atrybuty wraz z ich nazwami, typem, krotnością i występowaniem. DTD nie jest dokumentem XML! DTD jest w pełni zdefiniowany w rekomendacji XML. Włączenie DTD w dokumencie XML odbywa się w deklaracji DOCTYPE: <!DOCTYPE tu występuje DTD lub referencja do zewn. DTD> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> Jacek W. Rumiński 33 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Encje („entities”) – zgodnie z budową fizyczną dokumentu XML są to jednostki przechowywania danych. Każda encja ma nazwę i wartość. Encje definiowane są jawnie w DTD. Encje mogą być wewnętrzne i zewnętrzne. Wewnętrzna encja ma treść taką jaka jest w niej bezpośrednio zapisana. Zewnętrzna encja odwołuje się do zewnętrznego zasobu. Przykłady: -wewnętrzna encja: <!ENTITY info ”To są slajdy do wykładu o XML."> -zewnętrzna encja: <!ENTITY plik2 SYSTEM ”http://biomed.eti.pg.gda.pl/xml/plik2.xml"> W definicji encji zewnętrznych stosuje się dwa typy identyfikatorów: systemowy oraz publiczny. Systemowy występuje zawsze i określa adres URI zasobu. Jeśli tylko ten identyfikator jest używany występuje słowo kluczowe ‘SYSTEM’. Przykład tego typu encji pokazano wyżej. Jacek W. Rumiński 34 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Jeśli stosuje się identyfikator publiczny wówczas stosuje się słowo kluczowe PUBLIC, po czym występuje identyfikator publiczny (generowane jest URI główne) i systemowy (URI domyślne). Ogólna postać definicji encji ma więc postać: <!ENTITY nazwa PUBLIC "FPI" "URI"> FPI - Formal Public Identifier – posiada budowę zawierającą •znak : „-” zasób niestandardowy; „+” zasób standardowy, •nazwę grupy lub osoby odpowiedzialnej za zasób, •tekst określający typ i wersję zasobu, •dwa znaki określające język dokumentu, •znaki separacji „//” rozdzielające powyższe pola. <!ENTITY plik3 PUBLIC ”-//Jack Stone//TEXT CV version 2.1//EN” ”http://biomed.eti.pg.gda.pl/xml/plik3.xml"> Jacek W. Rumiński 35 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Encje mogą być oznaczone jako nie podlegające rozbiorowi, tzn. zawierają dane nie podlegające interpretacji przez procesor XML (np. plik binarny). Stosuje się wówczas słowo kluczowe „NDATA”. <!ENTITY logo SYSTEM "http://www-med..eti.pg.gda.pl/logo.gif" NDATA gif> Encje dzielą się ponadto na encje ogólne oraz encje parametryczne. Te ostatnie mogą być tylko definiowane w dokumencie DTD. Różnica polega również na samej budowie encji. Encja parametryczna zawiera dodatkowo przed nazwą znak „%”. <!ENTITY % plik2 SYSTEM ”http://biomed.eti.pg.gda.pl/xml/plik2.xml"> Do encji odwoływać się można przez referencje: &nazwa_encji; - dla encji ogólnej (konieczne znaki „&” i „;”), %nazwa_encji; -dla encji parametrycznej (konieczne znaki „%” i „;”). <!ENTITY email ”[email protected]> (...) <!ENTITY jwr "Jacek Rumiński &email;"> Jacek W. Rumiński 36 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Wartość encji może przyjmować tylko określone znaki Unicodu, zgodnie z zakresem podanym na końcu rekomendacji. Zatem jawne wpisanie polskich znaków w danym edytorze, może spowodować, iż zapamiętywany jest kod znaku zgodnie ze stroną kodową edytora, a nie wymaganego Unicodu. Wówczas przy interpretacji znaku przez przeglądarkę wystąpi błąd. Z tych względów znacznie pewniej jest stosowanie w definicji wartości encji, referencji do znaków polskich, zamiast samych znaków. Przykładowo: Zamiast: <!ENTITY jwr "Jacek Rumiński &email;"> Lepiej: <!ENTITY jwr "Jacek Rumiński &email;"> gdzie: ń to referencja (&...;) do znaku (#) w kodzie szesnastkowym (x) o wartości 144. Jacek W. Rumiński 37 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Kody heksadecymalne polskich liter (Unicode) Jacek W. Rumiński 38 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Zgodnie z rekomendacją istnieją również predefiniowane encje: Znak „ Znak „ Znak „ Znak „ Znak „ < ”: > ”: & ”: ’ ”: ” ”: <!ENTITY lt "&#60;"> <!ENTITY gt ">"> <!ENTITY amp "&#38;"> <!ENTITY apos "'"> <!ENTITY quot """> Przestrzenie nazw (namespaces) – zbiory nazw definiujące słownik możliwych znaczników, definicja: xmlns:<prefix>='<identyfikator przestrzeni nazw>' -<prefix>, <prefix>, znacznik poprzedzający, określający zakres możliwych nazw zgodnie z wybranym przez „identyfikator przestrzeni nazw” słownikiem. Jacek W. Rumiński 39 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Przestrzenie nazw definiuje się dla elementu lub atrybutu. Przykładowo: Dla elementu: <salon xmlns:s="http://www.salonjac.com/sal"> <s:model> C5 </s:model> </salon> Przestrzenią nazw dla elementu <model> jest „http://www.salonjac.com/sal”. Dla atrybutu: <salon xmlns:s="http://www.salonjac.com/sal"> <samochod s:VIN=”232432432432412”> C5 </samochod> </salon> Przestrzenią nazw dla atrybutu „VIN” jest „http://www.salonjac.com/sal”. Jacek W. Rumiński 40 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji Przykładowe, standardowe przestrzenie nazw: Prefix/Aplikacja Przestrzeń nazw XHTML http://www.w3.org/1999/xhtml MathML http://www.w3.org/1998/Math/MathML SVG http://www.w3.org/2000/svg HTML http://www.w3.org/TR/REC-html40 XSL http://www.w3.org/1999/XSL/Format Jacek W. Rumiński 41 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna http://www.w3.org/TR/2006/REC-xml-20060816/ Jacek W. Rumiński 42 Canonical XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Specyfikacja XML Canonicalization (c14n) umożliwia sprowadzanie dokumentów XML do takiej postaci, aby można było porównywać logicznie równoważne dokumenty (np. dla podpisów cyfrowych). http://www.w3.org/TR/2001/REC-xml-c14n-20010315 <salon> <car id1="1" id2="2">audi</car> </salon> JEST RÓWNOWAŻNY <?xml version="1.0" encoding="UTF-8"?> <salon> <car id1="1" id2="2" >audi</car> </salon> Jacek W. Rumiński 43 Canonical XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Proces zamiany na postać kanoniczną obejmuje •Zmiana strony kodowej na UTF-8. •Nowe linie są normalizowane do oznaczenia "#xA". •Wartości atrybutów są normalizowane. •Domyślne atrybuty są dodawane do każdego elementu. •Sekcje CDATA są zastępowane przez ich treść (literalnie podane znaki z sekcji CDATA). •Encje znakowe (2 2 ) i parsowane referencje do encji są zamieniane na ich znaczenie (np. 2 na 2) •Znaki specjalne (wartości atrybutów i elementów) są zamieniane na referencje do znaków. Jacek W. Rumiński 44 Canonical XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Proces zamiany na postać kanoniczną obejmuje •Deklaracje XML i DTD są usuwane. •Puste elementy są zamieniane na pary znaczników początku i końca. •Znaki puste poza głównym elementem dokumentu oraz te pomiędzy znacznikiem początku i końca są normalizowane. •Znaki puste w treści są zachowywane. •Wartości atrybutów są otaczane znakami podwójnego cudzysłowu. •Zbędne deklaracje przestrzeni nazw są usuwane. •Oznaczenia/wystąpienia przestrzenni nazw i atrybuty są sortowane w ramach danego elementu. Jacek W. Rumiński 45 Canonical XML Przedmiot: Metody reprezentacji informacji Jacek W. Rumiński Politechnika Gdańska, Inżynieria Biomedyczna 46 Canonical XML Przedmiot: Metody reprezentacji informacji Jacek W. Rumiński Politechnika Gdańska, Inżynieria Biomedyczna 47 Metody reprezentacji informacji Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Plan wykładu: 1. Wprowadzenie – XML a bazy danych; 2. Cele XML; 3. Podstawowe definicje i pojęcia; 4. Charakterystyka dokumentu XML; 5. Rozbiór składniowy dokumentu XML; 6. Poprawność dokumentu XML; 7. Metody definicji typów dokumentów: DTD, XML-Schema; 8. Rodzaje dokumentów XML i formy ich składowania; 9. NXD – Native XML Databases; 10. Wyszukiwanie i przeszukiwanie dokumentów XML: XPath a XQuery; 11. XML w technologii Web Services: XML-RPC, SOAP, WSDL 12. Zastosowania XML Jacek W. Rumiński 48 XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji typ wersja strona kodowa rozłączność prolog opcjonalnie obowiązkowo Jacek W. Rumiński 49 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna prolog Definicja typu dokumentu poprzez identyfikator systemowy, będący referencją do pliku „salon.dtd”. Definicja ta jest wymagana, ze względu na określenie w pierwszej instrukcji przetwarzania, iż bieżący plik XML nie jest rozłączny (samodzielny-> standalone=”no”). opcjonalnie Jacek W. Rumiński obowiązkowo 50 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna „root” dokumentu Definicja głównego elementu dokumentu XML. Element posiada atrybut o nazwie „wlasciciel” i wartości stanowiącej referencje do encji o nazwie „kontakt”. opcjonalnie Jacek W. Rumiński obowiązkowo 51 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna opcjonalnie obowiązkowo komentarz Definicja subelementu o nazwie „samochod”. Element posiada 2 atrybuty („VIN” i „nrsilnika”) oraz cztery subelementy („marka”, „model”, „kolor”, „silnik”). Wartość elementu jest typu zbioru znaków, więc łatwo pomylić się wprowadzając tekst („;”). Jacek W. Rumiński 52 XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Dokument XML – ponownie. Prezentacja w przeglądarce MS IE. Jacek W. Rumiński 53 Metody reprezentacji informacji Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Plan wykładu: 1. Wprowadzenie – XML a bazy danych; 2. Podstawowe definicje i pojęcia; 3. Cele XML; 4. Charakterystyka dokumentu XML; 5. Rozbiór składniowy dokumentu XML; 6. Poprawność dokumentu XML; 7. Metody definicji typów dokumentów: DTD, XML-Schema; 8. Rodzaje dokumentów XML i formy ich składowania; 9. NXD – Native XML Databases; 10. Wyszukiwanie i przeszukiwanie dokumentów XML: XPath a XQuery; 11. XML w technologii Web Services: XML-RPC, SOAP, WSDL 12. Zastosowania XML Jacek W. Rumiński 54 Parsowanie XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Porządek struktury dokumentu XML związany jest bezpośrednio z jego automatyczną interpretacją. Interpretację tę wspomagać ma opracowany przez konsorcjum W3C model DOM (Document Object Model), stanowiący interfejs API dla potrzeb tworzenia aplikacji będących procesorami XML. DOM bazuje na konstrukcji drzewa elementów, stąd główny element dokumentu nazywany jest <root> (korzeń). Z korzenia dokumentu wyprowadzone są poszczególne gałęzie i węzły, wyznaczające strukturę hierarchii elementów. W tworzeniu modelu obowiązuje zatem zasada „od ogółu do szczegółu”. DOM implementowany jest na poziomie języków programowania najczęściej Java i C++. Jacek W. Rumiński 55 Parsowanie XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna DOM zaprojektowano w ramach następujących poziomów: •Level 1. Obejmuje rdzeń specyfikacji związany z dwoma podstawowymi modelami dokumentów XML i HTML. Określa również nawigację w ramach modelu. •Level 2. Obejmuje model arkusza stylów oraz definiuje funkcjonalność związaną z przetwarzaniem informacji o stylu dokumentu. Określa tak ważny model zdarzeń oraz wspiera przestrzenie nazw XML. •Level 3. Określi operacje (wczytanie i zapis) wykonywane na dokumentach oraz schematach (DTD, XML Schema). •Inne: języki zapytań, zagadnienia bezpieczeństwa, itd. Jacek W. Rumiński 56 Parsowanie XML Politechnika Gdańska, Inżynieria Biomedyczna Przedmiot: Metody reprezentacji informacji serializacja <samochod> samochod <marka> Alfa Romeo </marka> <model> 159</model> <kolor>czarny </kolor> </samochod> marka Alfa Romeo model 159 kolor czarny parsowanie Jacek W. Rumiński 57 Parsowanie XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Automatyczna analiza dokumentu XML wykorzystuje rozbiór składniowy (parsing). Programy dokonujące takiego rozbioru (parsers) implementują określony model reprezentacji i interpretacji dokumentu XML. Jednym z dwóch głównych metod rozbioru jest budowanie pełnego drzewa dokumentu XML zgodnie ze specyfikacją DOM. Program implementujący DOM zawiera definicję metod zadeklarowanych w abstrakcyjnym modelu. Implementacja ta uwzględnia konkretny język programowania. Przykładowo dla bardzo często wykorzystywanego w pracy z XML języka Java, zestaw klas i metod modelu DOM przedstawia kolejny slajd. Do najbardziej znanych implementacji modelu DOM (parserów) można zaliczyć: Xerces (Apache), XML4J (IBM), JAXP (Sun), XP (James Clark). Z zasady pisząc program dokonujący rozbioru gramatycznego korzystamy z nazw modelu abstrakcyjnego (model DOM). Program będzie działał właściwie jeżeli wczytamy wcześniej wybraną implementację (parsera) tych klas (upcasting). Jacek W. Rumiński 58 Parsowanie XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Węzeł drzewa – zasadniczy element danych Reprezentacja atrybutu Komentarz Wartość tekstowa elementu lub atrybutu Reprezentacja całego dokumentu XML Reprezentacja elementu Jacek W. Rumiński 59 Parsowanie XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Rozbiór dokumentu XML zgodnie z modelem DOM realizowany jest poprzez kolejne wyszukiwanie węzłów w drzewie. Standardowo pierwszym krokiem jest wczytanie dokumentu i stworzenie jego reprezentacji w pamięci. Etap ten nie jest standaryzowany przez W3C, niemniej wielu dostawców oprogramowania stosuje proste wywołanie: DOMParser.getDocument(). Pobrany dokument znajduje się w pamięci! Jest to ważne z punktu widzenia ograniczeń w przetwarzaniu dokumentu. Wydobywanie informacji z drzewa odbywa się dalej zgodnie ze standardowymi (DOM) metodami parsera, np.: Document.getDocumentElement(); Element.getAttributte(); Node.getFirstChild(); itd. Jacek W. Rumiński 60 Parsowanie XML Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna DEMO: XMLDOMCreator.java Jacek W. Rumiński 61 Parsowanie XML Przedmiot: Metody reprezentacji informacji DEMO 3 Politechnika Gdańska, Inżynieria Biomedyczna DEMO: XMLCreator.java JDOM: WWW.JDOM.ORG Jacek W. Rumiński 62 Metody reprezentacji informacji Przedmiot: Metody reprezentacji informacji Politechnika Gdańska, Inżynieria Biomedyczna Projekt „Przygotowanie i realizacja kierunku inżynieria biomedyczna – studia międzywydziałowe” współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Jacek W. Rumiński