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&#x144;ski &email;">
gdzie: &#x144; 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 "&#38;#60;">
<!ENTITY gt "&#62;">
<!ENTITY amp "&#38;#38;">
<!ENTITY apos "&#39;">
<!ENTITY quot "&#34;">
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 (&#x32;
&#x32; ) i parsowane referencje do encji są zamieniane
na ich znaczenie (np. &#x32; 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

Podobne dokumenty