Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Slajd 1© J.Rumiński Jacek Rumiński  XML a bazy danych  Eksploracja danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3461757,

Podobne prezentacje


Prezentacja na temat: "Slajd 1© J.Rumiński Jacek Rumiński  XML a bazy danych  Eksploracja danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3461757,"— Zapis prezentacji:

1 slajd 1© J.Rumiński Jacek Rumiński  XML a bazy danych  Eksploracja danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,

2 slajd 2© J.Rumiński  Omówienie planu wykładów i ćwiczeń laboratoryjnych  Omówienie ogólnych zagadnień organizacyjnych

3 slajd 3© J.Rumiński Jacek Rumiński Język XML jako sposób zapisywania informacji źródłowych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,

4 slajd 4© J.Rumiński Literatura pomocnicza: -XML, XSL, XPath – rekomendacje, specyfikacje i podręczniki na stronach oraz -podręczniki drukowane o XML, np.: XML. Księga eksperta, Rusty Harold, Wydawnictwo Helion -XML a bazy danych:

5 slajd 5© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

6 slajd 6© J.Rumiński 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)

7 slajd 7© J.Rumiński Przykładowy dokument XML – widok uproszczony element atrybut znacznik

8 slajd 8© J.Rumiński Przykładowy dokument XML – widok pełny wartość elementu wartość atrybutu

9 slajd 9© J.Rumiński XML a bazy danych: 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.

10 slajd 10© J.Rumiński Charakterystyka porównawcza XML z systemami zarządzania relacyjnymi bazami danych (SZRBD) XMLSZRBD Dane w pojedynczej strukturze hierarchicznej Dane w wielu relacjach (tabelach) Węzły struktury (elementy) mogą posiadać wartość własną oraz liczne wartości atrybutów Komórki tabel przechowują pojedyncze wartości Elementy mogą być zagnieżdżoneWartości komórek są atomowe Kolejność elementów jest określonaKolejność krotek (wierszy) nie jest definiowana Schemat dokumentu jest opcjonalny Schemat bazy jest konieczny Bezpośrednie składowanie zbioru danych dokumentu w XML Dane dokumentu rozłożone na zbiór atrybutów/relacji Wyszukiwanie danych poprzez dedykowane języki, np.: XQuery Wyszukiwanie danych poprzez język SQL

11 slajd 11© J.Rumiński 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

12 slajd 12© J.Rumiński XML a bazy danych – scenariusze powiązań RDB1 Synteza dokumentu XML RDB2 RDB1 RDB2 Prezentacja dokumentu XML Składowanie dokumentu XML NXD1 WWW NXD1 Rozbiór (analiza) dokumentu XML Transformacja i prezentacja w sieci WWW NXD – Native XML Database

13 slajd 13© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

14 slajd 14© J.Rumiński 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.

15 slajd 15© J.Rumiński 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: liczbę studentów na sali? -wysokość czesnego? -odległość pomiędzy Gdańskiem a Warszawą? -hasło do ciekawego serwisu w Internecie?

16 slajd 16© J.Rumiński Dany jest fragment kodu HTML: Jacek Rumiński Katedra Inżynierii Biomedycznej Przetworzenie kodu przez przeglądarkę wygeneruje wynik: Jacek Rumiński Katedra Inżynierii Biomedycznej Czy maszyna (algorytm) jest w stanie zinterpretować ten kod? Czym jest ? Przykład kolejny:

17 slajd 17© J.Rumiński Jak w powyższym kodzie można znaleźć nazwę Katedry? Algorytm 1. Jeśli ma dwa to po drugim 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: Jacek Rumiński Katedra Inżynierii Biomedycznej

18 slajd 18© J.Rumiński 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.

19 slajd 19© J.Rumiński 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,.....

20 slajd 20© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

21 slajd 21© J.Rumiński Podstawą wszelkich definicji jest rekomendacja XML 1.0 opracowana 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ą.

22 slajd 22© J.Rumiński Struktura logiczna dokumentu XML zdefiniowana jest jako: document ::= prolog element Misc*prologelementMisc 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 | SCommentPIS gdzie: Comment – komentarz, PI – instrukcja przetwarzania, S – znaki puste (#x20 | #x9 | #xD | #xA) („white spaces”). Przykładowy prolog:

23 slajd 23© J.Rumiński Podstawowe znaki wykorzystywane w definicjach specyfikacji XML i jej pochodnych do określania krotności (następstwa) jednostek: ? 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”).

24 slajd 24© J.Rumiński Instrukcja przetwarzania (PI) – zanurzona w dokumencie XML instrukcja dla aplikacji przetwarzającej dokument. Przykładem instrukcji przetwarzania jest prolog. PI ::= ' ' Char*)))? '?>'PITargetSChar PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))Name Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] czyli Unicode Name ::= (Letter | '_' | ':') (NameChar)*LetterNameChar NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |LetterDigit CombiningCharCombiningChar | ExtenderExtender gdzie: Letter, Digit, CombiningChar, Extender jak i BaseChar oraz Ideographic to znaki zdefiniowane w rekomendacji XML poprzez zestaw kodów Unicodu.

25 slajd 25© J.Rumiński CDATA – „character data” – dane tekstowe, definiowane w dokumencie XML poza znacznikami. Nie posiadają zatem strukturalnej i uporządkowanej własności języka XML. Komentarz – opis treści dokumentu XML lub inne uwagi zanurzone w dokumencie Comment ::= ' 'Char Uwaga! Zgodnie z powyższym zakończenie komentarza ‘--->’ jest niedozwolone. CDSect ::= CDStart CData CDEndCDStartCDataCDEnd CDStart ::= '' Char*))Char CDEnd ::= ']]>' Przykładowy prolog:

26 slajd 26© J.Rumiński 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:

27 slajd 27© J.Rumiński 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: -zewnętrzna encja: 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.

28 slajd 28© J.Rumiński 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ć: FPI - Formal Public Identifier – posiada budowę zawierającą znak : „-” zasób niestandardowy; „+” zasób standardowy (DTD), 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.

29 slajd 29© J.Rumiński 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”. 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 „%”. 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 „;”). (...)

30 slajd 30© J.Rumiński 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: Lepiej: gdzie: ń to referencja (&...;) do znaku (#) w kodzie szesnastkowym (x) o wartości 144.

31 slajd 31© J.Rumiński Kody heksadecymalne polskich liter (Unicode)

32 slajd 32© J.Rumiński Przestrzenie nazw (namespaces) – zbiory nazw definiujące słownik możliwych znaczników, definicja: xmlns: =' ' -, znacznik poprzedzający, określający zakres możliwych nazw zgodnie z wybranym przez „identyfikator przestrzeni nazw” słownikiem. Zgodnie z rekomendacją istnieją również predefiniowane encje: Znak „ Znak „ > ”: Znak „ & ”: Znak „ ’ ”: Znak „ ” ”:

33 slajd 33© J.Rumiński Dla elementu: C5 Przestrzenią nazw dla elementu jest „http://www.salonjac.com/sal”. Dla atrybutu: C5 Przestrzenią nazw dla atrybutu „VIN” jest „http://www.salonjac.com/sal”. Przestrzenie nazw definiuje się dla elementu lub atrybutu. Przykładowo:

34 slajd 34© J.Rumiński Przykładowe, standardowe przestrzenie nazw: Prefix/AplikacjaPrzestrzeń nazw XHTMLhttp://www.w3.org/1999/xhtml MathMLhttp://www.w3.org/1998/Math/MathML SVGhttp://www.w3.org/2000/svg HTMLhttp://www.w3.org/TR/REC-html40 XSLhttp://www.w3.org/1999/XSL/Format

35 slajd 35© J.Rumiński Przegląd rekomendacji XML – demonstracja.

36 slajd 36© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

37 slajd 37© J.Rumiński Dokument XML – ponownie. prolog typwersjastrona kodowarozłączność opcjonalnieobowiązkowo

38 slajd 38© J.Rumiński Dokument XML – ponownie. prolog opcjonalnieobowiązkowo 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”).

39 slajd 39© J.Rumiński Dokument XML – ponownie. „root” dokumentu opcjonalnieobowiązkowo Definicja głównego elementu dokumentu XML. Element posiada atrybut o nazwie „wlasciciel” i wartości stanowiącej referencje do encji o nazwie „kontakt”.

40 slajd 40© J.Rumiński Dokument XML – ponownie. komentarz opcjonalnieobowiązkowo 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 („;”).

41 slajd 41© J.Rumiński Dokument XML – ponownie. Prezentacja w przeglądarce MS IE.

42 slajd 42© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

43 slajd 43© J.Rumiński 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 (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++.

44 slajd 44© J.Rumiński ShadyGrove Aeolian Over the River, Charlie Dorian DOM – Document Object Model - przykład Fragment dokument HTML Reprezentacja dokumentu według DOM

45 slajd 45© J.Rumiński 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).

46 slajd 46© J.Rumiński Węzeł drzewa – zasadniczy element danych Reprezentacja atrybutu Komentarz Wartość tekstowa elementu lub atrybutu Reprezentacja całego dokumentu XML Reprezentacja elementu

47 slajd 47© J.Rumiński 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.

48 slajd 48© J.Rumiński SAX Innym modelem rozbioru składniowego dokument XML jest model SAX ( S imple A PI for X ML parsing). SAX jest modelem wypracowanym przez użytkowników XML niezależnie od standardu DOM. Głównym założeniem modelu jest szybki dostęp do wybranych węzłów dokumentu XML bez konieczności składowania całego drzewa. SAX wychodzi z założenia, iż analizując dokument XML natrafiamy na różne encje. Encje te wywołują zdarzenia, których kategorie zależą od znalezionych encji. Jeżeli znajdujemy element, to generowane jest zdarzenie typu, jeśli znak pusty to generowane jest zdarzenie, itd. Obsługiwanie zdarzeń i pobieranie danych jakie niosą prowadzi do uzyskania danych dokumentu XML. Zestaw klas i interfejsów modelu SAX w wersji 2.0, zgodnie ze składnią języka Java, prezentuje kolejny slajd.

49 slajd 49© J.Rumiński Główny zestaw metod obsługujących zdarzenia wywoływane w procesie analizy treści dokumentu XML.

50 slajd 50© J.Rumiński

51 slajd 51© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX startDocument

52 slajd 52© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX startElement (nazwa=„salon”, brak atrybutów)

53 slajd 53© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX ignorableWhitespace

54 slajd 54© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX startElement (nazwa=„samochod” Atrybuty(„VIN”, „nrsilnika”)

55 slajd 55© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX ignorableWhitespace

56 slajd 56© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX startElement (nazwa=„marka”, brak atrybutów)

57 slajd 57© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX characters

58 slajd 58© J.Rumiński Przykładowy proces analizy dokumentu XML według modelu SAX endElement (nazwa=„marka”) itd.

59 slajd 59© J.Rumiński Uwaga praktyczna: Szybkość operacji rozbioru składniowego dokumentu XML, bez względu na model, zależy od jego zawartości. Zatem im mniej znaków pustych w dokumencie (spacji, CR, LF, itd.) tym lepiej.

60 slajd 60© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

61 slajd 61© J.Rumiński Programy dokonujące rozbioru składniowego dokumentów XML mogą być wzbogacane o możliwość weryfikacji: 1.Czy poddany przetwarzaniu obiekt danych jest dokumentem XML, czyli czy jest dobrze-sformułowany? 2.Czy poddany przetwarzaniu dokument XML jest poprawny. Dla przypomnienia, zgodnie z przedstawioną już specyfikacją XML, obiekt danych jest dobrze-sformułowany jeśli uwzględnia wszystkie wymagania jawnie zapisane w rekomendacji. Jawny zapis wymagań przedstawiony jest jako ścisła definicja budowy logicznej dokumentu, oraz zbioru wymagań szczegółowych poprzedzonych wyróżnikiem: „Well-formedness constraint: „ Well-formedness constraint: Element Type Match The Name in an element's end-tag must match the element type in the start-tag.Name Przykładowo: {Nazwa (zgodna z typem Name) znacznika końca elementu musi być identyczna jak nazwa znacznika początku tego samego elementu.}

62 slajd 62© J.Rumiński Poprawność dokumentu XML (validity) określana jest na podstawie definicji typu dokumentu (DOCTYPE), najczęściej realizowanego poprzez DTD lub XML Schema. Podobnie jak w badaniu czy obiekt danych jest dobrze sformułowany, tak i w przypadku sprawdzania poprawności dokumentu XML konieczne jest spełnienie wymagań podanych w specyfikacji XML. Jawny zapis wymagań w rekomendacji poprzedzony jest wyróżnikiem: „Validity constraint:” Validity constraint: Root Element Type The Name in the document type declaration must match the element type of the root element.Nameroot element Przykładowo: {Nazwa (zgodna z typem Name) występująca w deklaracji typu dokumentu musi być identyczna jak nazwa głównego elementu (korzenia).}

63 slajd 63© J.Rumiński Sprawdzanie poprawności wymaga definicji schematu dokumentu zawierającego definicje wszystkich możliwych do stosowania encji w tworzonym dokumencie. Sprawdzanie poprawności jest opcjonalne, tzn. obiekt danych nie musi być poprawny aby być dokumentem XML. Znakomita większość oprogramowania dostępnego na rynku, dostarcza mechanizmy umożliwiające weryfikację czy dany obiekt jest dobrze sformułowany. Tylko niektóre z nich umożliwiają dodatkowo sprawdzenie poprawności dokumentu. Rozpatrzmy kilka przykładów zastosowania programu badającego formułę i poprawność obiektów danych. Przeprowadzone analizy wykonano z zastosowaniem darmowego programu „xmlvalid” firmy ElCel („http://www.elcel.com”).

64 slajd 64© J.Rumiński 1.dla obiektu danych salon.xml (wcześniejsze przykłady), nie zawierającego definicji typu dokumentu, sprawdzenie czy jest on dobrze sformułowany przebiega następująco: Polecenie: xmlvalid –v salon.xml Wynik: salon.xml is well-formed Zatem badany obiekt jest dokumentem XML. Wprowadzając sztucznie błąd, np. zmieniając nazwę znacznika początku elementu względem nazwy znacznika końca, wynik testu jest następujący: Wynik:salon.xml [58:9] : Fatal error: end tag ' ' does not match start tag. Expected ' ' Pojawia się błąd krytyczny (podanie miejsca w kodzie źródłowym oraz informacji o rodzaju błędu). Zatem badany obiekt nie jest dokumentem XML!

65 slajd 65© J.Rumiński 2.dla dokumentu salon.xml (wcześniejsze przykłady), zawierającego definicję typu dokumentu, sprawdzanie czy jest on poprawny przebiega następująco: Polecenie: xmlvalid salon.xml Wynik: salon.xml is valid Zatem badany dokument XML jest poprawny. Wprowadzając sztucznie błąd jak poprzednio wynik testu jest następujący: Wynik: salon.xml [56:20] : Error: element content invalid. Element 'ilnik' is not expected here, expecting 'silnik' salon.xml [58:9] : Fatal error: end tag ' ' does not match start tag. Expected ' ' Pojawia się błąd i błąd krytyczny (podanie miejsca w kodzie źródłowym oraz informacji o rodzaju błędu). Zatem badany obiekt nie jest poprawny i nie jest dokumentem XML!

66 slajd 66© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

67 slajd 67© J.Rumiński Definicja typu dokumentu określa schemat możliwych dokumentów XML tworzonych zgodnie z danym typem. W schemacie definiowane są: -znaczniki (elementy), jakie mogą być wykorzystane w dokumencie; -atrybuty dla określonych elementów; -wybór (lub definicja) typów danych dla powyższych encji, -encje. Najbardziej popularne (rekomendacje W3C) metody definicji schematu dokumentu XML to: -DTD (Document Type Definition); -XML Schema. DTD jest definiowany bezpośrednio w rekomendacji XML. Schemat XML Schema, jako późniejszy, definiowany jest w oddzielnej specyfikacji: (struktura) (typy danych)

68 slajd 68© J.Rumiński DTD Obsługa schematu dokumentu XML zawiera zawsze dwa zasadnicze elementy: 1.Definicję schematu 2.Wywołanie schematu. W przypadku wykorzystania DTD definicja schematu może być: 1.częścią składową dokumentu XML (wówczas atrybut standalone=„yes”), 2.rozdzielnym dokumentem (wówczas atrybut standalone=„no”). Zanim rozpatrzymy reguły definicji DTD rozpatrzmy sposób jego powiązania z dokumentem XML. 1.{dokument samodzielny} -, 2.{dokument złożony} -, czyli stosuje się identyfikator systemowy (ew. publiczny).

69 slajd 69© J.Rumiński DTD Definicja DTD zawiera listę typów encji możliwych do wykorzystania w tworzonym dokumencie – instancji DTD. 1.ELEMENT – deklaracja typu: elementdecl ::= ' ' SNameScontentspecS contentspec ::= 'EMPTY' | 'ANY' | Mixed | childrenMixedchildren children ::= (choice | seq) ('?' | '*' | '+')?choiceseq cp ::= (Name | choice | seq) ('?' | '*' | '+')?Namechoiceseq choice ::= '(' S? cp ( S? '|' S? cp )+ S? ')'ScpS cpS seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'ScpS cpS Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA' S? ')'S NameS Przykłady:

70 slajd 70© J.Rumiński Warto szczególnie zwrócić uwagę na jednostkę „Mixed”. Jej wykorzystanie umożliwia bowiem stworzenie treści elementu jako przeplatanego tekstu z subelementami. W DTD można określić wymagania co do typu tych elementów, lecz nie można zdefiniować kolejności ich występowania czy ich liczby w dokumencie XML. Jednostka „Mixed” umożliwia w zastosowaniach XML stworzenie wersji obiektu danych XML nazywanego jako „ukierunkowany na dokument” („Document oriented”). Druga postać obiektów danych XML, nazywanych jako „ukierunkowane na dane” („Data oriented”), nie zawiera przeplatania tekstu z subelementami. DTD

71 slajd 71© J.Rumiński 2. ATTLIST – deklaracja listy atrybutów elementu AttlistDecl ::= ' 'SNameAttDefS AttDef ::= S Name S AttType S DefaultDeclSNameSAttTypeSDefaultDecl AttType ::= StringType | TokenizedType | EnumeratedTypeStringTypeTokenizedTypeEnumeratedType StringType ::= 'CDATA' TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS' EnumeratedType ::= NotationType | EnumerationNotationTypeEnumeration NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'S NameS NameS Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'SNmtokenS NmtokenS DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? AttValue)AttValue #REQUIRED – atrybut zawsze musi wystąpić, #IMPLIED – atrybut nie ma wartości domyślnej, #FIXED – atrybut ma podaną wartość stałą DTD

72 slajd 72© J.Rumiński Przykłady: DTD

73 slajd 73© J.Rumiński DTD 3. ENTITY – deklaracje i definicje encji – zgodnie z opisem podanym na wcześniejszych slajdach. Przykłady:

74 slajd 74© J.Rumiński DTD – pełna definicja DTD (zgodna z poprzednim przykładem dokumentu XML – „salon”)

75 slajd 75© J.Rumiński Przykładowe wady DTD: 1.ograniczone możliwości definicji struktury dokumentu (np. brak grupowania, referencji, opisów,itp.), 2.brak typów danych innych niż tekstowy, 3.brak możliwości definicji własnych typów danych, 4.brak możliwości definicji kolejności i liczebności występowania elementów, 5.niezgodność ze specyfikacją XML (efekt: specjalne programy rozbioru i syntezy dokumentu DTD). Eliminacja tych wad – XML Schema

76 slajd 76© J.Rumiński XML Schema tworzony jest jako dokument XML zawierający główny element o nazwie zgodnie z wymaganą i definiowaną dla niego przestrzenią nazw: Weryfikacja poprawności danego dokumentu XML względem schematu XML Schema wymaga wskazania pliku schematu. Realizowane to jest albo poprzez program dokonujący rozbioru (pliki jako parametry) albo poprzez jawne zapisanie w dokumencie XML referencji do schematu. Referencję zapisuje się z wykorzystaniem przestrzeni nazw: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Przykładowo:

77 slajd 77© J.Rumiński Definicja schematu dokumentu zgodna z XML Schema wymaga zbudowania dokumentu XML, zawierającego elementy zgodne z wymaganą przestrzenią nazw („xsd”). Każdy element umożliwia zdefiniowanie określonego aspektu schematu poprzez podanie wartości atrybutów tego elementu. Atrybuty są integralną częścią elementów przestrzeni XSD, zdefiniowanych w rekomendacji. Przykładowo definicja typu elementu projektowanego dokumentu XML wymaga określenia: np.: Definicja elementu o nawie „samochod” i typie danych jego treści jako łańcuch znaków. Element nie posiada żadnych atrybutów ani subelementów.

78 slajd 78© J.Rumiński Element główny dokumentu XML (root) zawiera najczęściej subelementy. Zgodnie ze specyfikacją XML Schema, subelementy są częścią definicji typu elementu. Specyfikacja wyróżnia dwie klasy typów: simpleType oraz complexType. Typ simpleType jest zarezerwowany tylko do przechowywania wartości, bez określania subelementów czy atrybutów. Zatem jeśli dany element ma mieć subelementy to konieczne jest zapisanie ich w elemencie przestrzeni XSD o nazwie. Przykładowo:

79 slajd 79© J.Rumiński Tworząc złożony typ danych dla elementu można określić warunki wykorzystania czy kolejności występowania subelementów. Do tych celów służą trzy podstawowe specyfikatory: - subelementy zdefiniowane w tym elemencie muszą w instancji schematu (dokumencie XML) wystąpić w podanej kolejności; - kolejność występowania subelementów w dokumencie XML jest dowolna; - element dokumentu XML zawierać może jeden ze zdefiniowanych subelementów lub jedną z grup subelementów. Przykład:

80 slajd 80© J.Rumiński Deklaracje elementów i atrybutów można łączyć w grupy. Elementy lub grupy należą do danej grupy, jeśli są subelementami elementu, np.: Do deklaracji grupy, deklaracji elementu lub atrybutu można się odwołać poprzez użycie atrybutu „ref”, np.: Za pomocą atrybutów ”minOccurs” oraz ”maxOccurs” elementu można ponadto określić dopuszczalną powtarzalność deklarowanego elementu.

81 slajd 81© J.Rumiński Definiując złożony typ danych dla elementu docelowego można wykorzystać atrybut „mixed” elementu, którego wartość ”true” oznacza, że tekst może przeplatać się z subelementami (Document-oriented). Podobnie jak w DTD również i w XML Schema nie ma możliwości określania lokalizacji treści elementu względem subelementów. XML Schema: Element dokumentu XML: Franek ma Reanult Clio, którym jeździ codziennie nad morze Przykład:

82 slajd 82© J.Rumiński Deklaracja atrybutu występuje zawsze na końcu deklaracji złożonego typu danych. Atrybut definiowany jest poprzez atrybuty elementu, np.: XML Schema umożliwia również deklaracje określające, które elementy muszą być unikalne. Do tych celów służą elementy lub. Elementy te zawierają zgodnie ze specyfikacją XPath adres unikalnego elementu, np.:

83 slajd 83© J.Rumiński W deklaracjach elementów, atrybutów i prostych typów danych stosowane są typy danych zdefiniowane w specyfikacji XML. Należą do nich (kolejny slajd): W XML Schema można definiować własne, proste typy danych. Służy do tego element. Nazwa nowego typu definiowana jest jako wartość atrybutu elementu simpleType. Typ bazowy oraz dziedzinę określa szereg subelementów zdefiniowanych w rekomendacji, np..: (typ o nazwie „wiek” możliwe wartości to liczby całkowite z zakresu ) (typ o nazwie „kod” możliwe wartości muszą być zgodne z wzorcem w postaci wyrażenia regularnego: po dwóch cyfrach występuje myślnik oraz 5 wielkich liter z zakresu kodu ASCII.)

84 slajd 84© J.Rumiński (unconstrained)

85 slajd 85© J.Rumiński Specyfikacja XML Schema podaje znacznie więcej możliwości kompozycji schematu dokumentu niż te podstawowe wymienione w tym dokumencie. Do ciekawszych zaliczyć jeszcze można następujące elementy: - unia elementów lub grup; - opis dokumentu, zawiera szereg subelementów, jest stosowany do dokumentacji schematu zamiast tradycyjnego komentarza XML; - załączenie innego schematu.

86 slajd 86© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

87 slajd 87© J.Rumiński Składowanie dokumentów XML jest najczęściej związane z rodzajem dokumentu, lub jego zaklasyfikowaniem do danego rodzaju. Zgodnie z tym co przedstawiono wcześniej dokumentu podzielono na: -ukierunkowane na dane -ukierunkowane na dokumenty. Pierwszy rodzaj dokumentu posiada wyraźny podział struktury, bez przeplatania treści elementu XML ze znacznikami. Umożliwia to na proste rozbicie struktury XML i jej odwzorowanie na znane modele danych jak np. hierarchiczny, relacyjny czy obiektowy. Systemy zarządzania bazami danych obsługujące tego rodzaju dokumenty nazywane są „XML enabled”. Czasami możliwe jest również zastosowanie warstwy pośredniczącej (middleware) odwzorowującej XML na model danych obsługiwany przez określony SZBD. Oprogramowanie warstwy pośredniej realizuje najczęściej odwzorowanie: XML->SQL.

88 slajd 88© J.Rumiński W przypadku drugiego typu dokumentów („document-centric”) tworzone SZBD składają całe dokumenty. Stanowią zatem swoiste kolekcje dokumentów, stąd często słowo „kolekcja” jest zamienne w tym przypadku względem tabeli (relacji). Kolekcje dokumentów XML są zorganizowane w ramach tzw. „Native XML Database” (NXD). Bazy dokumentów XML są dedykowane tym właśnie dokumentom, a tworzone dla nich systemy zarządzania umożliwiają podstawowe operacje zapisywania, usuwania, aktualizacji czy wyszukiwania. Z tych względów tworzone są również propozycje norm (rekomendacji) jak np. XML:DB (http://www.xmldb.org/).http://www.xmldb.org/

89 slajd 89© J.Rumiński Data-centric Wymiana danych pomiędzy bazą danych a dokumentem XML wymaga odwzorowania schematu dokumentu (DTD, XML Schema) na schemat bazy danych. Odwzorowanie jest często realizowane za pomocą implementacji wyrażeń SQL, XQuery czy XPath. Jeżeli z jakiś przyczyn dana struktura dokumentu XML nie może być bezpośrednio odwzorowana na strukturę bazy danych stosuje się dodatkową transformację dokumentu XML do innej postaci (zastosowanie XSLT, o czym później). Odwzorowanie schematu dokumentu wykorzystuje zasadniczo tylko logiczną strukturę dokumentu, i co więcej, ogranicza się jedynie do najważniejszych jej części tj.: elementów i atrybutów. Odwzorowanie realizowane jest najczęściej do dwóch postaci: -tablicowej, -obiektowo-relacyjnej.

90 slajd 90© J.Rumiński Data-centric Odwzorowanie tablicowe jest bardzo często realizowane przez warstwy pośrednie, a polega na utworzeniu lub odtworzeniu struktury drzewiastej dokumentu XML w formie uszczegółowiania elementów bazy danych:

91 slajd 91© J.Rumiński Data-centric Odwzorowanie obiektowo-relacyjne dokumentu XML polega na utworzeniu struktury klasy danego typu (np. bazując na „complex element type” dla XML Schema), a później odwzorowaniu go na model relacyjny (klasy na tabele; pola na kolumny, itd.). Należy podkreślić iż odwzorowanie obiektowo-relacyjne nie wykorzystuje modelu DOM danego dokumentu, który jest raczej właściwy dla organizacji logicznej dokumentu XML (relacja Element- >Element zamiast Samochod->Kierowca), niż dla reprezentacji danych. Dokumenty typu „data-centric” są również przechowywane w bazach danych typu NXD. Jedną z przyczyn zastosowania tego rodzaju bazy dla dokumentów „data-centric” może być potrzeba szybkiego pobierania dokumentów XML z bazy. Ponieważ w NXD składowane są dokumenty, zatem nie ma potrzeby ich tworzenia w odpowiedzi na dane żądanie pobrania.

92 slajd 92© J.Rumiński Data-centric Oddzielnym zagadnieniem jest odwzorowanie typów danych. W XML zasadniczym typem danych jest tekst. Zatem konieczne jest przeprowadzenie konwersji typów uwzględniającej zarówno zakres jak i rodzaj danych. Ponadto należy pamiętać o stosowanych zestawach danych. XML bazuje zasadniczo na Unicodzie, z wyjątkiem wybranych znaków sterujących, które nie powinny być wykorzystane jako treść danych. Kolejnym problemem są dane binarne. Odniesienie do nich jest możliwe poprzez zastosowanie encji, nie podlegających rozbiorowi (interpretacji przez procesor XML). Ponieważ encja jest jednak elementem fizycznym a nie logicznym struktury XML zatem nie jest odwzorowywana. Inna możliwość to zakodowanie bajtów znakami (kodowanie Base64). Brak jest jednak standardowych notacji na oznaczenie, że dany element zawiera tego typu zakodowane dane, stąd jest to tylko i wyłącznie w opcji oprogramowania realizującego odwzorowanie.

93 slajd 93© J.Rumiński Document-centric Składowanie dokumentów XML może również być zrealizowane na wiele sposobów. Pierwsze możliwe rozwiązanie to zapis dokumentu XML w modelu hierarchicznym -> jako plik w systemie plików. Innym rozwiązaniem może być zastosowanie typów danych LOB (Large OBject, np.. CLOB -> Character Large OBject). Jeszcze innym rozwiązaniem jest składowanie dokumentu XML jako obiektu w obiektowej bazie danych. Składowanie dokumentów XML wymaga w tym wypadku spełnienia warunku identyczności dokumentu dostarczonego do archiwum z dokumentem pobieranym z archiwum (round-tripping). Jest to niezwykle ważna własność szczególnie dla procesu podpisywania dokumentów XML (XML Digital Signature Standard); gdzie każdy znak dokumentu musi wystąpić aby pozytywnie zweryfikować podpis. Składowanie dokumentów XML (tzn. w formie document-centric) realizowane jest w ramach technologii Native XML Databases.

94 slajd 94© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

95 slajd 95© J.Rumiński Native XML Databases (NXD) określa ogólną klasę systemów zarządzania bazami danych tworzących kolekcje dokumentów XML w formie pełnej (tzn., wszystkie znaki dokumentu XML są składowane). Podsumowanie metod organizacji baz danych XML przedstawia poniższy diagram (na przykładzie Oracle XML DB).

96 slajd 96© J.Rumiński NXD umożliwiają składowanie zarówno elementów/atrybutów jak i komentarzy, encji nie podlegających rozbiorowi, itp. NXD obsługują dedykowane dla XML języki zapytań. Jest to istotna funkcja, gdyż trudno jest zdefiniować i wykonać w SQL lub OQL niektóre zapytania dotyczące składni dokumentu XML. Podjęto szereg prób definicji NXD; jedna z najbardziej popularnych została sformułowana przez XML:DB (na łamach listy dyskusyjnej): NXD: Definiuje logiczny model dokumentu XML – w odróżnieniu do danych dokumentu – oraz umożliwia składowanie i odzyskiwanie dokumentów zgodnie z tym modelem. Przykładowymi modelami są: XPath, DOM, SAX. Jednostką danych modelu jest dokument XML (w modelu relacyjnym krotka, w modelu obiektowym obiekt). Model nie określa fizycznej organizacji danych.

97 slajd 97© J.Rumiński Cechy realizacji NXD: - operują na pojęciu kolekcji (relacja w RDB) dokumentów XML (krotka w RDB); - wykorzystują dedykowane języki zapytań, np.: XPath, XQL, Xquery; - wykorzystują dedykowane metody aktualizacji danych, np.: XUpdate; - dostarczają API dla rozwoju aplikacji; - wspomagają indeksowanie dokumentów; - normalizacja dokumentów realizowana jest na poziomie projektu schematu (możliwe są jednak elementy wielowartościowe); - integralność referencyjna zapewnia istnienie poprawnych dokumentów XML wskazywanych przez XLink lub inne mechanizmy referencyjne. Popularną (poza komercyjnymi) wersją NXD jest Xindice (Apache, dawniej dbXML).

98 slajd 98© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

99 slajd 99© J.Rumiński Zasadnicza składnia wyrażenia XPath opiera się o znaną ścieżkę dostępu w hierarchii systemu plików, np.: /sklep - oznacza główny element dokumentu (korzeń), /sklep/chleb- oznacza subelement „chleb” dokumentu, //napoj- oznacza wszystkie elementy „napoj” hierarchii, /sklep/*- oznacza wszystkie subelementy elementu „sklep”, /sklep/napoj[1]- oznacza pierwszego potomka subelementu „napoj”, /sklep/napoj[last()] – oznacza ostatniego (użycie funkcji) potomka subelementu „napoj”, oznacza atrybuty „cola” wszystkich elementów „napoj”, oznacza wszystkie elementy „napoj” bez atrybutow; – oznacza wszystkie elementy „napoj” o wartości atrybutu cola równej „pepsi” XPath – rekomendacja W3C pozwalająca na definiowanie referencji (adresu) do encji. Wykorzystywana jest często do formułowania treści wyszukiwanej w dokumencie XML. XPath jest bardzo często wykorzystywany przez XDB. W wersji XPath 2.0 wprowadzono wyrażenia regularne rozszerzające dodatkowo zakres możliwych do zdefiniowania wzorców.

100 slajd 100© J.Rumiński //*[count(napoj)=2] – oznacza wszystkie elementy mające dwóch potomków „napoj”, //*[contains(name(),‘n')] – oznacza wszystkie elementy zawierające w nazwie „n”, //napoj | //chleb- oznacza wszystkie elementy „napoj” i „chleb”, //napoj/parent::* - oznacza wszystkich rodziców elementu „napoj”, i wiele innych. Dla XPath zdefiniowano szereg funkcji oraz operatorów umożliwiających budowanie złożonych ścieżek dostępu. XPath 2.0 (draft) umożliwia również wykorzystanie wyrażeń regularnych, pętli, instrukcji warunkowych itp.

101 slajd 101© J.Rumiński Relacja pomiędzy XQuery a XPath 2.0: XQuery 1.0 (draft): „XQuery is derived from an XML query language called Quilt [Quilt], which in turn borrowed features from several other languages, including XPath 1.0 [XPath 1.0], XQL [XQL], XML-QL [XML-QL], SQL [SQL], and OQL [ODMG].[Quilt][XPath 1.0][XQL][XML-QL][SQL] [ODMG] XQuery Version 1.0 is an extension of XPath Version 2.0. Any expression that is syntactically valid and executes successfully in both XPath 2.0 and XQuery 1.0 will return the same result in both languages.” XQuery – język zapytań da XML Przykład: Generacja dokumentu HTML jako lista nagłówków zawierająca ceny napojów (elementy /sklep/napoj/cena): { let $sklep := document(„mojsklep.xml")/sklep for $t in $sklep/napoj return {$t/cena) }

102 slajd 102© J.Rumiński Przykładowa implementacja XQuery: - demonstracja przykładowych zapytań według: Inna: - możliwe do pobrania z tej strony API oraz prosta aplikacja umożliwiają testowanie własnych zapytań XQuery.www.fatdog.com Przykładowe podręczniki nauki XQuery opisane są na stronie W3C:

103 slajd 103© J.Rumiński Przykład na podstawie:

104 slajd 104© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

105 slajd 105© J.Rumiński Jedną z najważniejszych cech technologii XML jest możliwość automatycznego przekształcania dokumentów XML. Przekształcenie to (transformacja) odbywa się poprzez zdefiniowany plik opisujący odwzorowanie źródło->cel. Plik taki tworzony jest zgodnie z rekomendacją XML oraz XSL (Extensible Stylesheet Language), i nosi nazwę arkusza stylów. XML Stylesheet wykorzystywane jest następnie (obok pliku źródłowego XML) do przekształcenia przez procesor XSLT (XSL Transform) do postaci końcowej. Postać końcowa oznaczać może inny plik XML, XHTML, PDF, itp. Transformacja plików XML na inną postać XML jest również czasem wykonywana przy składowaniu danych dokumentu XML w bazie danych. XSL jest zatem zarówno językiem transformacji dokumentów XML jak i słownikiem znaczników wykorzystywanych do formatowania składni dokumentu końcowego.

106 slajd 106© J.Rumiński XSL (http://www.w3.org/TR/xsl/) musi być dokumentem XML, zawierającym oprócz prologu element arkusza stylów z definicją przestrzeni nazw „xsl”:http://www.w3.org/TR/xsl/... Arkusz zawierać może różne elementy definiowane w specyfikacji XSL, między innymi xsl:template (szablon), xsl:output (parametry formatu wyjścia), xsl:variable (definicja zmiennej), itd. Zasadniczym elementem, w obrębie którego definiuje się odwzorowanie jest szablon. Element xsl:template zawiera jako atrybut wyrażenie zgodne z XPath wskazujące adres elementu źródłowego, który jest odwzorowywany zgodnie z danym szablonem....

107 slajd 107© J.Rumiński W ciele tak zdefiniowanego elementu określa się reguły odwzorowania. W tym celu wprowadza się tekst wolny (tzn., taki, który nie jest interpretowany przez procesor XSLT lecz jest przepisywany), oraz elementy „xsl” służące do zdefiniowania dalszych reguł odwzorowania. Przykładowe elementy to: - określa żądanie wstawienia wyniku przetwarzania węzłów potomnych lub węzłów określonych przez zgodny z XPath adres, podany jako wartość atrybutu „select”, np.: - określa żądanie wstawienia wartości elementu lub atrybutu według zgodnego z XPath adresu, podanego jako wartość atrybutu „select”, np.: oraz - określają żądanie wstawienia do dokumentu końcowego elementów XML i ich atrybutów zgodnie z podanymi wartościami, np.:

108 slajd 108© J.Rumiński JTECH Efekt: JTECH - określa realizowane w pętli żądanie wykonania danego odwzorowania dla elementów według zgodnego z XPath adresu, podanego jako wartość atrybutu „select”, np.:... - określa żądanie wykonania odwzorowania jeśli spełniony jest warunek podany jako zgodny z XPath adres, stanowiący adres atrybutu „test”, np.:

109 slajd 109© J.Rumiński...,, - określa realizację w obrębie pętli danych instrukcji odwzorowania jeśli spełniony jest warunek podany jako wartość argumentu „test” elementu lub innych instrukcji odwzorowania jeśli ten warunek nie jest spełniony ( ), np.: i inne.

110 slajd 110© J.Rumiński Przykładowy dokument XSL: Na podstawie

111 slajd 111© J.Rumiński Przykładowy dokument XSL: Na podstawie

112 slajd 112© J.Rumiński XSL i obiekty formatujące (FO) Obiekty formatujące stanowią treść rozdziału 6 specyfikacji XSL 1.0. Obiekty te stanowią metodę odwzorowania z formatu składowania danych na format prezentacji danych. Specyfikacja określa zarówno składnię wykorzystania obiektów formatujących jak i ich pełny zestaw. Wykorzystywana przestrzeń nazw dla FO to: xmlns:fo="http://www.w3.org/1999/XSL/Format" Opis prezentacji zaczyna się od obiektu formatującego, który zawiera jeden lub więcej elementów typu „page master” lub „page sequence master” określających układ dokumentu, np.: Strony przygotowywanego dokumentu są grupowane w sekwencję stron.

113 slajd 113© J.Rumiński Odwzorowywanie oraz wprowadzanie własnego tekstu odbywa się w obrębie elementu. Wartość atrybutu tego elementu „flow-name” określa gdzie przetwarzane dane mają być zawarte. Elementarne odwzorowanie definiowane jest w elemencie zdefiniowanym w elemencie (najczęściej przez ). Element posiada wiele atrybutów umożliwiających zdefiniowanie parametrów prezentacji tekstu, np.: kolor czcionki, krój czcionki, rozmiar, itp. Przykładowe zastosowanie elementu: NAZWISKO:,,...

114 slajd 114© J.Rumiński Przykład: FORMULARZ SZKODY - SLEEP SAFE INSURANCE Strona ( )

115 slajd 115© J.Rumiński NAZWISKO: IMIE: Przykład cd.:

116 slajd 116© J.Rumiński DRUGIE IMIE: PESEL: MIEJSCE ZDARZENIA: OPIS ZDARZENIA: DATA I GODZINA ZDARZENIA: Przykład cd.: Bardzo dobry podręcznik dotyczący FO:

117 slajd 117© J.Rumiński 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.Przekształcanie dokumentów XML: XSL, XSLT, XPath, FO; 12.Zastosowania XML

118 slajd 118© J.Rumiński Zastosowania XML: -Wiadomości elektroniczne, np. SOAP; -Pliki konfiguracyjne; -Interfejs (odwzorowywanie danych); -Dokumentacja XML, różna forma (plik, baza danych) i różna treść (GML, MathML, HL7, inne); -Opis treści danych multimedialnych - MPEG7; -Inne. Dziękuję.


Pobierz ppt "Slajd 1© J.Rumiński Jacek Rumiński  XML a bazy danych  Eksploracja danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3461757,"

Podobne prezentacje


Reklamy Google