XML. Teil 6: XLink, XPointer, XPath. Abteilung Informatik WS 02/03

Ähnliche Dokumente
Referat 11: Einführung in XPath

Prof. Dr. Martin Leischner Fachbereich Informatik XML. Prof. Dr. Martin Leischner Fachbereich Informatik. Anwendungen (SOAP,WSDL, ) Verknüpfungen XSL

Dokumentverarbeitung

XPath Lokalisierspfade Achsen in Lokalisierungsschritten

3 XML. extensible Markup Language. abgeleitet von SGML. definierbare logische Struktur: markierte, sortierte Bäume

XML. Teil 1: Grundbegriffe. Abteilung Informatik WS 02/03

7.2.2 Spezifikation einer Treffermenge

Programmiersprache für Berechnungen auf Folgen Datentypen von XPath. Folgen, deren Elemente entweder Atome oder Baumknoten sind

Einführung in XML. Seminarunterlage. Version 3.05 vom

XPATH (XPATH) Lernziele

XQuery 2013 S Seite 1 h_da S

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger

XPath-Abfragen. 8 XPath-Abfragen

XSLT für SAP NetWeaver Process Integration. Transformationssprache für XML Dokumente

XML Pointer Language (XPointer), XML Linking Language (XLink), XML Base (XBase, ganz kurz) XML Pointer Language. XPointer.

Seminar: XML und intelligente Systeme

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Summer School Digitale Edition

XML Path Language (XPath)

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

XML-Praxis. XPath. Jörn Clausen

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Semistrukturierte Daten

XML-Praxis. XPath. Jörn Clausen

XML-Praxis. XPath. Jörn Clausen.

XML-Technologien. Tutorium im Sommersemester Mai 2014

XML exemplarisch. nach: André Bergholz, Extending Your Markup: An XML Tutorial IEEE Internet Computing, Jul./Aug. 2000, 74 79

Projektseminar "Texttechnologische Informationsmodellierung"

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Semistrukturierte Daten

Seminar Dokumentenverarbeitung

XPath 1.0 Pfadausdrücke zur Adressierung von XML-Fragmenten

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

XML Pointer Language. XML Pointer Language (XPointer), XML Linking Language (XLink), XML Base (XBase, ganz kurz) XPointer.

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Textnavigation mit XPath. Daniel Schopper

INVENTARNR NAME BENUTZNR

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY*

XML Path Language (XPath)

Inhalt. Beispiel: XML Dokument. Beispiel: Dokumentenbaum. XPath VU Semistrukturierte Daten 1. Datenmodell

Projektseminar "Texttechnologische Informationsmodellierung"

XPath. Udo Kelter

XML Path Language (XPath)

XML Information Set, XML Path Language (XPath)

DOM und XPath 05. G. Görz, J. Schneeberger Department Informatik KI.

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Python-Praxis XML & XML-Prozessierung

XPath XML Path Language

XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente. Sebastian Apel

Martin Klossek. Seminar XML: Datenrepräsentation und Abfragesprachen - WS2001/2002

XML Path Language (XPath)

Semistrukturierte Daten

Inhaltsverzeichnis. Teil 1 Grundlagen 5. Teil 2 Formatierung 31 INHALTSVERZEICHNIS

Namespaces in XML. Warum Namensräume in XML? Warum Namensräume in XML?

XML-Datenbanken. Autor: Nan Zhang Veranstaltung: XML in Bioinformatik

Datenaustauschformate. Datenaustauschformate - FLV

XML und Dokumentenmanagement

Gliederung. Service Oriented Architecture - XML Technologies. 1 von 11

XQuery Tutorial. Student: Anke Bremer Betreuer: Dr. Sosna

Einführung in XML Einführung in XML. Erik Wilde Institut für Technische Informatik und Kommunikationsnetze (TIK) ETH Zürich

Index. Index CDATA 113, 183. Achse 430. child 425. all 191. choice 187, 191, 197, 393. ancestor 428. choose 272. Anwendung 351; Beispiel 302

Beschreibung von Dokumenten mit DTDs

Gliederung / Inhaltsüberblick

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS XML Anfragen: XPath. Dr. Christian Senger XML 1

Anfragen an XML-Dokumente mit XPath

XML. Teil 3: Namensräume. Abteilung Informatik WS 02/03

XSLT XSL Transformations

DTDs und XML- Schemata

Daten- und Metadatenstandards Wintersemester 2011 / März 2012 Wiederholung und Klausurvorbereitung

Typologie. XPath unterscheidet zwischen sieben verschiedenen Knoten- Typen.

XSLT XSL Transformations

Document Type Definitions (DTDs)

Fachhochschule Wiesbaden - Fachbereich DCSM. XML Information Set.

Inhaltsverzeichnis Seite 1. Inhaltsverzeichnis. Ein I.T.P.-Fachbuch

XPath & Co. Markus Luczak-Rösch Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Übersicht. Web (Site) Engineering (WebSE) Java-Applets II. Java-Applets. Client-basierte Techniken Applets

XML Pointer Language (XPointer), XML Linking Language (XLink), XML Base (XBase, ganz kurz)

Strukturierung von Inhalten

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Musterlösung des Übungsblattes 1

Datenbanksysteme. Einführung in XML-Technologien. Teil 1: XML und XPath Martin Gieseking

Android will doch nur spielen XML

Eine Dokumenttypdefinition lässt sich im Kopfbereich des XML-Dokumentes (interne DTD) oder in einer separaten Datei formulieren (externe DTD).

XML Grundlagen Teil I

XML. XML-Abfrage- und Transformationssprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. XML-Datenmodellierung / XML-Schemasprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XPath & Co. Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Document Type Definition (DTD)

XML und Datenmodellierung

1. Übung zur Vorlesung Service-orientierte Architekturen

Transkript:

XML Teil 6: XLink, XPointer, XPath Abteilung Informatik WS 02/03

XLink und XPointer Verknüpfungen in XML: XLink (XML Linking Language) definiert, wie ein Dokument zu anderen Dokumenten verknüpft wird XPointer (XML Pointer Language) definiert, wie einzelne Teile eines Dokuments adressiert werden WS 02/03 XML - 2

Einfacher XLink (1/2) Ein einfacher XLink definiert eine one-way Verbindung zwischen zwei Ressourcen: Start-Ressource End-Ressource Start-Ressource (engl. starting ressource): XML-Element End-Ressource (engl. ending ressource): XML-Dokument Element oder Gruppe von Elementen in einem XML-Dokument Nicht-XML-Entität (z.b. Bild) WS 02/03 XML - 3

Beispiel <?xml version="1.0" encoding="utf-8"?> <FACHHOCHSCHULEN xmlns:xlink="http://www.w3.org/1999/xlink"> <HOCHSCHULE xlink:type="simple" xlink:href="http://www.hsr.ch">rapperswil</hochschule> <INFO xlink:type="simple" xlink:href="studiengaenge.xml">studiengänge</info> <LOGO xlink:type="simple" xlink:href="logo.gif"/> </FACHHOCHSCHULEN> WS 02/03 XML - 4

Einfacher XLink (2/2) XLink-Namensraum: http://www.w3.org/1999/xlink, meistens mit dem Präfix xlink XLink-Attribute: xlink:type mit Wert simple. Andere möglichen Werte für einen nicht-einfachen XLink: extented, locator, arc, resource, title, none xlink:href : URI der End-Ressource, z.b. absolute oder relative URL WS 02/03 XML - 5

Link-Verhalten Ein XLink zeigt eine Verbindung zwischen Ressourcen Die Applikation (z.b. der Browser) entscheidet, was diese Verbindung bedeutet Das XML-Dokument kann der Applikation (z.b. dem Browser) eine Bedeutung der Verbindung vorschlagen Attribut xlink:show schlägt vor, wie die Ressource angezeigt werden soll. Werte: new, replace, embed, other, none Attribut xlink:actuate schlägt vor, ob und wie die Verbindung befolgt werden soll. Werte: onload, onrequest, other, none WS 02/03 XML - 6

Linkverhalten: Beispiel <?xml version="1.0" encoding="utf-8"?> <FACHHOCHSCHULEN xmlns:xlink="http://www.w3.org/1999/xlink"> <HOCHSCHULE xlink:type="simple" xlink:href="http://www.hsr.ch" xlink:actuate="onrequest" xlink:show="new"> Rapperswil </HOCHSCHULE> </FACHHOCHSCHULEN> WS 02/03 XML - 7

Link-Semantik Zwei Attribute für die Semantik: xlink:title mit einem String-Wert xlink:role="uri" Die Applikation entscheidet, wie der Wert dieser Attribute verwendet wird WS 02/03 XML - 8

Link-Semantik: Beispiel <?xml version="1.0" encoding="utf-8"?> <FACHHOCHSCHULEN xmlns:xlink="http://www.w3.org/1999/xlink"> <HOCHSCHULE xlink:type="simple" xlink:href="http://www.hsr.ch" xlink:actuate="onrequest" xlink:show="new" xlink:title="homepage der HSR"> Rapperswil </HOCHSCHULE> </FACHHOCHSCHULEN> WS 02/03 XML - 9

Erweiterter Link: Beispiel <?xml version="1.0" encoding="utf-8"?> <FACHHOCHSCHULE xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <HOCHSCHULE xlink:type="locator" xlink:href="http://www.hsr.ch" xlink:label="hsr" >Rapperswil </HOCHSCHULE> <HOCHSCHULE xlink:type="locator" xlink:href="http://www.hsr.ch/studiengaenge.xml" xlink:label="studien" > </HOCHSCHULE> <HOCHSCHULE xlink:type="locator" xlink:href=" http://www.hsr.ch/adresse.xml" xlink:label="adresse" > </HOCHSCHULE> <MORE xlink:type="arc" xlink:from="hsr" xlink:to=" Studien "/> <MORE xlink:type="arc" xlink:from="hsr" xlink:to="adresse"/> <BACK xlink:type="arc" xlink:from="studien" xlink:to="hsr"/> </FACHHOCHSCHULE> WS 02/03 XML - 10

Erweiterter Link Erweiterter Link = Gerichteter Graph mit Labels Knoten Ressourcen Pfad Verbindung Label URI xlink-typen: xlink:type = "extended" xlink:type = "arc" xlink:type = "ressource" xlink:type = "locator " WS 02/03 XML - 11

DTD un XLink XLink-Attribute müssen deklariert werden, wie alle anderen Attribute WS 02/03 XML - 12

DTD und XLink: Beispiel (1/2) <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE WEBSITE SYSTEM "ex84.dtd"> <WEBSITE xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended" xlink:title="hsr Homepage"> <NAME xlink:type="resource">welcome to the HSR</NAME> <HOMESITE xlink:type="locator" xlink:href="http://www.hsr.ch"/>hsr-site</> <MIRROR xlink:type="locator" xlink:title="hsr Homepage (ITA Mirror)" xlink:href="http://www.ita.hsr.ch/hsr/"/>mirror</> </WEBSITE> WS 02/03 XML - 13

DTD und XLink: Beispiel (2/2) <!ELEMENT WEBSITE (NAME, HOMESITE, MIRROR*) > <!ATTLIST WEBSITE xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink" xlink:type (extended) #FIXED "extended" xlink:title CDATA #IMPLIED> <!ELEMENT NAME (#PCDATA)> <!ATTLIST NAME xlink:type (resource) #FIXED "resource"> <!ELEMENT HOMESITE (#PCDATA)> <!ATTLIST HOMESITE xlink:type (locator) #FIXED "locator" xlink:href CDATA #REQUIRED xlink:title CDATA #IMPLIED> <!ELEMENT MIRROR (#PCDATA)> <!ATTLIST MIRROR xlink:type (locator) #FIXED "locator" xlink:href CDATA #REQUIRED xlink:title CDATA #IMPLIED> WS 02/03 XML - 14

XPointer: Motivation Deklaration einer URL mit Anker in einem HTML-Dokument: <A HREF="http://www.ita.hsr.ch/ebiz.htm#Inhalt> Ziel-Dokument muss modifiziert werden, damit sich das Quelldokument mit ihm verbinden kann WS 02/03 XML - 15

xpointer()-ausdruck XPointer können mit einem xpointer()-ausdruck definiert werden, welche am Ende einer URI angehängt werden kann Syntax: xpointer(xpath) Beispiele: xpointer(id("person")) xpointer(/child::person/child::profession[position()=2]) WS 02/03 XML - 16

XPointer mit XLink Beispiel einer URL mit XPointer: http://www.hsr.ch/modulliste.xml#xpointer(//informatik) Beispiel eines XPointers mit XLink: <first_image xlink:type="simple" xlink:href="#xpointer(//slide[position()=1]"> Bemerkungen: Der Kontextknoten ist der Root-Knoten der Entität, welche der XPointer enthält, wenn der Xpath-Ausdruck relativ ist Alternative xpointer()-ausdrücke werden der Reihe nach berücksichtigt, z.b. xpointer(//first_name)xpointer(//last_name) WS 02/03 XML - 17

X-Path X-path = Nicht-XML-Sprache, um Teile eines Dokuments zu identifizieren X-Path Datenmodell: ein XML-Dokument hat eine Baumstruktur Knoten: Wurzel (engl. root) Elemente Texte Attribute Namensräume Anweisungen (engl. processing instructions) Kommentare WS 02/03 XML - 18

X-Path Datenmodell: Beispiel (1/2) <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="people.xsl"?> <!DOCTYPE people [ <!ATTLIST homepage xlink:type CDATA #FIXED "simple" xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink" > <!ATTLIST person id ID #IMPLIED > ]> <people> <person born="1912" died="1954" id="p342"> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <!-- Did the word computer scientist exist in Turing's day? --> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> <homepage xlink:href="http://www.turing.org.uk/"/> </person> <person born="1918" died="1988" id="p4567"> <name> <first_name>richard</first_name> <middle_initial>m</middle_initial> <last_name>feynman</last_name> </name> <profession>physicist</profession> <hobby>playing the bongoes</hobby> </person> </people> WS 02/03 XML - 19

X-Path Datenmodell: Beispiel (2/2) Quelle: E. Harold & al. XML in a Nutshell, s. 156 WS 02/03 XML - 20

X-Path-Datenmodell Root-Knoten Root-Element! Folgende Dokument-Teile sind nicht Teil des X- path-datenmodell (d.h. sind nicht im XML- Dokument-Baum enthalten): XML-Deklaration DOCTYPE-Deklaration DTD xmlns- und xmlns:prefix-attribute Entitätsreferenzen (z.b.: &), Charakterreferenzen (z.b.: σ für α), CDATA-Abschnitte WS 02/03 XML - 21

Location Path (Bezeichnungen) Ein Lokalisierungspfad (engl.: location path) identifiziert einen Knoten oder eine Menge von Knoten in einem Dokument Ein Lokalisierungspfad besteht aus Lokalisierungsschritten (engl. location steps) Jeder Lokalisierungsschritt bezieht sich auf einen Kontextknoten (engl. context node) WS 02/03 XML - 22

Root Location Path Der Root-Lokalisierungspfad wählt den Root- Knoten aus Bezeichnung: / WS 02/03 XML - 23

Lokalisierungsschritt Syntax: Ein Lokalisierungsschritt besteht aus einer Achse, einem Knotentest und einem (optionalen) Predikat: axis::node-test[predicate] Beispiel: Der Lokalisierungsschritt child::person[position()=2] wählt das zweite PERSON-Element, das ein Child-Element des Kontextknotens ist WS 02/03 XML - 24

Achsen (1/2) Die Achse gibt an, in welcher Richtung man ab dem Kontextknoten suchen muss Liste der Xpath-Achsen: child: Alle Knoten, die im Kontextknoten enthalten sind, aber nicht in einem anderen Knoten aus dem Kontextknoten parent: Der einmalige Knoten, der den Kontextknoten, aber keinen anderen Knoten enthält self: Der Kontextknoten ancestor: Die Vorfahren des Kontextknotens und den Kontextknoten selbst attribute: Die Attribute des Kontextknotens descendant: Die Ableitungen (Nachfolger) des Kontextknotens, die Ableitungen von den Ableitungen des Kontextknotens, etc. WS 02/03 XML - 25

Achsen (2/2) Liste der Xpath-Achsen (Fortsetzung): descendant-or-self: Der Kontextknoten selbst und seine Ableitungen following: Alle Knoten, die nach dem Ende des Kontextknotens beginnen, ausser Attributs- und Namensraumknoten following-sibling: Alle Knoten, die nach dem Ende des Kontextknotens beginnen und den gleichen Stamm wie der Kontextknoten haben (Beachte: Attributs- und Namensraumknoten haben keine Siblings) namespace: Alle Namensräume, die für den Kontextknoten definiert wurden preceding: Alle Knoten, die enden, bevor der Kontextknoten anfängt, ausser den Attributs- und Namensraumknoten preceding-sibling: Alle Knoten, die vor Begin des Kontextknotens anfangen und den gleichen Stamm wie der Kontextknoten haben WS 02/03 XML - 26

Knotenteste (1/2) Meistens: Element- oder Attributsname, z.b. /descendant::last_name, /descendant::@died Weitere Knotenteste: * steht für ein belibieges Element prefix:* wählt alle Elemente im Namensraum aus, die mit dem Präfix prefix versehen sind @prefix:* wählt alle Attribute im prefix-namensraum aus text() wählt den Inhalt eines Elements, der aus geparstem Text besteht, z.b. /descendant::text()[position()=2] verweist auf Blablabla... im XML-Dokument: <brief>zürich<datum>12.11.02</datum>blablabla...<brief> WS 02/03 XML - 27

Knotenteste (2/2) Weitere Knotenteste (Fortsetzung) comment() wählt ein Kommentar aus /descendant::comment()[position()=3] processing-instruction() wählt alle Anweisungen, die entlang der Achse stehen. Mit oder ohne Argumente: processing-instruction() : alle Anweisungen werden ausgewählt processing-instruction('target'): nur die target- Answeisung wird ausgewählt, z.b. /descendant::processing-instruction('style-sheet') WS 02/03 XML - 28

Prädikate Jeder Lokalisierungsschritt kann ein oder mehrere Prädikate enthalten, die weiter den Lokalisierungspfad einschränken Beispiele:. = "physicist" (der aktuelle Knoten hat den Wert physicist) name = "Turing" (das name-element hat den Wert Turing) @id = "p33-222" (das id-attribut hat den Wert p33-222) WS 02/03 XML - 29

Location Path Lokalisierungspfad: Folge von Lokalisierungsschritten, welche durch das Zeichen / getrennt werden Beispiel: Der Lokalisierungspfad /child::familytree/child::person besteht aus zwei Lokalisierungsschritten: /child::familytree: Absoluter Schritt, der alle Child- Elemente des Root-Knotens mit Namen FAMILYTREE sucht child::person: Schritt der alle Child-Elemente des Kontextknotens (hier: FAMILYTREE-Element-Knoten) mit Namen Person auswählt WS 02/03 XML - 30

Abgekürzte Lokalisierungsschritte child::name parent::node() self::node() descendant-or-self::node() attribute::name name... // @name Beispiel: Nicht abgekürzt: /child::list/child::person[position()=3]/attribute::born Abgekürzt: /list/person[position()=3]/@born WS 02/03 XML - 31

Wildcards Ersatzzeichen (engl. Wildcard): *: jeder Element-Knoten @*: jeder Attribut-Knoten node(): jeder Knoten Beispiel: /list/person[position()=3]/@* WS 02/03 XML - 32

XPath-Funktionen (1/2) Es gibt 27 vordefinierte Funktionen, die in XPath-Ausdrücke verwendet werden sollen: Die Ein- und Ausgabe dieser Funktionen haben einen der folgenden XPath-Datentypen: boolean (Werte: true, false) number (entspricht dem double-datentyp in JAVA) string (Folge aus Unicode-Zeichen) node-set: Menge aus n 0 Knoten eines XML-Dokuments WS 02/03 XML - 33

XPath-Funktionen (2/2) Beispiel von XPath-Funktionen: node-set id(string IDs) number position() string substring(string s, number n, number length) Liste aller Xpath-Funktionen: siehe z.b. E. Harold, W. Means, XML in a Nutshell, S. 423-429. WS 02/03 XML - 34

Referenzen E. Harold, W. Means: XML in a Nutshell XLink: Kapitel 10 XPointer: Kapitel 11, s. 190-193 XPath: Kapitel 9 WS 02/03 XML - 35