Metody reprezentacji informacji Przedmiot:

Podobne dokumenty
METODY REPREZENTACJI INFORMACJI

Wprowadzenie do technologii XML

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

METODY REPREZENTACJI INFORMACJI

Rola języka XML narzędziem

29. Poprawność składniowa i strukturalna dokumentu XML

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

XML extensible Markup Language. Paweł Chodkiewicz

DTD - encje ogólne i parametryczne, przestrzenie nazw

Model semistrukturalny

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

XML DTD XML Schema CSS

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

Technologie zarządzania treścią

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

Programowanie internetowe

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009

Komunikacja i wymiana danych

mgr inż. Jacek Staniec Język XML

1 XML w bazach danych

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Środowisko XML (Extensible Markup Language).

Kurs WWW Język XML, część I

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Przykładowy dokument XML

Podstawy JavaScript ćwiczenia

XML i nowoczesne technologie zarządzania treścią

Programowanie Komponentowe WebAPI

Aplikacje internetowe laboratorium XML, DTD, XSL

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Otwarte protokoły wymiany informacji w systemach ITS

Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania

E.14.1 Tworzenie stron internetowych / Krzysztof T. Czarkowski, Ilona Nowosad. Warszawa, Spis treści

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Programowanie komputerów

GML w praktyce geodezyjnej

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

2 Podstawy tworzenia stron internetowych

Inżynieria biomedyczna

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Wprowadzenie do technologii XML

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML

OfficeObjects e-forms

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Narzędzia informatyczne w językoznawstwie

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

c TP: anything: 13 listopada 2004 roku 1

Zdalna edycja i przeglądanie dokumentacji medycznej.

PRZEWODNIK PO PRZEDMIOCIE

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

XML w bazach danych i bezpieczeństwie

XML extensible Markup Language. część 1

Przykładowy dokument XML

Wybrane działy Informatyki Stosowanej

Zaawansowane aplikacje WWW - laboratorium

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

Bazy danych i strony WWW

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Alicja Marszałek Różne rodzaje baz danych

HTML DOM, XHTML cel, charakterystyka

The Binder Consulting

Bazy danych - wykład wstępny

Systemy baz danych. mgr inż. Sylwia Glińska

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s Rodzina języków XML. Przemysław Kazienko

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Format danych adnotacji do tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap w związku ze zbiegiem egzekucji

Podstawy programowania. Wprowadzenie

XML i nowoczesne technologie zarządzania treścią 2007/08

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Programowania Obiektowego

INTEGRACJA I EKSPLORACJA DANYCH

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

HTML nie opisuje układu strony!!!

Transkrypt:

Metody reprezentacji informacji Jacek Rumiński Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: 3472678, fax: 3471757, e-mail: jwr@eti.pg.gda.pl 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.

Omówienie planu wykładów i ćwiczeń laboratoryjnych Omówienie ogólnych zagadnień organizacyjnych (zaliczenia) 2

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 3

Rekomendacja WWW Consortium www.w3.org 4

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 5

XML - extensible Markup Language Rozszerzalny Język Znaczników Znaczników Język Rozszerzalny dokument budowany jest w oparciu o elementy identyfikowane przez znaczniki (ang. tag) dokument budowany jest zgodnie z określonymi zasadami składni, oraz w oparciu o zdefiniowany alfabet, czyli znaczniki wykorzystywane w dokumencie elementy języka, znaczniki, projektowane są przez użytkownika (projektanta schematu dokumentu) 6

Przykładowy dokument XML widok uproszczony element atrybut znacznik 7

wartość atrybutu wartość elementu 8

SGML 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 9

SGML 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. 10

SGML 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. 11

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. 12

Charakterystyka porównawcza XML z systemami zarządzania relacyjnymi bazami danych (SZRBD) XML 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 SZRBD Dane w wielu relacjach (tabelach) Komórki tabel przechowują pojedyncze wartości Wartości komórek są atomowe Kolejność elementów jest określona Schemat dokumentu jest opcjonalny Bezpośrednie składowanie zbioru danych dokumentu w XML Wyszukiwanie danych poprzez dedykowane języki, np.: XQuery Kolejność krotek (wierszy) nie jest definiowana Schemat bazy jest konieczny Dane dokumentu rozłożone na zbiór atrybutów/relacji Wyszukiwanie danych poprzez język SQL 13

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 14

RDB1 RDB2 Synteza dokumentu XML Prezentacja dokumentu XML NXD1 Transformacja i prezentacja w sieci WWW Składowanie dokumentu XML WWW NXD1 Rozbiór (analiza) dokumentu XML RDB1 RDB2 NXD Native XML Database 15

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 16

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. 17

DEMO 1 -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 18

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 19

DEMO 2 20

XML powinien wspomagać różne typy aplikacji wymiana: 21

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? 22

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? 23

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> </katedra> <kontakt> </kontakt> <nazwa>katedra Inżynierii Biomedycznej</nazwa> <telefon>3472678</telefon> </pracownik> 24

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. 25

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,... 26

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 27

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ą. 28

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"?> 29

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 ). 30

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. 31

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 ::= ']]>' 32

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"> 33

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. 34

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"> 35

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 jwr@eti.pg.gda.pl> (...) <!ENTITY jwr "Jacek Rumiński &email;"> 36

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. 37

Kody heksadecymalne polskich liter (Unicode) 38

Zgodnie z rekomendacją istnieją również predefiniowane encje: Znak < : Znak > : Znak & : Znak : Znak : <!ENTITY lt "&#60;"> <!ENTITY gt ">"> <!ENTITY amp "&#38;"> <!ENTITY apos "&#39;"> <!ENTITY quot """> Przestrzenie nazw (namespaces) zbiory nazw definiujące słownik możliwych znaczników, definicja: xmlns:<prefix>='<identyfikator przestrzeni nazw>' -<prefix>, znacznik poprzedzający, określający zakres możliwych nazw zgodnie z wybranym przez identyfikator przestrzeni nazw słownikiem. 39

Przykładowo: Przestrzenie nazw definiuje się dla elementu lub atrybutu. 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. 40

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 41

http://www.w3.org/tr/2006/rec-xml-20060816/ 42

Canonical XML 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> </salon> <car id1="1" id2="2" >audi</car> 43

Canonical XML 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 ) 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. 44

Canonical XML 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. 45

Canonical XML 46

Canonical XML 47

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 48

typ wersja strona kodowa rozłączność prolog opcjonalnie obowiązkowo 49

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 obowiązkowo 50

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 obowiązkowo 51

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 ( ; ). 52

Dokument XML ponownie. Prezentacja w przeglądarce MS IE. 53

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 54

Parsowanie XML 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++. 55

Parsowanie XML 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. 56

Parsowanie XML serializacja <samochod> <marka> Alfa Romeo </marka> <model> 159</model> <kolor>czarny </kolor> </samochod> samochod marka model kolor Alfa Romeo 159 czarny parsowanie 57

Parsowanie XML 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). 58

Parsowanie XML Węzeł drzewa zasadniczy element danych Reprezentacja atrybutu Komentarz Wartość tekstowa elementu lub atrybutu Reprezentacja całego dokumentu XML Reprezentacja elementu 59

Parsowanie XML 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. 60

Parsowanie XML DEMO: XMLDOMCreator.java 61

Parsowanie XML DEMO 3 DEMO: XMLCreator.java JDOM: WWW.JDOM.ORG 62

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.