Dokumentverarbeitung

Ähnliche Dokumente
XPATH (XPATH) Lernziele

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

Seminar: XML und intelligente Systeme

XPath Lokalisierspfade Achsen in Lokalisierungsschritten

Semistrukturierte Daten

XQuery 2013 S Seite 1 h_da S

Projektseminar "Texttechnologische Informationsmodellierung"

XPath XML Path Language

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

Templat-Regeln: XSLT Transformation: XML-Dokumente als Bäume: sieben Arten von Knoten. XSLT Verarbeitungsmodell für Templat-Regeln.

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

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

XML Path Language (XPath)

Textnavigation mit XPath. Daniel Schopper

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

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

Seminar Dokumentenverarbeitung

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

XML-Praxis. XPath. Jörn Clausen.

XPath 1.0 Pfadausdrücke zur Adressierung von XML-Fragmenten

Gruppe 3 / 5 / 10. Tutorübung zu Einsatz und Realisierung von Datenbanksystemen (SS 17) Michael Schwarz

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

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

Transformation von XML-Dokumenten mit XSLT

Projektseminar "Texttechnologische Informationsmodellierung"

Algorithmen und Datenstrukturen II

Anfragen an XML-Dokumente mit XPath

Einführung. Hallo-Welt in XSLT

XML Path Language (XPath)

Gliederung / Inhaltsüberblick

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

DOM Document Object Model

INVENTARNR NAME BENUTZNR

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

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

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

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

XML Vorlesung FHA SS

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

Fachhochschule Wiesbaden - Fachbereich DCSM. XML Information Set.

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

Algorithmen und Datenstrukturen II

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel

Textnavigation mit XPath

Gliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension

Einführung in XML. Arthur Brack FHDW Hannover. 1. Oktober 2009

Literatur. Verteilte Anwendungen WS Teil 2/Namensräume

06 Formatierungssprachen, XSL. Manuel Burghardt Lehrstuhl für Medieninformatik

Was ist SGML. - welche Auszeichnungen (Mark up) sind erlaubt? - welche Auszeichnungen sind notwendig?

Programmierparadigmen

XML Grundlagen Teil I

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

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

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

Inhaltsverzeichnis. Daniel Koch. XML für Webentwickler. Ein praktischer Einstieg ISBN:

Web Technologien XML, XQuery, XPath und XSLT

1. Einführung 2. DTD 3. XML Schema 4. XPath 5. XSLT 6. XSL-FO 7. XQuery 8. Web Services 9. XML und Datenbanken

Datenbanksysteme 2 Frühjahr-/Sommersemester April Darf man in der XML Declaration die Versionsnummer weglassen? (d.h.

Datenbanksysteme. Kapitel 9. Einführung in XML, XPath, XQuery und XSLT. Martin Gieseking

Datenbanksysteme. Einführung in XML, XPath und XQuery Martin Gieseking

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN

Einführung in XML Extensible Markup Language

XML Datenbanken Quickstart für die Anfragesprachen XPath und XQuery

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

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

XML und Dokumentenmanagement

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

Tag 2 Repetitorium Informatik (Java)

... MathML XHTML RDF

2. Einführung in Datenbanken und XML

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

Fragestunde: Neuerungen in XQuery und XSLT

Der Datentyp String. Stringvariable und -vergleiche

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

Einstieg in die Informatik mit Java

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest

extended Markup Language (XML)

Entwicklung eines Tutorials für XQuery

Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005

Klaus Schild, XML Clearinghouse Transformation von XML-Dokumenten

Gliederung. Algorithmen und Datenstrukturen I. öschen in Rot-Schwarz-Bäumen. Löschen in Rot-Schwarz-Bäumen

Grundlagen der Extensible Stylesheet Language

Inhalte. Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Gliederung. Dokumentverarbeitung. XQuery: XQuery: XQuery

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XSL Transformationen. -Teil 2 - Schwerpunkt: Templates und Kontrollstrukturen. XSL Transformationen - Teil 2 Christina Krieglstein / 66

XPath Accelerator Zusammenfassung

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

XML-Technologie: Grundlegende Syntax

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

Einstieg in die Informatik mit Java

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

XSL Templates. Mit Templates arbeiten. XSL Templates

Kapitel 3: Variablen

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Referat 11: Einführung in XPath

Kapitel 12: Induktive

Transkript:

Dokumentverarbeitung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2012/13, 2. November 2012, c 2010-13 D.Rösner D. Rösner DokV 2012/13... 1

Gliederung 1 D. Rösner DokV 2012/13... 2

: Zweck: identifizieren von Teilen eines XML-Dokuments (genauer: von Knoten und Knotenmengen im XML-Baum) keine XML-Syntax mögliche Zugriffskategorien: Zugriff auf Knoten z. B. über Position relative Position Typ Inhalt... D. Rösner DokV 2012/13... 4

Verwendung von Verwendung -Syntax wird z.b. in match- und select-attributen in XSLT verwendet oder von XPointer, um genau die Verknüpfungsstelle zu kennzeichnen für einen XLink weitere Möglichkeiten in -Ausdrücken: einfache Arithmetik (z. B. für Nummerierung, Querverweise,... ) Manipulation von Zeichenketten (z. B. Wandlung in Grossbuchstaben, Konkatenation, Ersetzungen,... ) D. Rösner DokV 2012/13... 5

Verwendung von. cont. nicht durch referenzierbar sind: CDATA-Abschnitte Entitätsreferenzen Dokumenttyp-Deklaration arbeitet auf Dokumenten, bei denen diese Objekte bereits im Dokument integriert m.a.w.: es ist z. B. nicht mehr erkennbar, ob ein bestimmter Attributwert im ursprünglichen Dokument enthalten oder durch den in der DTD deklarierten Defaultwert geliefert wurde D. Rösner DokV 2012/13... 6

Bemerkungen zum Datenmodell von der Wurzelknoten des Baums ist nicht identisch mit dem Wurzelelement (des Quelldokuments) Begründung: der Wurzelknoten kann auch noch Knoten für Kommentare und Verarbeitungsinstruktionen enthalten, die vor dem Starttag des Wurzelelements oder nach dessen Endetag enthalten sind xmlns-attribute werden als Namespace-Knoten behandelt; sie sind an jedem Element- und Attribut-Knoten angebracht, der im Skopus dieser Deklaration liegt D. Rösner DokV 2012/13... 7

bestehen aus mind. einem Lokationsschritt und führen zu einer Menge von Knoten im Dokument Menge kann leer, einelementig oder mit endlich vielen Knoten bestückt sein Zugriff auf Dokumentwurzel: / (in Analogie zu UNIX- Filesystem)... absoluter Lokationspfad in beliebigem Kontext wird damit der Wurzelknoten des Dokuments referenziert D. Rösner DokV 2012/13... 9

cont. Zugriff auf Kind-Elemente: erfolgt durch Angabe des Elementnamen relativer Lokationspfad, da die Knotenmenge sich in Bezug zum aktuellen Kontextknoten errechnet in XSLT ist der Kontextknoten der Knoten, der durch das Templat aktuell zur Verarbeitung bestimmt wurde Zugriff auf Attribute: @ gefolgt von Name des Attributs D. Rösner DokV 2012/13... 10

cont. Namespace-Knoten werden vom Prozessor verarbeitet; direkter Zugriff kaum erforderlich mit folgenden kann auf Kommentar-, Text- bzw. PI-Knoten zugegriffen werden: comment(), text(), processing-instruction() durch comment() und text() werden die Kommentar- bzw. Textknoten geliefert, die unmittelbare Kinder des Kontextknoten sind Default-Verarbeitung: Textknoten werden verarbeitet, Kommentarknoten nicht processing-instruction()... liefert alle Kinder des Kontextknoten, die PIs enthalten; als Argument kann - als String - das Ziel angegeben werden; dann werden nur Kinder mit diesem Ziel geliefert D. Rösner DokV 2012/13... 11

Wildcards *... passt auf alle Elementknoten (betrifft aber nicht Attribute, Text, Kommentare und PIs) durch einen Namensraumpräfix kann auf Elemente aus dem bezeichneten Namensraum eingeschränkt werden node()... passt auf alle Knoten, d. h. sowohl auf Elemente, Text, Attribute, PI, Namespace und Kommentare @*... passt auf alle Attributknoten; Verfeinerung durch Namensraum-Präfix möglich; z.b. @xlink:* Alternativen: durch getrennt D. Rösner DokV 2012/13... 12

bisher betrachtet: -Ausdrücke für einzelne Lokationsschritte Elementnamen @ gefolgt von Attributname / comment() text() node() processing-instruction() D. Rösner DokV 2012/13... 13

cont. aus diesen lassen sich zusammengesetzte bilden durch Verwendung von u.a.: / Hierarchie nach unten. aktueller Knoten.. Elternknoten // beliebige Nachkömmlinge D. Rösner DokV 2012/13... 14

cont. die einzelnen Lokationsschritte in einem Lokationspfad beziehen sich aufeinander: ein nachfolgender Schritt bezieht sich auf den vorausgegangenen beginnt der Pfad mit /, dann Bezug zum Wurzelknoten andernfalls Bezug zum Kontextknoten D. Rösner DokV 2012/13... 15

Prädikate in n jeder Schritt in einem Lokationspfad kann ein Prädikat haben, mit dem die an diesem Schritt erhaltene Knotenmenge weiter eingeschränkt wird Prädikate enthalten einen booleschen Ausdruck, mit dem jeder Knoten in der Kontextknotenliste überprüft wird relationale Operatoren in : <, >, >=, <=, =,!= boolesche Verküpfungen: and, or Beachte: in XML-Dokumenten (z. B. XSL-Stylesheets) muss kleiner-als durch < dargestellt werden) D. Rösner DokV 2012/13... 16

Prädikate in n cont. Konversionsregeln, falls Prädikate Werte liefern, die nicht unmittelbar boolesche Werte falls Wert eine Zahl, dann gilt true, wenn diese Zahl gleich der Position des Kontextknoten, und ansonsten false falls Wert Knotenmenge, dann true, wenn diese nicht leer, und ansonsten false falls Wert String, dann true, wenn dieser vom leeren String verschieden, und ansonsten false D. Rösner DokV 2012/13... 17

Unabgekürzte alle bisher vorgestellten Pfade waren abgekürzte stellt zusätzlich eine Syntax für unabgekürzte bereit dabei: jeder Lokationsschritt hat zwei geforderte Teile nämlich Achse (axis) und Knotentest und einen optionalen Teil, die Prädikate Achse: Bewegungsrichtung vom Kontextknoten aus Knotentest: welche Knoten entlang der Achse auswählen? Prädikate: zur weiteren Einschränkung der Knotenmenge in XSLT match-pattern ist nur abgekürzte Syntax zugelassen D. Rösner DokV 2012/13... 18

Unabgekürzte cont. in abgekürzter Syntax sind durch Kurzformen die folgenden Achsen ansprechbar: /... child..... parent.... self @... attribute //... descendant-or-self D. Rösner DokV 2012/13... 19

Unabgekürzte cont. die zusätzlichen Achsen der unabgekürzten Syntax: ancestor: alle Elementknoten, die den Kontextknoten enthalten, in umgekehrter Dokumentordnung following-sibling: alle auf den Kontextknoten folgenden Geschwister (d. h. mit demselben Elternknoten) in Dokumentordnung preceding-sibling: alle dem Kontextknoten vorangehenden Geschwister (d. h....) in umgekehrter Dokumentordnung... D. Rösner DokV 2012/13... 20

zusätzliche Achsen unabgekürzte cont.... following: alle dem Kontextknoten folgenden Knoten in Dokumentordnung, aber ohne Nachfahren des Kontextknotens (descendant) preceding: alle dem Kontextknoten vorangehenden Knoten in umgekehrter Dokumentordnung, aber ohne Vorfahren des Kontextknotens (ancestor)... D. Rösner DokV 2012/13... 21

zusätzliche Achsen unabgekürzte cont.... namespace: alle im Kontextknoten gültigen Namespace-Angaben descendant: alle Nachfahren des Kontextknoten ohne den Kontextknoten selbst ancestor-or-self: alle Vorfahren des Kontextknoten und der Kontextknoten selbst D. Rösner DokV 2012/13... 22

Dokumentordnung (engl. document order): Knotenmengen sind wenn keine Sortierung nach anderen Kriterien (mit <xsl:sort...>) vorgenommen wird in Dokumentordnung sortiert die Verarbeitung von Knotenmengen erfolgt dann in dieser Ordnung informelle Beschreibung: Dokumentordnung ist eine Anordnung der Knoten im XML-Quellbaum, die der Reihenfolge entspricht, in der die zugehörigen Items (d.h. Elemente, Attribute,... ) im XML-Quelldokument vorlagen. D. Rösner DokV 2012/13... 23

Dokumentordnung (engl. document order): Erklärung: Dokumentordnung Für Elemente aus demselben Dokument gilt, dass die Dokumentordnung der Reihenfolge der Start-Tags im XML-Quelldokument entspricht. Auf den XML-Quellbaum bezogen heisst dies, dass ein Knoten immer nach seinen vorangehenden Geschwistern angeordnet wird und diese immer nach ihrem Elternknoten. m.a.w.: Dokumentordnung entspricht einer Präorder-Traversierung (der Elementknoten) des XML-Quellbaums. D. Rösner DokV 2012/13... 24

Dokumentordnung (engl. document order): Erklärung: Dokumentordnung (cont.) Attribut- und Namensraum-Knoten kommen immer nach dem Elementknoten, zu dem sie gehören. Die relative Ordnung von Attribut- und Namensraum-Knoten ist nicht eindeutig festgelegt. Ebenso ist die relative Ordnung von Elementknoten aus unterschiedlichen Dokumenten nicht eindeutig festgelegt. D. Rösner DokV 2012/13... 25

Dokumentordnung (engl. document order): Bemerkungen: Dokumentordnung Attribut-Knoten gelten nicht als Kinder ihrer Elementknoten aber: die Elementknoten gelten als Elternknoten ihrer Attribut-Knoten D. Rösner DokV 2012/13... 26

Allgemeine -Ausdrücke bisher: zur Identifikation einer Menge von Knoten in einem XML-Dokument -Ausdrücke können auch liefern: Zahlen Boolesche Werte Strings in match-attributen können nur -Ausdrücke für Knotenmengen verwendet werden in Prädikaten von n und im select-attribut von xsl:value-of können allgemeine -Ausdrücke verwendet werden D. Rösner DokV 2012/13... 28

Zahlen alle Zahlen in sind Fliesskommazahlen mit doppelter Präzision (8 Byte) gemäss IEEE 754 fünf grundlegende arithmetische Operationen: + - * div mod z. B. <xsl:value-of select ="6 * 7"/> <xsl:value-of select ="@id div 10"/> D. Rösner DokV 2012/13... 29

Strings in : geordnete Folgen von Unicode-Zeichen Literale können sowohl in oder " " eingeschlossen werden (einfache bzw. doppelte Anführungszeichen) Literale dürfen Leerraum enthalten (z. B. Tab, CR, LF,,...), sofern dies innerhalb eines XML-Dokuments die Wohlgeformtheit nicht verletzt Operatoren für Strings (s.a. -): =!= möglich, aber meist nur sinnvoll, wenn beide Strings Zahlen: < > <= >= D. Rösner DokV 2012/13... 30

Booleans müssen genau einen der Werte true oder false annehmen Beachte: true und false stehen nicht als Literale zur Verfügung, sondern werden von den true() bzw. false() geliefert Daher: <xsl:value-of select="true"/> D. Rösner DokV 2012/13... 31

in Typen der Rückgabewerte: Boolean Number Knotenmenge (node set) String nicht vorgesehen: void keine strenge Typisierung wie in Java oder C, sondern häufig automatische Konversion von Ausnahme: Strings, Booleans oder Zahlen können nicht in Knotenmengen konvertiert werden D. Rösner DokV 2012/13... 33

in Beispiel: <xsl:apply-templates select="name[starts-with(lastname, T )]"/> lastname liefert eigentlich Knotenmenge, die in ihren Stringwert konvertiert wird (d. h. in den Textinhalt des Elements lastname) in XSLT, XPointer und anderen Anwendungen von werden für die jeweilige Anwendung hinzugefügt D. Rösner DokV 2012/13... 34

für Knotenmengen position()... Position des aktuellen Knoten in Kontextknotenliste last()... Zahl der Knoten in Kontextknotenliste count()... Zahl der Knoten in als Argument übergebener Knotenmenge id()... Argument ist ein String mit durch Leerraum getrennt einem oder mehreren IDs; Rückgabe ist die Menge der Knoten im Dokument mit diesen IDs Beachte: Typ ID für Attribute in DTD deklariert D. Rösner DokV 2012/13... 35

für Strings starts-with(string1, string2)... beginnt der erste String mit dem zweiten? contains(string1, string2)... enthält der erste String den zweiten? substring-before(string1, string2)... gibt den Teilstring des ersten String zurück, der vor dem ersten Vorkommen des zweiten String liegt (oder Leerstring, falls kein solches Vorkommen) substring-after(string1, string2)... analog: gibt den Teilstring des ersten String zurück, der nach dem ersten Vorkommen des zweiten String liegt (oder Leerstring, falls kein solches Vorkommen) D. Rösner DokV 2012/13... 36

für Strings cont. substring(string, pos1, anzahl)... gibt den Teilstring von string beginnend mit Position pos1 und anzahl Zeichen lang (Zählung bei Position ist 1-basiert) string-length(string)... Länge des Strings normalize-space(string)... Reduktion unnötigen Leerraums in String string(arg)... Konversion des Arguments in einen Stringwert... D. Rösner DokV 2012/13... 37

Multiple Filter insbesondere dort unvermeidlich, wo in Kurzschreibweise mit numerischem Wert nach Knotenposition geprüft wird [position()= 3 and not(title)] ist zulässig [3 and not(title)] ist nicht zulässig mit multiplen Filtern: [3][not(title)] D. Rösner DokV 2012/13... 38

Multiple Filter beachte: Reihenfolge der Filter ist wesentlich //chapter[3][not(title)] //chapter[not(title)][3] D. Rösner DokV 2012/13... 39

Literatur: I Elliotte Rusty Harold and W. Scott Means. XML in a Nutshell. O Reilly, Sebastopol, CA, USA, 2001. 1st edition; ISBN 0-596-00058-8. D. Rösner DokV 2012/13... 40