XML w bazach danych, standardy wiaż ace dokumenty XML Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2008/09 Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 1 / 1
XML w Javie uzupełnienie Walidacja Walidacja względem DTD podczas parsowania SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(true); XMLReader reader = factory.newsaxparser().getxmlreader(); reader.setcontenthandler(mojconenthandler); reader.seterrorhandler(mojerrorhandler); reader.parse(args[0]); Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 4 / 1
XML w Javie uzupełnienie Walidacja Walidacja względem XML Schema SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(false); factory.setschema(schemat); factory.setnamespaceaware(true); XMLReader reader = factory.newsaxparser().getxmlreader(); reader.setcontenthandler(mojconenthandler); reader.seterrorhandler(mojerrorhandler); reader.parse(args[0]); Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 5 / 1
XML w Javie uzupełnienie Walidacja Walidacja i zapis drzewa DOM SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); Validator validator = schemat.newvalidator(); validator.validate(new DOMSource(doc)); DOMImplementationLS lsimpl = (DOMImplementationLS)domImpl.getFeature("LS", "3.0"); LSSerializer ser = lsimpl.createlsserializer(); LSOutput out = lsimpl.createlsoutput(); out.setbytestream(new FileOutputStream(args[0])); ser.write(doc, out); Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 6 / 1
XML w Javie uzupełnienie Walidacja Walidacja i zapis drzewa DOM SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); Validator validator = schemat.newvalidator(); validator.validate(new DOMSource(doc)); DOMImplementationLS lsimpl = (DOMImplementationLS)domImpl.getFeature("LS", "3.0"); LSSerializer ser = lsimpl.createlsserializer(); LSOutput out = lsimpl.createlsoutput(); out.setbytestream(new FileOutputStream(args[0])); ser.write(doc, out); Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 6 / 1
Transformacje XSLT XML w Javie uzupełnienie Transformacje TransformerFactory trans_fact = TransformerFactory.newInstance(); transformer = trans_fact.newtransformer(new StreamSource(args[2])); Source src = new StreamSource(args[0]); Result res = new StreamResult(args[1]); transformer.transform(src, res); Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 7 / 1
XML w Javie uzupełnienie Transformacje Transformacje Zastosowanie do zapisu zdarzeń SAX po przefiltrowaniu SAXParserFactory parser_fact = SAXParserFactory.newInstance(); XMLReader reader = parser_fact.newsaxparser().getxmlreader(); TransformerFactory trans_fact = TransformerFactory.newInstance(); Transformer transformer = trans_fact.newtransformer(); XMLFilter filtr = new FiltrGrupyWażne(); filtr.setparent(reader); InputSource doc = new InputSource(args[0]); Source src = new SAXSource(filtr, doc); Result res = new StreamResult(args[1]); transformer.transform(src, res); Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 8 / 1
XML w bazach danych Klasyfikacja wsparcia dla XML-a w bazach danych Baza danych ze wsparciem dla XML (zwykle relacyjna, czasem obiektowa badź inna) konfiguracja struktur danych jako tabel i powiazań, eksport i import danych w postaci dokumentów XML, struktura dokumentów XML pochodna relacyjnych struktur danych, zastosowanie: integracja, wymiana danych; XML-owa baza danych: konfiguracja struktur danych przy pomocy DTD/XML Schema, wyszukiwanie z użyciem XQuery lub XPath, indeksowanie elementów, atrybutów, wyrażeń XPath, struktura danych dokumenty XML, możliwa optymalizacja wewnętrznego formatu danych, zastosowanie: przechowywanie i przetwarzanie dokumentów strukturalnych. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 10 / 1
XML w bazach danych Klasyfikacja wsparcia dla XML-a w bazach danych Baza danych ze wsparciem dla XML (zwykle relacyjna, czasem obiektowa badź inna) konfiguracja struktur danych jako tabel i powiazań, eksport i import danych w postaci dokumentów XML, struktura dokumentów XML pochodna relacyjnych struktur danych, zastosowanie: integracja, wymiana danych; XML-owa baza danych: konfiguracja struktur danych przy pomocy DTD/XML Schema, wyszukiwanie z użyciem XQuery lub XPath, indeksowanie elementów, atrybutów, wyrażeń XPath, struktura danych dokumenty XML, możliwa optymalizacja wewnętrznego formatu danych, zastosowanie: przechowywanie i przetwarzanie dokumentów strukturalnych. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 10 / 1
XML w bazach danych XML w relacyjnych bazy danych XML w relacyjnych bazach danych Korzyści: integracja aplikacji, wymiana danych, łatwe transformacje danych, prezentacja danych. Problemy: czy i jak przechowywać dokumenty XML w bazie danych? metody dostępu (zadawania zapytań), efektywność. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 11 / 1
XML w bazach danych XML a relacyjne bazy danych XML w relacyjnych bazach danych Przechowywanie XML-a w relacyjnych bazach danych: elementy dokumentu XML jako pola tabeli bazodanowej (dokument rozłożony na czynniki pierwsze ), dokument XML w całości przechowywany w polu bazy danych. Sposoby wspierania XML-a przez systemy zarzadzania bazami danych: generowanie XML-a na podstawie zawartości bazy danych, wypełnianie zawartości bazy na podstawie zawartości dokumentu XML, specjalne indeksowanie pól zawierajacych XML, zapytania XPath/XQuery na danych typu XML, wbudowane parsery XML i procesory XSLT. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 12 / 1
XML w bazach danych XML a relacyjne bazy danych XML w relacyjnych bazach danych Przechowywanie XML-a w relacyjnych bazach danych: elementy dokumentu XML jako pola tabeli bazodanowej (dokument rozłożony na czynniki pierwsze ), dokument XML w całości przechowywany w polu bazy danych. Sposoby wspierania XML-a przez systemy zarzadzania bazami danych: generowanie XML-a na podstawie zawartości bazy danych, wypełnianie zawartości bazy na podstawie zawartości dokumentu XML, specjalne indeksowanie pól zawierajacych XML, zapytania XPath/XQuery na danych typu XML, wbudowane parsery XML i procesory XSLT. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 12 / 1
XML w bazach danych Przykład XML w Oracle XML w relacyjnych bazach danych Wsparcie dla XML w Oracle 10g (http://www.oracle.com/xml). Parsery XML dostarczane przez Oracle: pozwalaja na wykorzystanie XML-a we własnych aplikacjach korzystajacych z bazy, dostępne dla PL-SQL-a, Javy i C++. XML-SQL Utility: generowanie XML-a bezpośrednio z bazy przy pomocy specjalnych zapytań, wypełnianie bazy na podstawie zawartości dokumentu XML. Typ danych XMLType. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 13 / 1
XML w bazach danych XML w Oracle XML-SQL Utility XML w relacyjnych bazach danych Eksport XML funkcja getxml() SELECT xmlgen.getxml( select * from emp ) FROM dual; <rowset> <row id= 1 > <empno>10</empno> <name>scott Tiger</name> <title>specialist</title> </row>... </rowset> Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 14 / 1
XML w bazach danych XML w relacyjnych bazach danych XML w Oracle XMLType XMLType specjalny typ danych: kolumny, tabele, perspektywy, zmienne,... indeksowanie zawartości XML, zapytania XQuery, kontrola poprawności strukturalnej względem XML Schema, przekształcenia XSLT. Specjalne operatory: extract, extractvalue, exisitsnode, transform, updatexml, XMLSequence. XPath Rewrite przekształcanie ścieżek XPath w równoważne konstrukcje SQL na wewnętrznej reprezentacji strukturalnej XMLType. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 15 / 1
XML w bazach danych XML w relacyjnych bazach danych Bazy danych ze wsparciem dla XML Istotne wsparcie DB2, IBM (wersja 9 purexml) Oracle (od 8i) Microsoft SQL Server (od wersji 2000) Sybase ASE 12.5 Minimalne wsparcie MySQL (zapytania XPath nad węzłami tekstowo zawierajacymi XML) PostgreSQL (walidacja i ścieżki XPath, interfejs ma być zmieniony) Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 16 / 1
XML w bazach danych XML w relacyjnych bazach danych Bazy danych ze wsparciem dla XML Istotne wsparcie DB2, IBM (wersja 9 purexml) Oracle (od 8i) Microsoft SQL Server (od wersji 2000) Sybase ASE 12.5 Minimalne wsparcie MySQL (zapytania XPath nad węzłami tekstowo zawierajacymi XML) PostgreSQL (walidacja i ścieżki XPath, interfejs ma być zmieniony) Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 16 / 1
XML w bazach danych XML-owa baza danych XML-owe bazy danych Warstwa logiczna: dokument XML jako podstawowa jednostka przechowywanych danych, schemat jako definicja struktury, kolekcje dokumentów. Warstwa fizyczna: niekoniecznie tekstowo zapisane dokumenty XML, indeksy. Funkcjonalności typowe dla baz danych: interfejs do aktualizacji danych, transakcje i współbieżny dostęp, bezpieczeństwo. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 17 / 1
XML w bazach danych XML-owa baza danych XML-owe bazy danych Warstwa logiczna: dokument XML jako podstawowa jednostka przechowywanych danych, schemat jako definicja struktury, kolekcje dokumentów. Warstwa fizyczna: niekoniecznie tekstowo zapisane dokumenty XML, indeksy. Funkcjonalności typowe dla baz danych: interfejs do aktualizacji danych, transakcje i współbieżny dostęp, bezpieczeństwo. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 17 / 1
XML w bazach danych XML-owa baza danych XML-owe bazy danych Warstwa logiczna: dokument XML jako podstawowa jednostka przechowywanych danych, schemat jako definicja struktury, kolekcje dokumentów. Warstwa fizyczna: niekoniecznie tekstowo zapisane dokumenty XML, indeksy. Funkcjonalności typowe dla baz danych: interfejs do aktualizacji danych, transakcje i współbieżny dostęp, bezpieczeństwo. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 17 / 1
XML w bazach danych Tamino XML-owa baza danych XML-owe bazy danych Pierwszy serwer bazodanowy przechowujacy dane w XML-u. Komunikacja: za pośrednictwem protokołu HTTP, bezpośrednio przez URL, moduł X-Node, zapewniajacy integrację z innymi źródłami danych: ODBC, OLE DB, system plików. Platforma dla: aplikacji internetowych typu B2C, elektronicznej wymiany dokumentów: wsparcie dla XML Signature; systemów zarzadzania treścia: wersjonowanie, scalanie, indeksowanie dokumentów nie-xml. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 18 / 1
XML w bazach danych Tamino XML-owa baza danych XML-owe bazy danych Pierwszy serwer bazodanowy przechowujacy dane w XML-u. Komunikacja: za pośrednictwem protokołu HTTP, bezpośrednio przez URL, moduł X-Node, zapewniajacy integrację z innymi źródłami danych: ODBC, OLE DB, system plików. Platforma dla: aplikacji internetowych typu B2C, elektronicznej wymiany dokumentów: wsparcie dla XML Signature; systemów zarzadzania treścia: wersjonowanie, scalanie, indeksowanie dokumentów nie-xml. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 18 / 1
XML:DB XML w bazach danych XML-owe bazy danych Inicjatywa specyfikacji XML-owych baz danych. XML Database API (XAPI) kolekcje zasobów, zasób odpowiada dokumentowi XML, odczyt i zapis (całego) zasobu poprzez interfejsy DOM i SAX usługi: zapytania XPath, transakcje, zarzadzanie kolekcjami, ostatnia wersja: wrzesień 2001. XML Update Language (XUpdate) język zastosowanie XML, wstawianie, usuwanie i aktualizacja rekordów danych, adresowanie ścieżkami XPath, ostatnia wersja: wrzesień 2000. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 19 / 1
XML:DB XML w bazach danych XML-owe bazy danych Inicjatywa specyfikacji XML-owych baz danych. XML Database API (XAPI) kolekcje zasobów, zasób odpowiada dokumentowi XML, odczyt i zapis (całego) zasobu poprzez interfejsy DOM i SAX usługi: zapytania XPath, transakcje, zarzadzanie kolekcjami, ostatnia wersja: wrzesień 2001. XML Update Language (XUpdate) język zastosowanie XML, wstawianie, usuwanie i aktualizacja rekordów danych, adresowanie ścieżkami XPath, ostatnia wersja: wrzesień 2000. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 19 / 1
XUpdate przykład XML w bazach danych XML-owe bazy danych Przykład z dokumentacji standardu <?xml version="1.0"?> <xupdate:modifications version="1.0" xmlns:xupdate="http://www.xmldb.org/xupdate"> <xupdate:insert-after select="/addresses/address[1]" > <xupdate:element name="address"> <xupdate:attribute name="id">2</xupdate:attribute> <fullname>lars Martin</fullname> <born day= 2 month= 12 year= 1974 /> <town>leizig</town> <country>germany</country> </xupdate:element> </xupdate:insert-after> </xupdate:modifications> Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 20 / 1
XML w bazach danych XML-owe bazy danych XML-owe bazy danych przeglad produkt licencja zapytania XML:DB API Apache XIndice open source XPath tak BaseX open source XPath, XQuery tak exist open source XPath, XQuery częściowo Sedna open source XPath, XQuery tak Tamino płatny XQuery, XPath częściowo Gemfire Enterprise płatny XQuery, OQL tak DOMSafeXML (?) płatny XQuery, XPath tak? żródło: Wikipedia i strony WWW produktów Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 21 / 1
Powiazania dokumentów XPointer XPointer Adresowanie dokumentów XML i ich fragmentów, zgodnie ze składnia URI: http://www.sejm.gov.pl/ustawa.xml#def-podatnik Rekomendacje W3C z 25 marca 2003: XPointer Framework (zawiera schemat xpointer()), XPointer element() scheme, XPointer xmlns() scheme. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 23 / 1
Powiazania dokumentów XPointer Schematy xpointer i xmlns xpointer Ścieżki XPath http://www.sejm.gov.pl/ustawa.xml#xpointer(/art[5]/par[2]) xmlns Obsługa przestrzeni nazw Do wykorzystania w dalszej części ścieżki ustawa.xml#xmlns(pr=http://xxx/prawo)xpointer(/art[5]/par[2]) Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 24 / 1
Powiazania dokumentów XPointer Schematy xpointer i xmlns xpointer Ścieżki XPath http://www.sejm.gov.pl/ustawa.xml#xpointer(/art[5]/par[2]) xmlns Obsługa przestrzeni nazw Do wykorzystania w dalszej części ścieżki ustawa.xml#xmlns(pr=http://xxx/prawo)xpointer(/art[5]/par[2]) Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 24 / 1
Powiazania dokumentów XPointer XPointer element() scheme Adresowanie elementów po wartościach atrybutu typu ID: jakiś.xml#element(def-podatnik) Adresowanie ze względu na pozycję: jakiś.xml#element(/1/4/3) jakiś.xml#element(def-podatnik/2/3) Składnia skrócona: jakiś.xml#def-podatnik jakiś.xml#/1/2/3 jakiś.xml#def-podatnik/2/3 Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 25 / 1
Powiazania dokumentów XPointer XPointer element() scheme Adresowanie elementów po wartościach atrybutu typu ID: jakiś.xml#element(def-podatnik) Adresowanie ze względu na pozycję: jakiś.xml#element(/1/4/3) jakiś.xml#element(def-podatnik/2/3) Składnia skrócona: jakiś.xml#def-podatnik jakiś.xml#/1/2/3 jakiś.xml#def-podatnik/2/3 Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 25 / 1
Powiazania dokumentów XPointer XPointer element() scheme Adresowanie elementów po wartościach atrybutu typu ID: jakiś.xml#element(def-podatnik) Adresowanie ze względu na pozycję: jakiś.xml#element(/1/4/3) jakiś.xml#element(def-podatnik/2/3) Składnia skrócona: jakiś.xml#def-podatnik jakiś.xml#/1/2/3 jakiś.xml#def-podatnik/2/3 Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 25 / 1
Powiazania dokumentów XInclude XInclude właczanie zawartości dokumentów Załaczanie zawartości jednego dokumentu XML do innego. Znaczniki w warstwie logicznej (elementy XML), nie fizycznej (jak referencje do encji). Możliwości: załaczanie całych dokumentów (nazwa pliku lub URL), załaczanie fragmentów (wskazanych przez XPointer), określanie zawartości używanej w razie błędu. Przezroczysta dla czytelnika interpretacja XInclude przez parser (m.in. jako opcja w JAXP 1.4). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 26 / 1
Powiazania dokumentów XInclude XInclude właczanie zawartości dokumentów Załaczanie zawartości jednego dokumentu XML do innego. Znaczniki w warstwie logicznej (elementy XML), nie fizycznej (jak referencje do encji). Możliwości: załaczanie całych dokumentów (nazwa pliku lub URL), załaczanie fragmentów (wskazanych przez XPointer), określanie zawartości używanej w razie błędu. Przezroczysta dla czytelnika interpretacja XInclude przez parser (m.in. jako opcja w JAXP 1.4). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 26 / 1
Powiazania dokumentów XInclude XInclude właczanie zawartości dokumentów Załaczanie zawartości jednego dokumentu XML do innego. Znaczniki w warstwie logicznej (elementy XML), nie fizycznej (jak referencje do encji). Możliwości: załaczanie całych dokumentów (nazwa pliku lub URL), załaczanie fragmentów (wskazanych przez XPointer), określanie zawartości używanej w razie błędu. Przezroczysta dla czytelnika interpretacja XInclude przez parser (m.in. jako opcja w JAXP 1.4). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 26 / 1
XInclude przykład Powiazania dokumentów XInclude Przykład: źródło <wynik> <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="salatka.xml#xpointer(/przepis/tytul)"> <xi:fallback><błąd>brak przepisu</błąd></xi:fallback> </xi:include> </wynik> Przykład: po przetworzeniu <wynik> <tytul>sałatka z ogórków</tytul> </wynik> Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 27 / 1
XInclude przykład Powiazania dokumentów XInclude Przykład: źródło <wynik> <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="salatka.xml#xpointer(/przepis/tytul)"> <xi:fallback><błąd>brak przepisu</błąd></xi:fallback> </xi:include> </wynik> Przykład: po przetworzeniu <wynik> <tytul>sałatka z ogórków</tytul> </wynik> Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 27 / 1
Powiazania dokumentów XLink dowiazania w XML-u XLink Odnośniki znane z HTML: łacz a dwa dokumenty: źródło i cel linku, źródłem linku jest zawsze element opisujacy link (A, IMG). XLink rozszerzona koncepcja dowiazań: dowolne elementy przechowuja informacje o linkach, nieistotna nazwa elementu, istotne atrybuty z przestrzeni nazw XLink, więcej niż dwa końce linku, możliwość opisania powiazania poza wiazanymi dokumentami. Status: korzenie historyczne: HyTime, XLink 1.0 rekomendacja W3C, czerwiec 2001, XLink 1.1 wersja robocza (aktualizacja w 2008). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 28 / 1
Powiazania dokumentów XLink dowiazania w XML-u XLink Odnośniki znane z HTML: łacz a dwa dokumenty: źródło i cel linku, źródłem linku jest zawsze element opisujacy link (A, IMG). XLink rozszerzona koncepcja dowiazań: dowolne elementy przechowuja informacje o linkach, nieistotna nazwa elementu, istotne atrybuty z przestrzeni nazw XLink, więcej niż dwa końce linku, możliwość opisania powiazania poza wiazanymi dokumentami. Status: korzenie historyczne: HyTime, XLink 1.0 rekomendacja W3C, czerwiec 2001, XLink 1.1 wersja robocza (aktualizacja w 2008). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 28 / 1
Powiazania dokumentów XLink dowiazania w XML-u XLink Odnośniki znane z HTML: łacz a dwa dokumenty: źródło i cel linku, źródłem linku jest zawsze element opisujacy link (A, IMG). XLink rozszerzona koncepcja dowiazań: dowolne elementy przechowuja informacje o linkach, nieistotna nazwa elementu, istotne atrybuty z przestrzeni nazw XLink, więcej niż dwa końce linku, możliwość opisania powiazania poza wiazanymi dokumentami. Status: korzenie historyczne: HyTime, XLink 1.0 rekomendacja W3C, czerwiec 2001, XLink 1.1 wersja robocza (aktualizacja w 2008). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 28 / 1
Terminologia Powiazania dokumentów XLink Zasób (resource) dowolna adresowalna jednostka informacji lub usługa. Dowiazanie (link) jawnie wyrażona (przy pomocy elementu wiaż acego (linking element)) relacja pomiędzy zasobami. te zasoby uczestnicza (participate) w dowiazaniu. Przejście (traversal) użycie pary zasobów połaczonej dowiazaniem. Łuk (arc) informacja o przejściu między dwoma zasobami (kierunek, zachowanie aplikacji, itp.): wychodzacy (outbound), wchodzacy (inbound), niezależny (third party). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 29 / 1
Dowiazania XLink Powiazania dokumentów XLink Extended link wiaże dowolna liczbę zasobów: zasoby zewnętrzne (np. odwołania do innych dokumentów), zasoby lokalne (zawarte w elemencie wiaż acym). łuki opisujace sposoby przechodzenia pomiędzy zasobami, role zasobów uczestniczacych w linku, role łuków. Simple link link wychodzacy, wiaże dokładnie 2 zasoby: 1 lokalny i 1 zewnętrzny, jeden łuk z zasobu lokalnego do zewnętrznego. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 30 / 1
Dowiazania XLink Powiazania dokumentów XLink Extended link wiaże dowolna liczbę zasobów: zasoby zewnętrzne (np. odwołania do innych dokumentów), zasoby lokalne (zawarte w elemencie wiaż acym). łuki opisujace sposoby przechodzenia pomiędzy zasobami, role zasobów uczestniczacych w linku, role łuków. Simple link link wychodzacy, wiaże dokładnie 2 zasoby: 1 lokalny i 1 zewnętrzny, jeden łuk z zasobu lokalnego do zewnętrznego. Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 30 / 1
Powiazania dokumentów Simple link przykład XLink <osoba xmlns:xlink="http://www.w3.org/1999/xlink"> <nazwisko>kopernik, Mikołaj</nazwisko> <biogram>wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w <geogr xlink:type="simple" xlink:href="torun.xml">toruniu</geogr>.</biogram> </osoba> Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 31 / 1
Powiazania dokumentów Simple link przykład wykorzystujacy XPointer XLink <osoba xmlns:xlink="http://www.w3.org/1999/xlink"> <nazwisko>kopernik, Mikołaj</nazwisko> <biogram>wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w <geogr xlink:type="simple" xlink:href="encyklopedia.xml#toruń">toruniu</geogr>.</biogram> </osoba> Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 32 / 1
Powiazania dokumentów Extended link przykład XLink <fikcja xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <wypowiedz xlink:type="resource">kopernik była kobietą!</wypowiedz> <film <osoba xlink:type="locator" xlink:href="seksmisja.xml" xlink:title="seksmisja"/> xlink:type="locator" xlink:href="kopernik.xml" xlink:title="kopernik, Mikołaj"/> <pojecie xlink:type="locator" xlink:href="kobieta.xml" xlink:title="kobieta"/> </fikcja> Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 33 / 1
Powiazania dokumentów XLink Atrybuty w linkach rozszerzonych type rola elementu w linku href adres zasobu zewnętrznego role abstrakcyjny identyfikator roli zasobu w powiazaniu (URI) arcrole j.w. ale dla pojedynczego łuku między zasobami title etykieta tekstowa zasobu, łuku itd. show jak prezentować actuate kiedy aktywować label etykieta zasobu używana w definicjach łuków from, to etykieta zasobu używana w definicjach łuków Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 34 / 1
Powiazania dokumentów XLink Wartości wybranych atrybutów xlink:type simple, extended, none, resource, locator, arc, title xlink:show embed, new, replace, other, none xlink:actuate onload, onrequest, other, none Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 35 / 1
Powiazania dokumentów Dopuszczalność atrybutów w zależności od typu XLink simple extended locator arc resource title type R R R R R R href O R role O O O O arcrole O O title O O O O O show O O actuate O O label O O from O to O Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 36 / 1
Przyszłość XLink Powiazania dokumentów XLink Zastosowania: organizowanie, kojarzenie zasobów, nawet gdy nie mamy prawa zapisu, dostarczanie wartości dodanej zbiorów linków. Zasięg: lokalny serwery linków operujace na bazie linków, Internet? Problemy: wizualizacja extended links, synchronizacja zasobów i linków (Internet). Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 37 / 1