Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Xlink / Xpointer - Framework

Ähnliche Präsentationen


Präsentation zum Thema: "Xlink / Xpointer - Framework"—  Präsentation transkript:

1 Xlink / Xpointer - Framework
Seminar: Verteilte Systeme Markus Schulz

2 Gliederung 1/2 XLink Zielsetzung Syntax Simple Links Extended Links
Zusammenfassung Verteilte Systeme

3 Gliederung 2/2 XPath XPointer Anwendungen Zielsetzung Grundlagen
Syntax Zusammenfassung XPointer Überblick Bare-Names/Child Sequence/FullXPointer Anwendungen Verteilte Systeme

4 XLink - Zielsetzung 1/2 Bekanntes aus der HTML Welt:
<a href=“ <img src=“ Link Page1.html Page2.html Verteilte Systeme

5 XLink - Zielsetzung 2/2 Nachteil:
Links gerichtet: lokale -> entfernte Ressource Gebunden an spezifische Elemente (Tagnamen) Ziel: Einheitliche Syntax Flexibel Implementierungsunabhängig Verteilte Systeme

6 XLink - Syntax globale Attribute im Namensraum -> Jedes Element kann Xlink sein <node xmlns:xlink=“ xlink:type=„simple“ xlink:href=„ Mindestens type Attribut + Parameter Beschreibende Elemente müssen direkte Kinder sein Keine Verschachtelung von XLink Verteilte Systeme

7 Xlink – Simple 1/4 Einfachste Form eines Xlink
<link xlink:type=„simple“ xlink:href=„ Steuerung der Anzeige <link xlink:type=„simple“ xlink:href=„ xlink:show=„new“>Heise</link> Verteilte Systeme

8 Xlink – Simple 2/4 Werte für show Attribute:
Replace: ersetze das aktuelle Dokument New: Öffne in neuem Fenster (target=“_blank”) Embed: Ersetze Element durch Inhalt der Ressource (<img src=“”>) Other: keine Vorgabe, suche im Kontext None: keine Vorgabe Verteilte Systeme

9 Xlink – Simple 3/4 Steuerung der Ausführung Attribute Actuate:
onRequest: Auf Anforderung des Nutzers onLoad: beim Laden des Dokumentes Other: keine Vorgabe, suche im Kontext None: keine Vorgabe Bsp. < link xlink:type=„simple“ xlink:href=„ xlink:show=„embed“ xlink:actuate=„onLoad“>Heise</link> Verteilte Systeme

10 Xlink – Simple 4/4 Beschreibung des Links Attribute title:
Enthält für Menschen gedachte Beschreibung des Links Attribute role: Enthält URI, dessen Ressource den Zweck oder weitere Informationen des Links enthält Bsp. <websuche xlink:type=“simple” xlink:href=“ xlink:role=“ Verteilte Systeme

11 Xlink – Extended 1/6 Bisher mit Simple Links: Gewünscht: Link Link
Verteilte Systeme

12 Xlink – Extended 2/6 Einsatz des Extended Links Bsp.
<link xlink:type=„extended“> <src xlink:type=„resource“ xlink:label=„src“>Download</src> <dst1 xlink:type=„locator“ xlink:href=„ xlink:label=„dst“/> <dst2 xlink:type=„locator“ xlink:href=„ </link> Lokale Ressource Entfernte Ressource Verteilte Systeme

13 Xlink – Extended 3/6 <link xlink:type=„extended“>
<src xlink:type=„resource“ xlink:label=„src“>Download</src> <dst1 xlink:type=„locator“ xlink:href=„ xlink:label=„dst“/> <dst2 xlink:type=„locator“ xlink:href=„ <link xlink:type=„arc“ xlink:from=„src“ xlink:to=„dst“ xlink:actuate=„onRequest“/> </link> Verknüpfung Verteilte Systeme

14 Xlink – Extended 4/6 Download http://www.xyz.de/dl1.zip
Verteilte Systeme

15 Xlink – Extended 5/6 Linkbase
Auslagerung von Linkzielen in separate Dokumente Angabe als spezielles Arcrole Attribute <link xlink:type=“extended”> <doc xlink:type=“locator” xlink:href=“doc.xml” xlink:label=“doc”/> <links xlink:type=“locator” xlink:href=“links.xml” xlink:label=“links”/> <arc xlink:type=“arc” xlink:from=“doc” xlink:to=“links” xlink:actuate=“onLoad” xlink:arcrole=“ </link> Verteilte Systeme

16 Xlink – Extended 6/6 Externe Dokumente Dokument Links.xml Linkbase
Doc.xml Externe Dokumente Verteilte Systeme

17 Xlink – Zusammenfassung
Beschreibung von Links zwischen Dokumenten Auslagerung von Links in separate Dokumente Frage: wie verlinke ich Teile von Dokumenten? Antwort: -> XPointer Verteilte Systeme

18 XPath – Zielsetzung Bekanntes aus der HTML Welt
<h2><a name=“kapitel1”>Kapitel 1</a></h2> Verweis auf diese Stelle durch: <a href=“seite.html#kapitel1”>Zum Kapitel 1</a> Nachteil: Abhängig von speziellen Elementen Schreibzugriff auf das zu verweisende Dokument Lösung: Adressierung über Elementbaum Verteilte Systeme

19 XPath – Grundlagen 1/2 Modelliert XML Dokument als Baum
Knotentypen: Elementknoten, Attributknoten, Textknoten Bsp. Dokument <rezept> <zutat id=“mehl”>200g Mehl</zutat> <anleitung> Zuerst nehmen <b>Sie das Mehl</b> und mischen </anleitung> </rezept> Verteilte Systeme

20 XPath – Grundlagen 2/2 / Id b Rezept Zutat Anleit. 200g Mehl
Zuerst nehmen und mischen Sie das Mehl Verteilte Systeme

21 XPath – Syntax Grundsätzlich besteht Ausdruck aus Lokalisierungspfad
Lokalisierungspfad = Relativer Pfad | Absoluter Pfad Absoluter Pfad = ‘/’ Relativer Pfad Relativer Pfad = Step | Relativer Pfad ‘/’ Step Einfaches Bsp. /child::Rezepte/child::* Verteilte Systeme

22 XPath – Syntax - Schritte
3 Bestandteile: Eine Achse, spezifiziert Beziehung zwischen ausgewählten Knoten und Kontextknoten Knotentest, gibt den Knotentyp an Prädikate die die ausgewählte Knotenmenge weiter verfeinern können Child:: Rezept Child:: Rezept [position()>1][…] Verteilte Systeme

23 XPath – Syntax - Achsen 1/3
Child, direkte Kinder des Kontextknotens Verteilte Systeme

24 XPath – Syntax - Achsen 2/3
Descendant, alle Nachkommen des Kontextknotens Verteilte Systeme

25 XPath – Syntax - Achsen 3/3
Achsen einteilbar in: ancestor preceding following self descendant Verteilte Systeme

26 XPath – Syntax - Knotentest
Achse::*, wählt alle Knoten auf der spezifizierten Achse aus Achse::xlink:* alle Knoten auf der Achse mit Namensraum xlink Achse::text() wählt alle Textknoten Achse::comment() wählt alle Kommentarknoten Achse::Bezeichner wählt Knoten mit dem Namen Bezeichner aus (node() für alle Knoten) Verteilte Systeme

27 XPath – Syntax - Prädikate 1/2
Wichtig: Richtung der Achse entscheidend (vorwärts oder rückwärts gerichtet) Achse::*[position()=1] Preceding-sibling::*[position()=1] Following-sibling::*[position()=1] Verteilte Systeme

28 XPath – Syntax - Prädikate 2/2
Count(Knotenset) liefert die Anzahl der Knoten Id(Name) liefert Elemente mit der ID = „Name“ String(object) konvertiert Objekt in Zeichenkette Elementknoten: Verkettung der Zeichenkette aller Element- und Text-Kindknoten Attributknoten: Attributwert Textknoten: enthaltene Zeichendaten Verteilte Systeme

29 XPath – Syntax - Kurzformen
Für einfachere Schreibweise //h2 => /descendant-or-self::node()/child::h2 => wählt alle h2 Knoten des Dokumentes aus => attribute::Name => wählt alle Knoten mit Namen Element und Attribut Name aus Para[1] => ./child::Para/child::*[position()=1] wählt ersten Kindknoten vom Kind Para des Kontextknotens Verteilte Systeme

30 XPath – Zusammenfassung
Flexible Navigation im Dokumentenbaum möglich Nachteil: Ergebnis immer vollständige Knotenmenge Wunsch: Selektiere ab dem 5. Zeichen des zweiten <p> Elements bis zum 10.Zeichen des dritten <p> Elements? Verteilte Systeme

31 XPointer – Überblick Adressierung wird an URI angehangen
Xlink:href=“ Ausdruck>” 3 verschiedene Adressierungsarten Bar Names Child Sequence Full Xpointer Verteilte Systeme

32 XPointer – Bare Names Einfachste Form
Bsp. Xlink:href=„ Adressiert das erste Element welches ein Attribut id=“Title” enthält <start> <element id=“Title”>Titel</element> </start> Verteilte Systeme

33 XPointer – Child Sequence
Adressiert Elemente über schrittweise Auflösung von Zahlen getrennt durch ‚/‘ /1/3/5 adressiert das gleiche Element wie XPath mit: /child::*[1]/child::*[3]/child::*[5] Kombination mit vorangestelltem Bare-Names möglich Title/1/3/5 Verteilte Systeme

34 XPointer – Full XPointer – Points
Syntax: xlink:href=„URI#xpointer(Ausdruck)“ Kann auf Knoten, Knotenmengen aber auch Punkte innerhalb von Knoten zeigen Bsp. Doc.xml#xpointer(/start/text()[1]/point()[3]) <start> Hallo <b>dies</b> ist ein Text </start> Zeigt auf die Stelle zwischen den beiden „l“ Verteilte Systeme

35 XPointer – Full XPointer – Points
Auch auf Attribute, Kommentare und Processing Instructions anwendbar Bsp. <start> Hallo <b type=“extra dick”>dies</b> ist ein Text </start> Zeigt vor das Zeichen „e“ des Attributes type Verteilte Systeme

36 XPointer – Full XPointer – Range
Festgelegt durch 2 Punkte Funktionen: Range(): gibt den Knoten mit Tags aus Xpointer(range(/h2)) Range-inside(): gibt den Inhalt des Knotens Range-to(): gibt den Bereich zwischen 2 Elementen Xpointer(/h1[1]/range-to(/h2[1])) Verteilte Systeme

37 XPointer – Full XPointer –Stringrange
String-range() Funktion ignoriert Markup-Elemente zwischendrin Bsp. Xpointer(string-range(/h2,“Überschrift“)) <h2>Über<b>s</b>chrift</h2> Bsp. Xpointer(string-range(/h2,”Überschrift”,4,7)) <h2>Über<b>s</b>chrift</h2> Position Länge Verteilte Systeme

38 XPointer – weitere Funktionen
Start-point(location-set) Xpointer(start-point(//Rezept)) End-point(location-set) Xpointer(end-point(//Rezept/Anleitung)) Here() Definiert die Stelle im Dokument an der der Xpointer notiert ist Origin() Verweist auf Quell Link (nur mit XLink) des XPointers Verteilte Systeme

39 XPointer – weitere Funktionen
Xmlns(name= Ermöglicht Namespace basierte Adressierung z.B. /name:element1/element2 <element1 xmlns=“ <element2>Beispiel</element2> </element1> <element1> Verteilte Systeme

40 XPointer – Zusammenfassung
Bytegenaue Adressierung in XML Dokumenten Beliebige Bereiche Selektierbar Adressierung robust Probleme: Implementierungen aufwendig Performance Probleme -> Stringoperationen Verteilte Systeme

41 Anwendungen Geringe Unterstützung von XLink bisher
Browser wie Mozilla/Netscape -> Simple Links Wenige relevanten XPointer Implementierungen Fujitsu Xlink Processor (Xlip) Java Package XLink/XPointer Beispiel Java App. Verteilte Systeme

42 Fragen? Verteilte Systeme


Herunterladen ppt "Xlink / Xpointer - Framework"

Ähnliche Präsentationen


Google-Anzeigen