Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

34
1 Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych

description

Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych. W poprzednim odcinku…. XML Schema istotnie rozszerza możliwości DTD: Wszelkie ograniczenia z DTD wyrażalne w XML Schema; Znacznie bogatszy i rozszerzalny system typów; - PowerPoint PPT Presentation

Transcript of Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

Page 1: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

1

Technologie Internetuwykład 10: XSLT, XPointer, XLink

Piotr Habela

Polsko-Japońska Wyższa SzkołaTechnik Komputerowych

Page 2: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

2

W poprzednim odcinku…• XML Schema istotnie rozszerza możliwości DTD:

– Wszelkie ograniczenia z DTD wyrażalne w XML Schema;

– Znacznie bogatszy i rozszerzalny system typów;

– W połączeniu z ograniczeniami unikalności pozwala to na bardziej precyzyjną kontrolę strukturalnej poprawności dokumentu;

– XML Schema jest odrębną specyfikacją; brak zgodności „w dół”;

• XPath:– Język deklaratywny służący wskazywaniu elementów, atrybutów,

lub całych fragmentów dokumentu XML;– Nie tylko adresowanie konkretnego miejsca: wyrażenia kierunków

– osie (axes) oraz predykaty pozwalają selekcjonować pojedynczą ścieżką wiele miejsc, co nawiązuje niejako do funkcjonalności języka zapytań;

– Potraktowanie dokumentu jako hierarchii węzłów wnosi pewne ograniczenia.

Page 3: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

3

Plan wykładu• XPath – przypomnienie.

• XSL (eXtensible Stylesheet Language) - wprowadzenie:– Koncepcja transformacji XSL;– Budowa wzorców XSLT;– Środki programistyczne dostępne w XSLT.

• XPointer – rozszerzenie możliwości XPath.

• XLink – budowa odnośników pomiędzy zasobami.

Page 4: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

4

XPath - przypomnienie• Ścieżka sformułowana w języku XPath:

– Opiera się na tzw. osiach (axes): np. child, parent, descentand-or-self itd., pozwalających z dowolnego miejsca dokumentu nawigować do dowolnego innego miejsca;

– Każdy krok ścieżki zawęża obszar poszukiwań;

– Może być globalna lub względna wobec aktualnego kontekstu;

– Dla najważniejszych wyrażeń określono zapis skrócony.

• Istnieje możliwość selekcjonowania elementów, atrybutów, instrukcji przetwarzania czy zawartości tekstowej.

Page 5: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

5

Język XSL (eXtensible Stylesheet Language)

Page 6: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

6

XSL - charakterystyka• Zakładane przez XML oczyszczenie informacji z zawartości

związanej z prezentacją pozostawia otwartym problem wizualizacji takich dokumentów.

• W celu realizacji niezbędnych przekształceń powstał język XSL (eXtensible Stylesheet Language). Swego rodzaju protoplastą tego mechanizmu były kaskadowe arkusze stylów (CSS), jednak realizacja języka XSL jest odmienna.

• W ramach tego standardu powstały specyfikacje:– XSLT (XSL Transformations);– XSL FO (XSL Formating Objects);

• XSLT określany jako język o charakterze deklaratywnym, oparty na regułach przekształceń (rule-based). Język przekształceń drzew XML.

Page 7: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

7

Koncepcja języka XSLT• Scenariusze przetwarzania:

– zmiana struktury dokumentu XML;– utworzenie arkusza XSLT do przetwarzania innych dokumentów;– obudowanie danych z pliku XML informacjami o sposobie

prezentacji.

• Przetwarzania dokumentów w oparciu o wzorce służą programy określane jako procesory XSLT.

• XSLT – koncepcja realizacji przekształceń:Dokument XML + Dokument XSLT => Dokument wynikowy

• Użyteczność tego scenariusza dla wizualizacji dokumentu XML wymaga, aby zawierał on odwołanie do dokumentu XSLT: <?xml version=”1.0” ?><?xml-stylesheet type=”text/xsl” href=”naszArkusz.xsl” ?>

Page 8: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

8

Dokument wzorca XSLT• Określa zakresy przeszukiwania; wskazania zawartości do

przetworzenia za pomocą XPath.• Definiuje sposób przekształcenia poszczególnych rodzajów

wyszukanej zawartości.• Budowa dokumentu:

– elementem-korzeniem jest xsl:stylesheet;– przestrzeń nazwowa specyfikacji:

xmlns:xsl = ”http://www.w3.org/1999/XSL/Transform”;– budowa znacznika otwierającego:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

• Z kolei element nie prefiksowany przestrzenią xsl jest przekazywany bez interpretacji do dokumentu wyjściowego. Tym sposobem można np. aplikować znaczniki HTML.

Page 9: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

9

Element szablonu (xsl:template)• Przekształcenia są aplikowane w oparciu o element

xsl:template:– atrybut match tego elementu zawiera wzorzec (pattern)

zawartości, która ma być przetwarzana, przedstawiony w języku XPath.

– alternatywnie może zostać użyty atrybut name, zawierający dowolną nazwę, służącą do uruchomienia danego szablonu (template) poleceniem xsl:call-template;

– wnetrze elementu xsl:template określa sposób przetwarzania:<xsl:template match=”//szukaneElementy”>.. sposób przetwarzania ..</xsl:template>

• Często pierwszy element xsl:template odwołuje się do całego dokumentu (tj. używa match=”/”) i zawiera wywołania innych, zdefiniowanych dalej szablonów.

Page 10: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

10

Konstruowanie dokumentu wynikowego (1)• Reguły transformacji umożliwiają wstawianie do dokumentu

wynikowego wartości z dokumentu źródłowego, wyselekcjonowanej wyrażeniem XPath.

• Służy temu element xsl:value-of, z atrybutem select, zawierającym wyrażenie XPath.

• Można również wstawiać wyniki obliczeń, tj. rezultaty funkcji wywołanych w kontekście wyrażenia XPath. Np. stosując funkcję count(node-set), zwracamy tu syntetyczne dane w postaci liczby książek ocenionych na 3,5 oraz na 4.<?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">    <xsl:template match="/">        <p>Review of 3.5 = <xsl:value-of select="count(books/book[review=3.5])"/></p>        <p>Review of 4 = <xsl:value-of select="count(books/book[review=4])"/></p>    </xsl:template></xsl:stylesheet>

Page 11: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

11

Konstruowanie dokumentu wynikowego (2)• Przewidziano możliwość numerowania wyprowadzanych danych:

<xsl:number value="position()"/>• Kolejnym kluczowym elementem występującym zwykle wewnątrz

głównego wzorca jest zastosowanie wzorców do wyselekcjonowanej zawartości:<xsl:apply-templates />

• Atrybut select określa lokalizacje, do których mają zostać zastosowane zdefiniowane w arkuszu szablony. Brak tego atrybutu spowoduje zastosowanie szablonów do elementów zawartych bezpośrednio w elemencie stanowiącym bieżący kontekst.

• Umieszczenie tego polecenia w powyższej postaci (bez atrybutu) we wszystkich wprowadzonych wzorcach pozwala na „bezkontekstowe” przetworzenie zawartości w zależności od rodzaju elementu.

• Np. <xsl:template match="tytul"><p><font face="verdana" color="steelblue" size="3">

  <xsl:apply-templates />   </font> </p> </xsl:template>

Page 12: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

12

Przekazywanie zawartości bez przetwarzania• Chcąc uniknąć przetwarzania zawartości elementów danego

rodzaju, możemy zamiast <xsl:apply-templates /> zastosować: <xsl:value-of select=”.” /> celem wyprowadzenia samej (nieprzetworzonej) zawartości (bez znaczników) albo: <xsl:value-of select=”./text()” /> dla zwrócenia tylko bezpośrednio zawartego tekstu.

• Efektywnie, obok instrukcji value-of, apply-templates oraz bezpośredniego wpisywania zawartości do wzorca, do budowania zawartości elementu docelowego można użyć jeszcze:– <xsl:copy> - umieszczenie wskazanego elementu w całości w

strukturze wynikowej;– <xsl:copy-of>- umieszczenie wskazanego elementu w całości w

strukturze wynikowej wraz z jego przodkami i atrybutami.

Page 13: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

13

Instrukcja pętli oraz instrukcja warunkowa• Kolejne przetworzenie wszystkich wyselekcjonowanych

elementów możemy uzyskać stosując instrukcję <xsl:for-each select=”sciezka” />. Np.

<xsl:for-each select="lista/osoba">… </xsl:for-each>

• Umożliwia to przetwarzanie o charakterze proceduralnym, niezbędne w sytuacjach, gdy np. trzeba zreorganizować układ elementów w dokumencie docelowym.

• Instrukcja warunkowa xsl:if: jej zawartość jest przetwarzana, jeśli wyrażenie w atrybucie test zwróci:– niepusty zbiór węzłów;– niepusty łańcuch tekstowy;– lub liczbę różną od zera.

• Składnia: <xsl:if test=”wyrażenie logiczne”>    .. Zawartość warunkowa .. </xsl:if>

Page 14: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

14

Instrukcja wielokrotnego wyboru• Uzupełnia funkcjonalność instrukcji if (która nie posiada

segmentu else).• Oparta na elemencie xsl:choose.• Układ instrukcji znany z Javy (instrukcja switch):

<xsl:choose>    <xsl:when test=”warunek”>         zawartość jeśli spełniony    </xsl:when>…

    <xsl:otherwise>        zawartość gdy żaden z powyższych nie spełniony </xsl:otherwise></xsl:choose>

Page 15: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

15

Wstawianie atrybutów oraz sortowanie• Wstawianie atrybutu do elementu wyjściowego:

<naszEl> <xsl:attribute name=„nazwaAtr"> <xsl:value-of select="@istniejacyAtr" /> </xsl:attribute> </naszEl>

Jeżeli atrybut nie jest wstawiany w oparciu o instrukcję wyboru, można użyć formy skróconej (tzw. attribute template). Np. <img src="{@lokalizacjaPliku}" />

Ponadto można konstruować elementy <xsl:element>, komentarze <xsl:comment> oraz instrukcje przetwarzania <xsl:processing-instruction>

• Sortowanie zawartości:– realizowane przy zastosowaniu elementu xsl:sort;– element ten może się pojawić wyłącznie w ciele elementu

apply-templates albo wewnątrz instrukcji xsl:for-each.– Posiada następującą deklarację, przy czym domyślnym typem danych dla

sortowania jest text:<xsl:sort   select = wyrażenie-string 

data-type = { "text" | "number" | Qname }order = { "ascending" | "descending" }case-order = { "upper-first" | "lower-first" } lang = { kod języka } /> 

Page 16: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

16

Zmienne w XSLT• Zmienne deklaruje się przy użyciu elementu xsl:variable:

<xsl:variable    name = ”nazwa” select =”wyrażenie” </xsl:variable>

• Użyteczne dla wprowadzania powtarzających się danych oraz dla zapamiętania określonego kontekstu.

• Mogą przechowywać zbiór węzłów albo łańcuch tekstowy.• Odwołania do tak zadeklarowanych zmiennych w innych

wyrażeniach select: poprzez poprzedzenie nazwy zmiennej symbolem dolara „$”.

• Zmenna może być globalna (zadeklarowana ponad deklaracjami szablonów) albo lokalna (zadeklarowana wewnątrz danego szablonu).

• Podobne właściwości posiadają parametry: <xsl:param>:– Ograniczenia na miejsce występowania;– instrukcje xsl:apply-templates oraz xsl:call-template mogą

przekazywać wartości do wzorców;

Page 17: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

17

Wołanie funkcji ze skryptów• Rozszerzenie dostarczane przez Microsoft umożliwia

wołanie funkcji napisanych w VBScript lub JavaScript;• Deklaracja funkcji wymaga zadeklarowania odpowiedniej

przestrzeni nazwowej:<?xml version="1.0" ?><xsl:stylesheet xsl="http://www.w3.org/1999/XSL/Transform"   xmlns:msxsl="urn:schemas-microsoft-com:xslt"   xmlns:naszeFunkcje="http://firma.com/przestrzenNazw"   version= "1.0">

• Deklaracja funkcji:<msxsl:script language="VBScript" implements-

prefix=„naszeFunkcje"><![CDATA[  tutaj kod funkcji ]]></msxsl:script>

• Wołanie funkcji:<xsl:value-of select=„naszeFunkcje:xyz"/> 

Page 18: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

18

Wołanie nazwanych szablonów• Szablony nazwane wraz z obsługą parametrów dostarczają

udogodnień programowania proceduralnego:• Można zdefiniować nazwany szablon wraz z oczekiwanymi

przezeń parametrami:<xsl:template name="formatowanieZawartosci"> <xsl:param name="naszParametr"/>

Budowa struktury wynikowej w oparciu o $naszParametr…</xsl:template>

• Następnie wywołujemy wzorzec w odpowiednim kontekście, przekazując parametry:<xsl:for-each select="/naszDok/naszElement">

<xsl:call-template name="formatowanieZawartosci"><xsl:with-param name="naszParametr" select="./*"/>

</xsl:call-template> </xsl:for-each>

Page 19: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

19

Język XPointer

Page 20: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

20

Język XPointer• Stanowi rozszerzenie języka XPath.• Uzupełnia system adresów URI używanych w XLink (zob.

dalej).• Pozwala oznaczać i wskazywać fragmenty dokumentów

XML.• Może traktować dokument zarówno jako drzewo węzłów

(jak XPath), lub jako ciąg znaków (w treści elementów), pozwalając wskazywać jego podciągi.

• Wprowadza dwa specjalne typy wskaźników:– punkt (point) w dokumencie XML;– zakres (range) pomiędzy punktami końcowymi (mogącymi się

znajdować w różnych elementach);

• Rozróżnia się także (używając środków XPath) węzły (node) i elementy (element).

Page 21: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

21

Wskazania elementów dokumentu XML• Odwołanie za pomocą identyfikatora: jeśli określony

element posiada atrybut typu ID, to można się doń odwołać poprzez wartość tego identyfikatora: xpointer(id(”a1234”)) albo z zewnątrz, następująco konstruując URI: http://firma.com/dokument.xml#a1234

• Obok tradycyjnego wskazywania poprzez nazwę, stosuje się skróty XPath – tzw. sekwencję dzieci (child sequence).– Każdy krok ścieżki oznacza tu zejście o jeden poziom w hierarchii

węzłów i wybranie na danym poziomie n-tego kolejnego podelementu.

– Np. xpointer(/*[1]/*[3]/*[2]) oznacza wybranie z elementu-korzenia trzeciego z jego elementów potomnych, z tego zaś drugiego z kolei jego elementu potomnego.

Page 22: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

22

Pojęcie punktu i zakresu w XPointer• XPointer wprowadza pojęcie punktu (point):• Punkt początkowy (danego elementu) umiejscowiony jest

tuż po znaczniku początkowym:xpointer(start-point(//sprawozdanie))

• Z kolei jeśli chcemy wskazać początek całego dokumentu:xpointer(start-point(/))

• Analogicznie, funkcja end-point(ścieżka) wskazuje na punkt końcowy, tj. miejsce tuż przed znacznikiem końcowym danego elementu;

• Zakres w oparciu o wytyczające go elementy:xpointer(range(//uczelnia/wydzial[1])) -> obejmuje fragment (lub

fragmenty) dokumentu włącznie ze znacznikami wyznaczającymi podane elementy.

• Punkty można wyznaczać też w oparciu o zakres:xpointer(start-point(range(//uczelnia/wydzial[1])))

Page 23: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

23

Zakresy w oparciu o zadany ciąg znaków• Funkcja o sygnaturze:

string-range(location-set, string, number?, number?)

• Drugi z argumentów stanowi wzorzec wyszukiwania.• Np.

xpointer(string-range(//sprawozdanie/zakup,”oprogr”))• Opcjonalne parametry liczbowe określają pierwszy znak

zakresu (względem miejsca odnalezienia wzorca) oraz długość zakresu (domyślnie jest to długość wzorca).

• Interesującą właściwością jest to, że dla spójnego zbioru miejsc przeszukiwana zawartość tekstowa traktowana jest jako ciągła, tj. z pominięciem znaczników.

Page 24: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

24

Zakres poprzez podanie miejsc początku i końca• Wykonana w odpowiednim kontekście funkcja

range-to(location-set) zwróci zakres rozciągający się od kontekstu jej wywołania do podanej jako parametr lokalizacji.

• Np. xpointer(id(”sprawozd03”)/range-to(id(”sprawozd08”)))

• Wariantem tej funkcji jest range-inside(location-set).Różni się ona wykluczeniem z wynikowego zakresu wyznaczających jego granice miejsc.

• Wszystkie wspomniane tu funkcje zwracają rezultat typu „zbiór miejsc” (location-set).

Page 25: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

25

Wskazania względne• Funkcja here() pozwala na budowanie wskazań

względnych. Zwraca ona element, w którym umieszczono dane wyrażenie XPointer.

• Np. xpointer(here()/../following::zamowienie[1]) umieszczone w podelemencie elementu „zamowienie”, wskaże na następny element „zamowienie”.

Page 26: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

26

Język XLink

Page 27: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

27

XLink - charakterystyka• XLink (XML Linking Language) rozszerza koncepcję

odsyłaczy HTML. Zastosowanie języka: łączenie dowolnych zasobów sieci Internet.

• Samodzielna specyfikacja (tj. nie objęta XML v. 1.0). Wymaga zatem zadeklarowania przestrzeni nazwowej: http://www.w3.org/1999/xlink, opatrywanej zwykle słowem kluczowym xlink.

• Pokonuje następujące ograniczenia odsyłaczy HTML:– brak możliwości oznaczenia charakteru odnośnika;– mają charakter binarny (łączą jedynie pary dokumentów: źródłowy

i docelowy);– są zawarte w dokumencie źródłowym (nie mogą być

przechowywane zewnętrznie);– problemem jest aktualizacja;– mogą wskazywać dokumenty lub punkty w dokumentach, ale nie

np. elementy dokumentu XML.

Page 28: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

28

Odsyłacze proste XLink• Rozszerzenie odsyłaczy języka HTML;• Podobnie jak one, są osadzane w dokumencie źródłowym;• Punkt docelowy opisywany poprzez adres URI;• Wyróżniane atrybutem xlink:type=”simple”; np.

<odsylacz xlink:href =”http://www.firma.com/dokument.htm” xlink:type=”simple”>

• Możliwość wskazywania konkretnych elementów dokumentu XML (lokalnego lub zewnętrznego):– przy użyciu wartości jego identyfikatora: do URI dołączamy

”#wartoscIdentyfikatora”, tj. np. xlink:href=”#rozdzial_1”;– bez użycia identyfikatora: korzystając ze środków języka XPath,

ew. XPointer; np. <odsylacz xmlns:xlink= ”http://www.w3c.org/2000/xlink” xlink:type=”simple” xlink:href=”http://firma.com/dokument.xml#xpointer(//sprawozdanie/zamowienia[4])” />

Page 29: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

29

Odsyłacze rozszerzone (extended) i ich składowe• Wielokierunkowość – poprzez możliwość przechowywania

odesłań do wielu miejsc;• Możliwość określania ról poszczególnych powiązań

odsyłacza;• Wyróżniane atrybutem xlink:type=”complex”;• Dostępne są następujące podelementy:

– Wskaźnik (locator), określający lokację zewnętrznych (w stosunku do samego odsyłacza a niekoniecznie do dokumentu) zasobów;

– Zasób (resource), określający lokalne zasoby. Musi zawierać w sobie inne elementy XML, stanowiące opisywany przezeń zasób.

– Łuk (arc), określający połączenia nawigacyjne pomiędzy zasobami;

– Tytuł (title), określający czytelną dla człowieka nazwę.• Powyższe podelementy mogą występować samodzielnie

albo wewnątrz odsyłacza complex.

Page 30: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

30

Atrybuty opisujące odsyłacze• type – określa typ odsyłacza;• href – identyfikuje zasób wskazywany przez odsyłacz. Może to być

adres względny lub bezwzględny.• role – podaje URI zawierający opis roli zasobu wskazywanego przez

dany odsyłacz;• arcrole – podaje URI zawierający opis roli samego łuku łączącego

zasoby;• show, actuate – sposób prezentacji i przetwarzania połączonych

zasobów;• label – deklaruje etykietę, która może zostać wykorzystana przy

definiowaniu połączeń pomiędzy zasobami;• from, to – służą definiowaniu powiązań pomiędzy elementami w

oparciu o ich etykiety;• title – czytelna dla człowieka nazwa odnośnika podana w postaci

atrybutu.Jak wspomniano wyżej, title może być również podawany jako podelement.Ta nadmiarowość została wprowadzona z myślą o umożliwieniu umieszczaniawielu tytułów (np. w różnych wersjach językowych) dla danego odnośnika.

Page 31: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

31

Określanie przejść pomiędzy zasobami• Wskazywane przez odnośnik (resource lub locator) mogą być łączone

łukami (arc), określającymi przewidziane przejścia nawigacyjne pomiędzy elementami;

• W tym celu odnośniki opatruje się wartościami atrybutu etykiety (label).

• W przeciwieństwie do identyfikatorów elementów, taka konstrukcja umożliwia zdefiniowanie przejść pomiędzy wieloma parami elementów za pomocą deklaracji jednego łuku (np. rozdział-> spis treści).

• Pominięcie elementu to i / lub from powoduje dalsze rozszerzenie deklaracji łuku na odpowiednio połączenia do wszystkich i / lub od wszystkich zdefiniowanych odsyłaczami zasobów.

• Przypomnijmy: rola samego łuku może być opisana poprzez lokalizację podaną atrybutem xlink:arcrole. Pozwala to niejako określić klasę danego łuku i wykorzystać tę informację do grupowania przy prezentacji zasobów.

Page 32: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

32

Odsyłacze rozszerzone• Identyfikowane typem: xlink:type=”extended”;• Mogą zawierać wewnątrz odsyłacze zasobów (resource),

odnośniki (locator), łuki (arc).• Tworzą bazę odsyłaczy, umieszczaną zwykle w odrębnym

pliku.• W ramach odsyłaczy rozszerzonych łuki mogą łączyć

jedynie lokalnie zdefiniowane zasoby.• Zewnętrzne bazy odsyłaczy

– określane jako out-of-line links, w przeciwieństwie do tradycyjnych odsyłaczy zwanych inline links;

– koncepcja redukuje problem aktualizacji odsyłaczy: zestawienia odnośników na dany temat mogą zostać „wyciągnięte przed nawias” i przechowywane w jednym miejscu.

Page 33: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

33

Określanie sposobu zachowania się odsyłaczy• Atrybut show określa sposób wyświetlania wskazywanego

zasobu:– new: w nowym oknie/ramce;

– replace: zastąpienie aktualnie prezentowanej treści;

– embed: wstawienie treści odsyłacza w dokument;

– other: informacja o sposobie wyświetlania umieszczona gdzie indziej;

– none: brak informacji o sposobie wyświetlania.

• Atrybut actuate określa sposób aktywowania formularza:– onLoad – przy ładowaniu dokumentu źródłowego;

– onRequest – w przypadku wybrania przez użytkownika;

– other – sposób aktywacji określony w innym miejscu;

– none – sposób aktywacji nie został określony.

Page 34: Technologie Internetu wykład 10: XSLT, XPointer, XLink Piotr Habela

34

Deklarowanie odsyłaczy wbudowanych w dokument• Jeśli definiujemy typ dokumentu, to umieszczane w nim

odsyłacze (jako określonego rodzaju elementy z właściwymi im atrybutami) należy uwzględnić w stosownym DTD, jeśli jest stosowany.

• Atrybuty odsyłaczy definiujemy w DTD jako wartości typu CDATA.

• Przewidziane specyfikacją wartości atrybutów show oraz actuate można podać jako wyliczenie.

• Można nałożyć dodatkowe ograniczenia, jeśli np. nie przewidujemy wykorzystywania jakiejś właściwości XLink w dokumencie.