r10-01.doc

(363 KB) Pobierz
Helion









Rozdział 1 ¨ Pierwsze kroki (Nagłówek strony)

Rozdział 10

w oryginale 15

.
XLinks i XPointers

Aby zachować kompletność wykładu, wstawiam między specyfikacje XLinks i XPointers opis XPath potrzebny do XPointers. Opis ten wziąłem ze stron 643654 z nie tłumaczonego rozdziału 13.

Ten rozdział poświęcimy w całości tworzeniu połączeń między dokumentami i ich częściami – specyfikacjom XLink i XPointer. W HTML mamy do dyspozycji hiperłącza, jednak autorzy XML poszli znacznie dalej tworząc specyfikacje XLink, XPointer, XPath i XBase.

Niestety, omawiane tematy to kolejne obszary, w których W3C znacznie wyprzedza całą resztę świata – jeszcze nie istnieją implementacje tych technologii. Microsoft, który już nieraz pośliznął się implementując standardy XML, które później się zmieniały, dopiero zaczyna w Internet Explorerze XLinks i XPointers obsługiwać. W przyszłości niewątpliwie pojawią się pełne implementacje, ale na razie omawiane tu tematy są ściśle teoretyczne.

W skrócie: powiązanie XLinks i XPointers

Łącza XLinks opisują sposób łączenia jednego dokumentu z innym. XPointers to wskaźniki określające położenie wybranego fragmentu w dokumencie, korzystają przy tym z rekomendacji XPath. Teraz w skrócie omówimy całość łączy XML.

W chwili pisania specyfikacja XLink ma status proponowanej rekomendacji i datowana jest na 20 grudnia 2000 roku

w oryginale: szkic roboczy z 21 lutego 2000r.

. Najnowszą wersję tej rekomendacji znajdziesz pod adresem www.w3.org/TR/xlink. XLinks używa się do łączenia jednego dokumentu z innym, oto co W3C mówi we wstępie:

W tej specyfikacji opisano Język łączy XML (XML Linking Language, XLink), która umożliwia wstawianie do dokumentów XML elementów tworzących i opisujących łącza między zasobami. Za pomocą składni XML można opisać zarówno proste łącza podobne do hiperłączy HTML, jak i łącza znacznie bardziej wyrafinowane.

Oto przykład, który ma Ci nieco przybliżyć łącza XLinks. W przeciwieństwie do HTML, rolę łącza pełnić może dowolny element – jego rodzaj określa się podając odpowiednią wartość atrybutu xlink:type:

<PRZEGLĄD_FILMOWY xmlns:xlink="http://www.w3.org/1999/xlink"

   xlink:type="simple"

   xlink:show="new"

   xlink:href="http://www.starpowdermovies.com/reviews.xml">

   Pan Blandings buduje dom swoich marzeń

</PRZEGLĄD_FILMOWY>

W tym wypadku utworzyliśmy proste łącze działające podobnie jak hiperłącze HTML – decyduje o tym atrybut xlink:type o wartości simple. Ustawiliśmy też atrybut xlink:show na new, co powoduje otwarcie łącza w nowym oknie. Atrybut xlink:href zawiera adres URI nowego dokumentu (adres ten może być bardzo ogólny, niekoniecznie musi mieć postać używanych dotąd adresów URL).

Zaczęliśmy od łącza prostego, aby na początek pokazać coś znajomego. Oprócz prostych łączy jednokierunkowych – jak to pokazane tutaj – można tworzyć też łącza dwukierunkowe, a także łącza między wieloma dokumentami, a nawet zbiorami dokumentów. Można też łącza zapisywać w bazach danych łączy nazywanych bazami łączy.

XLinks umożliwiają łączenie konkretnego dokumentu, ale często taka dokładność wyboru nie jest wystarczająca. W tym wypadku w sukurs przychodzą XPointers umożliwiające wskazanie miejsca w dokumencie nawet bez modyfikowania tego dokumentu w celu wstawiania tam jakiegokolwiek znacznika.

W celu wskazania jakiegoś miejsca w dokumencie XPointers korzystają ze specyfikacji XPath. XPath pozwala wskazać węzeł dokumentu XML za pomocą wyrażeń takiego typu, jak pokazane niżej:

/child::*[position()=126]/child::*[position()=first()]

Obecnie XPointers mają status rekomendacji proponowanej i opublikowane zostały 8 stycznia 2001 roku

wg stanu na chwilę tłumaczenia

. Najnowszą wersję specyfikacji XPointer znajdziesz pod adresem www.w3.org/TR/xptr. Oto jak W3C omawia XPointers:

W specyfikacji tej zdefiniowano Język wskaźników XML (XML Pointer Language, XPointer) używany jako podstawa identyfikatorów fragmentów zasobów dostępnych przez URI, takich jak text/xml, application/xml, text/xml-external-parsed-entity czy application/xml-external-parsed-entity.

XPointer oparty jest na Języku ścieżek XML (XML Path Language, XPath) i obsługuje adresowanie poszczególnych części dokumentów XML. Umożliwia badanie struktury dokumentów hierarchicznych i wybieranie poszczególnych części na podstawie różnych cech, takich jak typy elementów, wartości atrybutów, treść tekstowa czy położenie względne.

Wprawdzie XPointers bazują na XPath, ale rozszerzają składnię XPath, co zostanie w tym rozdziale omówione.

Aby dodać wskaźnik XPointer do adresu URI, wystarczy za tym adresem umieścić znak # (używany w HTML do zakładek) i dopisać xpointer() w nawiasach podając wyrażenie XPath. Oto przykład:

<PRZEGLĄD_FILMOWY xmlns:xlink="http://www.w3.org/1999/xlink"

   xlink:type="simple"

   xlink:show="new"

   xlink:href="http://www.starpowdermovies.com/reviews.xml#

xpointer(/child::*[position()=126]/child::*[position()=first()])">

   Pan Blandings buduje dom swoich marzeń

</PRZEGLĄD_FILMOWY>

Tyle tytułem wstępu do XLinks i XPointers. Obie specyfikacje omówimy dalej w tym rozdziale, omówimy też XBase oraz krótko XPath

dodałem – p. uwaga na początku rozdziału

.

Zmienność XML

Trzeba zdawać sobie sprawę z tego, że specyfikacje XLink, XPointer i XBase, podobnie jak inne fragmenty XML nie mające jeszcze statusu rekomendacji, mogą się zmieniać. Opisywane specyfikacje są już bliskie stania się rekomendacjami, więc zmiany względem opisu zamieszczonego w tej książce nie powinny być zbyt duże. Trzeba też pamiętać, że kiedy pojawią się implementacje tych specyfikacji, to i one mogą się nieco różnić od propozycji W3C.

Wszystko o łączach XLinks

Hiperłącza są bardzo ważną częścią HTML, tworzy się je za pomocą elementu A:

<A HREF="http://www.starpowdermovies.com/reviews.html#blandings">

   Pan Blandings buduje dom swoich marzeń

</A>

Hiperłącza w dokumencie HTML mają albo postać tekstu – zwykle podkreślonego i w innym kolorze – albo postać obrazka. Kliknięte hiperłącze otwiera nowy dokument lub wybrane jego miejsce w ramce istniejącej lub w nowym oknie, może też uruchomić program JavaScript. W tabeli 10.1 zestawiono oficjalnie obowiązujące atrybuty elementu A z HTML:

Tabela 10.1.
Atrybuty elementu A z HTML

Atrybut

Opis

ACCESSKEY

Przypisuje klawisz skrótu do hiperłącza.

CHARSET

Określa kodowanie lokalizacji docelowej hiperłącza. Ustawia się zgodnie z zestawami RFC 2045 (wartość domyślna to ISO-8859-1).

CLASS

Określa klasę stylu dla elementu.

COORDS

Określa współrzędne (w pikselach) dotyczące atrybutu SHAPE definiującego obszar na mapie obszarów.

DIR

Określa kierunek neutralnego kierunkowo tekstu. Ustawienie LTR oznacza tekst od lewej do prawej, RTL tekst pisany od prawej do lewej.

HREF

Określa docelowy adres URL hiperłącza. Użyć można albo tego atrybutu, albo atrybutu NAME.

HREFLANG

Określa język bazowy miejsca docelowego łącza. Ustawiane zgodnie z wartościami RFC 1766.

ID

Określa niepowtarzalny identyfikator znacznika.

LANG

Służy jako język bazowy znacznika.

NAME

Określa nazwę zakładki, której można użyć do odwoływania się do fragmentów docelowego dokumentu. Użyć można albo tego atrybutu, albo atrybutu HREF.

REL

Określa związek opisany przez hiperłącze.

REV

W zasadzie ma takie samo zdarzenie, jak REL, ale składnia działa w kierunku odwrotnym.

SHAPE

Określa typ obszaru definiowanego w znaczniku AREA.

STYLE

Styl typu inline wskazujący sposób prezentacji elementu.

TABINDEX

Ustawia kolejność łączy na stronie w przypadku poruszania się klawiszem tabulatora.

TARGET

Określa nazwę ramki, z którą ma być związany adres HREF.

TITLE

Informacja o tytule elementu.

TYPE

Typ MIME miejsca docelowego wskazanego w atrybucie HREF.

Zestawione atrybuty umożliwiają realizację różnych funkcji, ale zawsze konieczne jest użycie elementu A, a uzyskane łącze ma typ najprostszy z możliwych: po kliknięciu powoduje przejście do nowego dokumentu lub do innej lokalizacji dokumentu bieżącego.

Związki między dokumentami mogą być znacznie bardziej złożone. Mogą na przykład być potrzebne następujące funkcje:

·         Ustawienie łącza wskazującego 10 serwerów zapasowych i umożliwienie przeglądarce wybranie najbliższego z nich.

·         Połączenie całego zestawu dokumentów z uwzględnieniem podzbiorów, które będą przeszukiwane, kiedy potrzebny jest jakiś zasób.

·         Określenie zestawu ścieżek umożliwiających nawigację tylko między zestawem wybranych dokumentów w różnych kierunkach.

Są jeszcze inne możliwości, a XLinks umożliwiają ich realizację.

XLinks nie ograniczają zestawu używanych elementów do jednego A, a to oznacza, że łącza XML nie zawsze muszą mieć postać podkreślonego, niebieskiego tekstu (można je oczywiście w dowolny sposób wyróżnić). Możliwość przetworzenia na łącze dowolnego elementu jest doskonałą wiadomością, gdyż można stworzyć elementy zawsze łączące się z określonymi zasobami. Użytkownik może nawet oczekiwać, że fragment sformatowany elementem CYTAT będzie powiązany ze źródłem tego cytatu.

XLinks tworzy się stosując atrybuty, a ...

Zgłoś jeśli naruszono regulamin