XQuery - Generierung. Christoph Böhm. LN - Forschungsseminar Berlin,

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

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

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

Klausur zur Vorlesung Einführung in XML

XML Schema vs. Relax NG

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

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008

Klausur zur Vorlesung Einführung in XML

Seminar XML und Datenbanken. Thema: Workflow

XML-Übersicht. Von HTML zu XML

XML-Übersicht. Von HTML zu XML. Nutzen von XML. Geschichte von XML. Eigenschaften von XML. Nutzen von XML (extensible Markup Language)

WI/WE - WEB ENGINEERING

1 Was ist XML? Hallo XML! Kommentare in XML 52

WebServices Zwischen Buzzword und Nutzen

Affiliate SOAP-Schnittstelle

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

ER-Diagramm (10 Punkte)

XML Kurs LRZ 1

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

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

Projektseminar Texttechnologische Informationsmodellierung

wsdl-analyse von hand kein normaler mensch macht das am beispiel currencyconverter

XML: Schemas. aktuelle Version: 1 Verweis auf ein Schema 2

Michel Messerschmidt Diplomarbeit. Entwurf einer Sprache zur Klassifizierung von Malware-Vorfällen

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS noch einmal. XQuery... Andreas Schmidt Oracle XQuery 1/12

SOAP. SOAP: Envelope

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

XML-Schema. Einordnung

Dynamische Generierung von XML

Web-Services Grundlagen

Aufgaben zu XPath und XQuery

XML und Internet-Datenbanken

Ich liebe Java && Ich liebe C# Rolf Borst

Konzeptpapier Schnittstelle zwischen TischtennisLive und MKTT

Modellbasierte Entwicklung fehlertoleranter Echtzeitsysteme Fokus: Qualifizierung des Codegenerators

Integration von openarchitectureware in Innovator am Beispiel eines WSDL/XSD Generators für SOA- Plattformen. Nürnberg,

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Agenda. 1 Einleitung. 2 Binäre Bäume. 3 Binäre Suchbäume. 4 Rose Trees. 5 Zusammenfassung & Ausblick. Haskell Bäume. Einleitung.

Datenbankadministration

EDM PROJEKT/THEMA GZÜV SCHNITTSTELLE BESCHREIBUNG XML INTERFACE WATER VERSION: V Projektteam H2O Page 1 of 136

D#32058 Spezifikation UPOC DM V2

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

11.1 Grundlagen - Denitionen

Remedy als Integrationsplattform für verschiedene Helpdesk Systeme unter Nutzung von Webservices

Zusammenfassung M. Rigling 1/22 Version 1.0

Stefan Brass Martin-Luther-Universität Halle-Wittenberg

5. Programmierschnittstellen für XML

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN?

AutoSPARQL. Let Users Query Your Knowledge Base

Jens Kupferschmidt Universitätsrechenzentrum

XSD - XML Schema Definition

XQuery Implementation in a Relational Database System

museumvok-ws: Schnittstellen-Definition

<UL> <LI> Curie <LI> Sokrates </UL> & '$ "( % # ) * + ",+ <UL> <LI> Mäeutik <LI> Bioethik </UL> ) -. / 0

10. XML und XQuery. Prof. Dr.-Ing. Wolfgang Lehner

Schema Mapping. Armin Roth arminroth.de. Armin Roth (arminroth.de) II Schema Mapping / 23

XQuery. Sebastian Krug

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

XSL Transformation (XSLT) Teil IV

Universität zu Köln Informationsverarbeitung WS 2009/10. Datenbanken vs. Markup Prof. Dr. M.Thaller XML als Datenbank

Anfragen & Transformation

Flexible Automatisierung von Geschäftsprozessen mit BPMN und Web Services

Kursinhalte. Kompakt-Intensiv-Training. XSL, XSLT, FO - Einstieg für XML

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

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

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

Informatik 12 Datenbanken SQL-Einführung

5. Programmierschnittstellen für XML

Mining über RDBMSe. von. Christian Widmer. Wie gut lässt sich Mining mit SQL realisieren?

SQL und MySQL. Kristian Köhntopp

MCSA: SQL 2016 Database Development

Clemens H. Cap Bedarf an Zeit, Speicher, Netz und anderen Ressourcen

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Entwicklungsumgebung für die Laborübung

Allgemeines. veröffentlicht unter lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

Dokumentation der Workflow Specification Language (WSL)

Einführung in Datenbanken - XML - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #6. SQL (Teil 4)

XML und.net. Proseminar Objektorientiertes Programmieren mit.net und C# Tuan Duc Nguyen. Institut für Informatik Software & Systems Engineering

(a) Erstellen Sie für die Web-Veröffentlichung eines Artikels die Meta-Informationen nach dem Dublin-Core-Standard.

Objektorientierte Datenbanken

Klausur zur Vorlesung Einführung in XML

<Insert Picture Here> XML DB Vorlesung Ulrike Schwinn Teil 2

SQL/XML Aktueller Stand der Standardisierung

Eclipse Plugin zum Visualisieren von Graphen.

XML-Datei für Web Service auslesen und schreiben

XML-Datenmodellierung und Web-Services

ARBEITSBLATT ZUR SQL-BEFEHLEN

Oracle OLAP 11g: Performance für das Oracle Data Warehouse

Graphdatenbanksysteme

XML Vorlesung ETHZ SS XQuery XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS

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

Buchstabensuppe. Standards für die Präsentation von XML-Instanzen

Michaela Weiss 01. April Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL

Berliner XML Tage 2005: Abbildung des V-Modell XT in Projektron BCS

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Transkript:

XQuery - Generierung Christoph Böhm LN - Forschungsseminar Berlin, 17.01.2005

Agenda Tool Anforderungen XML Schema: Bsp und Parser XQuery: Bsp und Objektmodel Die Semantik einer graphischen XQuery Der S(elect)-P(roject)-Tree XSDTree SPTree XQuery Demo Visionen

Anforderungen 1. Lade XML Schema (aus Daten - später) 2. Anzeigen des Schemas 3. Auswahl der Zielstruktur (Umstrukturierungen - später) 4. Prädikate an den Knoten antragen 5. Definition einer XML Datei zur Ausführung 6. XQuery generieren XQuery generieren 7. XQuery ausführen

XML Schema Beispiel (1) sd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" elementformdefault="qualified"> xsd:element name="statisticsdb"> [... ] <xsd:complextype> <xsd:choice> <xsd:element name="citystatistics" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="organization" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="cid" type="xsd:string"/> <xsd:element name="cname" type="xsd:string" nillable="true" maxoccurs="unbounded"/> <xsd:element name="funding" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype mixed="true"> [... ] </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attribute name="myattribute" type="xsd:string"/> </xsd:complextype> </xsd:element> [... ]

XML Schema Beispiel (2) <xsd:element name="funding" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype mixed="true"> <xsd:all> <xsd:element name="gid" type="xsd:string"/> [... ] <xsd:element name= projectfk" type="xsd:string"/> </xsd:all> </xsd:complextype> </xsd:element> [... ] <xsd:element name="project" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype> <xsd:all> <xsd:element name="namepk" type="xsd:string"/> [... ] </xsd:all> </xsd:complextype> </xsd:element> [... ] xsd:key name="pk3"> <xsd:selector xpath="./project"/> <xsd:field xpath="namepk"/> /xsd:key>... ] xsd:keyref name="fk1" refer="pk3"> <xsd:selector xpath="./funding"/> <xsd:field xpath="projectfk"/>

XML Schema Parser XML Schema Object Model (XSOM) By Kohsuke Kawaguchi (sun)

XML Schema Parser Visitor vereinfachter Baum zzgl. Informationen für XQueryGen: +-de +-hu +-mac +-hummer +-xquerygen +-logic +-xsparsing XSAbstractTreeNode XSAttribute XSComplexElement XSElement XSModelGroup XSParserWrapper XSSimpleElement XSText XSTreeNode isselected() getfather() getchildren() IsPredicateAllowed() getpredicate() hasselecteddescendants() IsLeaf() IsRoot() geticonname() visit( NodeVisitorIF visitor ) nullxstreenode()...

XQuery Beispiel - einfach <result> { for $i in document("statisticsdb.xml")/ statisticsdb/citystatistics/organization/funding let [... ] where [... ] order by [... ] return ( $i/id, $i/project ) } </result>

XQuery Beispiel - komplex <result> { for $i in doc("statisticsdb.xml")/statisticsdb/citystatistics/* where local-name($i) = 'organization' or local-name($i) = 'financial' return ( if ( local-name($i) = 'organization' ) then element {node-name($i)} { for $j in $i/* where local-name($j) = 'funding' return element {node-name($j)} { for $k in $j/* where local-name($k) = 'gid' return $k } } else (), if ( local-name($i) = 'financial' ) then element {node-name($i)} { for $l in $i/* where local-name($l) = 'aid' return $l } else () ) }

XQuery Objektmodel (1)

XQuery Objektmodel (2)

XQuery Objektmodel (3)

XQuery Objektmodel (4) r $x in doc(...xml")/[...] t $y := [...] ere [...] der by [...] turn [...]

Semantik einer Graphischen XQuery (1) Grundregeln: Möglich sind Selektionen und Projektionen. Alles was im Ergebnis erscheinen soll, muss markiert werden. Prädikate wirken immer auf die Ebene, auf der sie definiert worden sind. Attribute erscheinen im Ergebnis mit ihren umschließenden Tags. Das Ergebnis einer generierten XQuery erscheint in Document Order.

Semantik einer Graphischen XQuery (2)

Semantik einer Graphischen XQuery (3)

Semantik einer Graphischen XQuery (4)

S(elect)-P(roject)-Tree (1) Extrakt der Selektionen des XSDTrees Selection if ( local-name( $x0 ) = abc' ) then Name element {node-name($x0)} Simple Content $x0/text() Iteration for $x1 in $x0/... /* Filter where (local-name($x1) = xyz or... and...) Order order by... Auswahl eines XSNodes Name des Knotens in der Ausgabe Einfacher Inhalt des Knotens in der Ausgabe ( $x0, $x0/text(), $x0/@attribute ) Sequenz von XSNodes für die nächste Ebene von SPNodes Filter auf die Sequenz von XSNodes für die nächste Ebene von SPNodes Ordnung auf der Sequenz von XSNodes für die nächste Ebene von SPNodes

S(elect)-P(roject)-Tree (2) <result> { for $x0 in doc( "statistiken.xml" )/statisticsdb/ citystatistics/organization/* where local-name( $x0 ) = 'funding' return if ( local-name( $x0 ) = 'funding' ) then for $x1 in $x0/* where (local-name($x1)='proj' or local-name($x1)='faid') return ( if ( local-name( $x1 ) = 'proj' ) then $x1/text() else (), Selection if ( local-name( $x1 ) = 'faid' ) then Name $x1 else () Simple Content ) Iteration else () Filter } Order

S(elect)-P(roject)-Tree (3) lection: me: ple Content: ration: ter: der: result $i in doc("statisticsdb.xml")/statisticsdb/citystatistics/organization/* local-name( $i ) = 'funding' Selection: Name: Simple Content: Iteration: Filter: Order: local-name( $x0 ) = 'funding' $j in $i/* local-name( $j ) = 'proj or local-name( $j ) = 'faid' Selection: Name: Simple Content: Iteration: Filter: Order: local-name( $x2 ) = proj $j/text() Selection: local-name( $x2 ) = faid Name: Simple Content: $j Iteration: Filter:

XSDTree SPTree 32 sich teilweise überlappende Endkonfigurationen

XSDTree SPTree XQuery SDTree Rekursiver Algorithmus SPTree PTree Visitor XQuery

Demo Let s go...

Visionen / Folgende Schritte Simplify XQuery Gespeicherten XSDTree laden Prädikat Editor / Prädikat Evaluation User aufgrund Schemainformationen unterstützen XML Schema aus Daten berechnen Vorschlag für Joins anhand Key-KeyRefs Aggregationen / Gruppierungen Veränderung des Zielschemas XQuery Beispiel Ergebnis - Funktion

Noch Fragen?