Transcript Document

Technologie Internetu
wykład 13a: Podstawowe technologie
XML - uzupełnienie
Piotr Habela
Polsko-Japońska Wyższa Szkoła
Technik Komputerowych
1
W poprzednich wykładach…
• XPath – język deklaratywnego dostępu do zawartości XML.
• XSL jako środek wizualizacji i transformacji dokumentów
XML:
– Deklaratywny język dla formułowania reguł przekształceń;
– Reguły XSLT podane w postaci tzw. szablonów (template);
– Przekształcenia takie pozwalają m.in. na wizualizację dokumentu
XML poprzez dołączanie informacji formatujących.
• Hiperłącza:
– Podstawa filozofii WWW;
– Bardzo prosta konstrukcja (wskazanie dokumentu lub punktu w
dokumencie);
– Ulegają dezaktualizacji.
2
Plan wykładu
•
•
•
•
•
Transformacje XSL – streszczenie i przykłady;
Scenariusze zastosowania XSL;
Problem formatowania i prezentacji treści;
XSL Formatting Objects;
XLink – łączenie dowolnych zasobów sieci
Internet.
3
Scenariusze przekształceń XSLT
(1)
• Określanie rodzaju dokumentu wynikowego: bezpośrednio
w xsl:stylesheet można umieścić element xsl:output
określający budowę dokumentu wynikowego. Niektóre z
dostępnych tam atrybutów to:
– method = {xml, html, text} -> rodzaj dokumentu wynikowego;
– encoding -> rodzaj kodowania;
– indent = {yes, no} -> czy stosować znaki białe dla uzyskania
wcięć;
np. <xsl:output method=”xml” encoding=”utf-8” indent=”yes” />
• Transformacja może służyć stworzeniu innego dokumentu
XML o zmienionej strukturze:
– We wzorcach stosuje się wówczas elementy: xsl:element,
xsl:attribute, celem zbudowania nowej struktury.
– Scenariusz ten może być istotny dla dopasowywania struktur do
postaci uzgodnionej w wymianie dokumentów elektronicznych
pomiędzy instytucjami.
4
Scenariusze przekształceń XSLT
(2)
• Możliwe jest tworzenie innego arkusza XSLT w oparciu o dane
dostarczone w źródłowym dokumencie (np. celem personalizacji
sposobu wyświetlania).
• Wymaga to utworzenia sztucznej przestrzeni nazw dla
dokumentu wynikowego w odróżnieniu od przestrzeni XSL, aby
ta pierwsza identyfikowała elementy docelowe, które nie
powinny być interpretowane przy bieżącej transformacji. Z kolei
w dokumencie wynikowym powinny one należeć do przestrzeni
nazwowej XSL aby arkusz wynikowy mógł służyć
przekształceniom.
• Problem ten rozwiązuje polecenie (element) xsl:namespace-alias:
<xsl:namespace-alias stylesheet-prefix=”tymczasowa”
result-prefix=”xsl” />
• Przedrostki te muszą być uprzednio zadeklarowane w elemencie
xsl:stylesheet:
<xsl:stylesheet xmlsn:xsl=”http://www.w3c.org/1999/XSL/Transform”
version=”1.0” xmlns:tymczasowa=”Faktycznie_nie_istnieje” >
5
Kaskadowe arkusze stylów a XSLT
• Możliwe jest zastosowanie CSS do formatowania
dokumentu wynikowego. Arkusz CSS może występować
wewnątrz arkusza XSLT lub rezydować w odrębnym pliku
zewnętrznym.
• Przykładowo, przy transformacji do dokumentu HTML
można umieścić w regule przekształceń fragment kodu
konstruujący nagłówek strony HTML, zawierające
odwołanie do zewnętrznego CSS:
<head>
<link rel=”stylesheet” href=”naszArkusz.css” />
</head>
• Wstawianie definicji stylu do tego samego dokumentu
odbywa się analogicznie.
• Jeszcze jedną opcją jest wstawianie w miejscu
wykorzystania atrybutów stylu dla poszczególnych
wyprowadzanych elementów HTML.
6
Wyodrębnianie aspektów dokumentu
• Dążenie do udoskonalenia środków zarządzania treścią,
zaowocowało następującym kierunkami rozdziału
informacji w dokumentach XML:
– oddzielenie informacji o wymaganej strukturze treści (schemat
dokumentu) od samej treści;
– oddzielenie treści od informacji o układzie i stylach prezentacji.
• Ten pierwszy aspekt jest zrealizowany dzięki wyposażeniu
specyfikacji XML w środki DTD oraz XML Schema.
• Ten drugi jest częściowo realizowany przez CSS. Jak
zobaczymy dalej, w ramach tego zagadnienia warto z kolei
wyodrębnić:
– Reorganizację treści i stosowanie doń stylów;
– Układ dokumentu oraz reguły osadzania w nim treści.
7
Dokumenty kierowane treścią i kierowane układem
• Stephen Deach (Adobe Systems Incorporated) podkreśla w
swoim artykule zróżnicowanie dokumentów na:
– Kierowane treścią (content-driven);
– Kierowane układem (layout-driven).
• Dokumenty kierowane treścią:
– Tutaj nadrzędnym czynnikiem organizującym prezentację jest
treść.
– Np. podręczniki, instrukcje, dokumentacja projektowa, spisy
teleadresowe, spisy, raporty, umowy, zbiory prac, listy;
– Raczej prosty układ i jednolite zastosowanie stylów.
– Przekształcenia stylów zgodne z hierarchiczną budową treści
dokumentu; jest łatwiejsze do zautomatyzowania poprzez
sformułowanie reguł;
– Możliwość zastosowania dziedziczenia stylów;
– Rozwiązania stylów dla SGML oraz kaskadowe arkusze stylów
(CSS) zostały stworzone głownie z myślą o dokumentach
kierowanych treścią.
8
Dokumenty kierowane układem
• Np. gazety, czasopisma, reklamy, druki reklamowe, prezentacje,
formularze, opakowania produktów.
• Najpierw określenie układu; potem alokacja treści w jego
przestrzeniach;
• Zwykle złożony projekt strony;
• Treść może być poprzeplatana inną zawartością i występować w
rozrzuconych segmentach;
• Umiejscowienie elementów i układ treści mogą nieść dodatkowy
przekaz;
• Dokument stanowi kombinację treści różnego typu.
• Pożądana jest unikalność; powinny przyciągać uwagę.
• Istnieją dokumenty, których charakter łączy obie te kategorie
(kierowanie układem i treścią).
• Strony Webu noszą wiele cech dokumentów kierowanych
układem.
• Z kolei np. przy wydruku ich treści bardziej pożądana jest
organizacja kierowana treścią…
9
XSL – Formatting Objects
• Stanowią część standardu XSL:
– XSL stanowi rodzinę 3 rekomendacji sporządzonych przez XSL
Working Group W3C: XSL Transformations (XSLT), XML Path
Language (XPath) oraz eXtensible Stylesheet Language. To
ostatnie dla uniknięcia nieporozumień określa się zwykle jako
XSL-FO.
• Koncepcja działania procesora stylów – dwa aspekty:
– konstruowanie drzewa wynikowego elementu, => zwane
transformacją drzewa;
– interpretacja drzewa wynikowego celem uzyskania odpowiedniego
formatu prezentacji (ekran, papier, mowa, inne medium). =>
zwane formatowaniem.
• Przykładem formatowania może być przetwarzanie
dokumentu przy wyświetlaniu przez przeglądarkę.
10
Tworzenie i wykorzystanie dokumentu XSL FO
• XSL-FO jest formatem pośrednim pomiędzy niezależnym
od nośnika XML oraz zależną od nośnika postacią końcową.
Dokument XML + arkusz XSLT => XSL FO
XSL FO + (fonty + zewnętrzna grafika…)
=> Postać wyjściowa (ekran, kod wydruku, PDF…)
• Powstanie dokumentu XSL FO:
– utworzenie bezpośrednie;
– zastosowanie transformacji źródłowego dokumentu XML;
• Założeniem projektowym XSL FO było automatyczne
generowanie dokumentów w tym formacie.
11
Język XLink
12
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, zwyczajowo z
przydzieleniem prefiksu 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.
13
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])” />
14
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.
15
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 (definicję) roli zasobu
wskazywanego przez dany odsyłacz;
• arcrole – podaje URI zawierający opis (definicję) 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 umieszczania
wielu tytułów (np. w różnych wersjach językowych) dla danego odnośnika.
16
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.
17
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.
18
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.
19
•
•
•
•
•
XLink – podsumowanie
Zastosowanie: łączenie dowolnych zasobów sieci
Internet.
Rozszerza koncepcji odsyłaczy HTML;
Pozwala na klasyfikację zasobów i odsyłaczy;
Umożliwia tworzenie zewnętrznych baz odsyłaczy;
Udostępnia środki deklarowania powiązań
nawigacyjnych (łuków).
20