Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Xlink / Xpointer - Framework Seminar: Verteilte Systeme Markus Schulz."—  Präsentation transkript:

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

2 Verteilte Systeme 2 Gliederung 1/2 1.XLink 1. Zielsetzung 2. Syntax 3. Simple Links 4. Extended Links 5. Zusammenfassung

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

4 Verteilte Systeme 4 XLink - Zielsetzung 1/2 Bekanntes aus der HTML Welt: Heise Link Page1.html Page2.html

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

6 Verteilte Systeme 6 XLink - Syntax globale Attribute im Namensraum -> Jedes Element kann Xlink sein Heise Mindestens type Attribut + Parameter Beschreibende Elemente müssen direkte Kinder sein Keine Verschachtelung von XLink

7 Verteilte Systeme 7 Xlink – Simple 1/4 Einfachste Form eines Xlink Heise Steuerung der Anzeige Heise

8 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 ( ) Other: keine Vorgabe, suche im Kontext None: keine Vorgabe

9 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. Heise

10 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.

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

12 Verteilte Systeme 12 Xlink – Extended 2/6 Einsatz des Extended Links Bsp. Download Lokale Ressource Entfernte Ressource

13 Verteilte Systeme 13 Xlink – Extended 3/6 Download Verknüpfung

14 Verteilte Systeme 14 Xlink – Extended 4/6 Download

15 Verteilte Systeme 15 Xlink – Extended 5/6 Linkbase Auslagerung von Linkzielen in separate Dokumente Angabe als spezielles Arcrole Attribute

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

17 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

18 Verteilte Systeme 18 XPath – Zielsetzung Bekanntes aus der HTML Welt Kapitel 1 Verweis auf diese Stelle durch: Zum Kapitel 1 Nachteil: Abhängig von speziellen Elementen Schreibzugriff auf das zu verweisende Dokument Lösung: Adressierung über Elementbaum

19 Verteilte Systeme 19 XPath – Grundlagen 1/2 Modelliert XML Dokument als Baum Knotentypen: Elementknoten, Attributknoten, Textknoten Bsp. Dokument 200g Mehl Zuerst nehmen Sie das Mehl und mischen

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

21 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::*

22 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][…]

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

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

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

26 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)

27 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]

28 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

29 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

30 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 Elements bis zum 10.Zeichen des dritten Elements?

31 Verteilte Systeme 31 XPointer – Überblick Adressierung wird an URI angehangen Xlink:href=http://www.heise.de# Ausdruck> 3 verschiedene Adressierungsarten Bar Names Child Sequence Full Xpointer

32 Verteilte Systeme 32 XPointer – Bare Names Einfachste Form Bsp. Xlink:href=http://www.heise.de/#Title Adressiert das erste Element welches ein Attribut id=Title enthält Titel

33 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

34 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]) Hallo dies ist ein Text Zeigt auf die Stelle zwischen den beiden l

35 Verteilte Systeme 35 XPointer – Full XPointer – Points Auch auf Attribute, Kommentare und Processing Instructions anwendbar Bsp. Hallo dies ist ein Text Zeigt vor das Zeichen e des Attributes type

36 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]))

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

38 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

39 Verteilte Systeme 39 XPointer – weitere Funktionen Xmlns(name=http://beispiel.de) Ermöglicht Namespace basierte Adressierung z.B. /name:element1/element2 Beispiel Beispiel

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

41 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.

42 Verteilte Systeme 42 Fragen?


Herunterladen ppt "Xlink / Xpointer - Framework Seminar: Verteilte Systeme Markus Schulz."

Ähnliche Präsentationen


Google-Anzeigen