Manipulation von XML-Dokumenten in Tamino - PowerPoint PPT Presentation

About This Presentation
Title:

Manipulation von XML-Dokumenten in Tamino

Description:

Manipulation von XML-Dokumenten in Tamino M. Gesmann Software AG (michael.gesmann_at_softwareag.com) Die Aufgabe Die Zielsetzung berblick Bestehende Ans tze L sung ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 21
Provided by: StevenB174
Category:

less

Transcript and Presenter's Notes

Title: Manipulation von XML-Dokumenten in Tamino


1
Manipulation von XML-Dokumenten in Tamino
  • M. Gesmann
  • Software AG
  • (michael.gesmann_at_softwareag.com)

2
Die Aufgabe
lt?xml version1.0?gtltBTW2003gt....lt/BTW2003gt
lt?xml version1.0?gtltBTW2003gt....lt/BTW2003gt
lt?xml version1.0?gtltBTW2003gt....lt/BTW2003gt
lt?xml version1.0?gtltSIGMOD 2002gt....lt/SIGMOD
2002gt
lt?xml version1.0?gtltVLDB 2002gt....lt/VLDB
2002gt
lt?xml version1.0?gtltBTW2003 statusgeplantgt
ltBeitraggt ltTitelgt...lt/Titelgt
ltAutorgt...lt/Autorgt ltKapitelgt...lt/Kapitelgt
... lt/Beitraggt ...lt/BTW2003gt
3
Die Zielsetzung
BTW2003
lt?xml version1.0?gtltBTW2003gt....lt/BTW2003gt
lt?xml version1.0?gtltBTW2003gt....lt/BTW2003gt
lt?xml version1.0?gtltBTW2003gt....lt/BTW2003gt
lt?xml version1.0?gtltBTW2003gt....lt/BTW2003gt
lt?xml version1.0?gtltBTW2003 ...
gt...lt/BTW2003gt
_at_zustand läuft
4
Überblick
  • Bestehende Ansätze
  • Lösung in Tamino
  • Ausblick

5
Bestehende Ansätze
  • Offen gelegte Datenbankfunktionalität
  • update(dokument, locationPath, Wert)
  • updateXML(dokument, Paare von (locationPath,
    Wert))
  • ServerExtensions

6
Bestehende Ansätze (II)
  • Beschreibungssprachen
  • SiXDML
  • XUpdate / Updategram (eXcelon)
  • Updategram (SQL Server)
  • Erweiterung von XQuery

7
Lösung in Tamino
  • Spracherweiterung von XQuery
  • hohe Funktionalität
  • Selektion zu ändernder Dokument(teil)e
  • Berechnung neuer Inhalte
  • Homogenität
  • Potenzial zur Anfrageoptimierung

8
Lösung in Tamino Elementaroperationen
  • 'delete'
  • 'rename'
  • 'replace'
  • 'insert'
  • ( ForClause LetClause ) WhereClause 'do'
    ...

9
Lösung in Tamino Delete
DeleteClause 'delete' Expr
Änderungsknoten
XQuery
lt?xml version 1.0 ?gt ...
lt?xml version 1.0 ?gt ...
lt?xml version 1.0 ?gt ltBTW2003 ...
gt....lt/BTW2003gt
update delete input()/BTW2003/_at_status
update delete input()/BTW2003/Beitrag/Autor
Michael Gesmann
10
Lösung in Tamino Rename
RenameClause 'rename' Expr 'as' QName
Änderungsknoten
XQuery
lt?xml version 1.0 ?gt ...
lt?xml version 1.0 ?gt ...
lt?xml version1.0 ?gt ltBTW2003 ...
gt....lt/BTW2003gt
update rename input()/BTW2003/_at_status as
zustand rename input()/BTW2003/Beitrag/Titel as
Thema
11
Lösung in Tamino Replace
ReplaceClause 'replace' Expr 'with' Expr
Änderungsknoten
Werteknoten
lt?xml version 1.0 ?gt ...
lt?xml version 1.0 ?gt ...
lt?xml version 1.0 ?gt ltBTW2003 ...
gt....lt/BTW2003gt
update replace input()/BTW2003/_at_status with
attribute zustand geplant
update replace input()/BTW2003/Beitrag/AutorMic
hael Gesmann/Titel with ltThemagtÄnderung von
XML-Dokumentenlt/Themagt
12
Lösung in Tamino - Insert
InsertClause 'insert' Expr
('into''following''preceding') Expr
Werteknoten
Änderungsknoten
lt?xml version 1.0 ?gt ...
lt?xml version 1.0 ?gt ...
lt?xml version 1.0 ?gt ltBTW2003 ...
gt....lt/BTW2003gt
13
Lösung in Tamino FLWU
FLWUExpr ( ForClause LetClause )
WhereClause 'do' ( UpdateExpr Lpar
UpdateSequence Rpar )
update for Beitrag in input()/BTW2003/Beitrag
doinsert attribute thema Beitrag/Titel/text()
into Beitrag delete Beitrag/Titel
14
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

15
Lösung in Tamino - Konflikte
  • Dabei Ausführung der Änderungen ohne feste
    Reihenfolge
  • gültige Dokumente
  • eindeutige Ergebnisse
  • notwendige Änderungen

16
Konflikte - Eindeutigkeit
lt?xml version 1.0 ?gt ltA/gt
update insert ltB/gt into input()/A
insert ltC/gt into input()/A
Auch rename - rename
17
Konflikte - Notwendigkeit
lt?xml version 1.0 ?gt ltAgtltBgtltC/gtlt/Bgtlt/Agt
update delete input()//C delete
input()//B
Auchdelete - rename replace - replace ...
18
Zusammenfassung
  • XQuery Spracherweiterung
  • 2-phasiges Ausführungsmodell
  • Konfliktbehandlung

19
Ausblick
  • semantische Konfliktbehandlung
  • Reihenfolge der Änderungen
  • Realisierungsaspekte
  • parallele Änderungen in einem Dokument
  • partielle Validierung
  • partielle Änderung von Indizes

20
Danke schön!
Fragen?
Write a Comment
User Comments (0)
About PowerShow.com