Manipulation von XML-Dokumenten in Tamino M. Gesmann Software AG
2M. Gesmann - BTW Die Aufgabe „Ersetzen“ XQuery „geplant “ “ läuft “
3M. Gesmann - BTW Die “läuft“ BTW2003
4M. Gesmann - BTW Überblick Bestehende Ansätze Lösung in Tamino Ausblick
5M. Gesmann - BTW Bestehende Ansätze Offen gelegte Datenbankfunktionalität update(dokument, locationPath, Wert) updateXML(dokument, Paare von (locationPath, Wert)) ServerExtensions
6M. Gesmann - BTW Bestehende Ansätze (II) Beschreibungssprachen SiXDML XUpdate / Updategram (eXcelon) Updategram (SQL Server) Erweiterung von XQuery
7M. Gesmann - BTW Lösung in Tamino Spracherweiterung von XQuery hohe Funktionalität Selektion zu ändernder Dokument(teil)e Berechnung neuer Inhalte Homogenität Potenzial zur Anfrageoptimierung
8M. Gesmann - BTW Lösung in Tamino – Elementaroperationen 'delete' 'rename' 'replace' 'insert' ( ForClause | LetClause )* [ WhereClause ] 'do'...
9M. Gesmann - BTW Lösung in Tamino – Delete DeleteClause ::= 'delete' Expr Änderungsknoten XQuery update delete update delete input()/BTW2003/Beitrag[/Autor =“Michael Gesmann“]
10M. Gesmann - BTW Lösung in Tamino – Rename RenameClause ::= 'rename' Expr 'as' QName Änderungsknoten XQuery update rename as zustand rename input()/BTW2003/Beitrag/Titel as Thema
11M. Gesmann - BTW Lösung in Tamino – Replace ReplaceClause ::= 'replace' Expr 'with' Expr Änderungsknoten update replace with attribute zustand {“geplant“} Werteknoten XQuery update replace input()/BTW2003/Beitrag[/Autor=“Michael Gesmann“]/Titel with Änderung von XML-Dokumenten
12M. Gesmann - BTW Lösung in Tamino - Insert InsertClause ::= 'insert' Expr ('into'|'following'|'preceding') Expr Werteknoten Änderungsknoten XQuery
13M. Gesmann - BTW Lösung in Tamino – FLWU FLWUExpr ::= ( ForClause | LetClause )* [ WhereClause ] 'do' ( UpdateExpr | Lpar UpdateSequence Rpar ) update for $Beitrag in input()/BTW2003/Beitrag do insert attribute thema {$Beitrag/Titel/text()} into $Beitrag delete $Beitrag/Titel
14M. Gesmann - BTW Lösung in Tamino - Schnappschusssemantik Erst: Bestimmung der Änderungs- und Werteknoten Dann: Ausführung der Änderungen Keine Seiteneffekte / keine Rekursionen Dokumentreihenfolge spielt keine Rolle Erlaubt “Reordering“
15M. Gesmann - BTW Lösung in Tamino - Konflikte Dabei: Ausführung der Änderungen ohne feste Reihenfolge gültige Dokumente eindeutige Ergebnisse notwendige Änderungen
16M. Gesmann - BTW Konflikte - Eindeutigkeit update insert into input()/A insert into input()/A Auch: rename - rename ?
17M. Gesmann - BTW Konflikte - Notwendigkeit update delete input()//C delete input()//B Auch: delete - rename replace - replace...
18M. Gesmann - BTW Zusammenfassung XQuery Spracherweiterung 2-phasiges Ausführungsmodell Konfliktbehandlung
19M. Gesmann - BTW Ausblick “semantische“ Konfliktbehandlung Reihenfolge der Änderungen Realisierungsaspekte parallele Änderungen in einem Dokument partielle Validierung partielle Änderung von Indizes
20M. Gesmann - BTW Danke schön! Fragen?