4. XML Query Languages I. 4.1 Introduction. 4.1 Introduction. 4.1 Introduction. 4.1 Introduction. XML Databases 4. XML Query Languages,

17.11.2008 4. XML Query Languages I 4.1 Introduction 4.2 XPath XML Databases 4.3 XPointer 4. XML Query Languages, 17.11.08 4.4 XLink Silke Eckst...
2 downloads 1 Views 2MB Size
17.11.2008

4. XML Query Languages I 4.1 Introduction 4.2 XPath

XML Databases

4.3 XPointer

4. XML Query Languages, 17.11.08

4.4 XLink

Silke Eckstein Andreas Kupfer Institut für Informationssysteme Technische Universität Braunschweig http://www.ifis.cs.tu-bs.de

4.5 Overview 4.6 References

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.1 Introduction

4.1 Introduction

• Querying XML Documents

• Xpath – Navigational access to XML documents

– "Querying XML data" essentially means • • • •

– In a sense, the traversal or navigation of trees of XML nodes lies at the core of every XML query language. – To this end, XQuery embeds XPath as its tree navigation sub-language:

to identify (or address) nodes, to test certain further properties of these nodes, then to operate on the matches, and finally, to construct result XML documents as answers.

– In the XML context, the language XQuery plays the role that SQL has in relational databases. – XQuery can express all of the above constituents of XML querying:

• Every XPath expression also is a correct XQuery expression. • XPath 2.0: http://www.w3.org/TR/xpath20/ .

– Since navigation expressions extract (potentially huge volumes of) nodes from input XML documents, the efficient implementation of the sub-language XPath is a prime concern when it comes to the construction of XQuery processors.

• XPath, as an embedded sublanguage, expresses the locate and test parts; • XQuery can then iterate over selected parts, operate on and construct answers from these. • There are more XML languages that make use of XPath as embedded sublanguages. [Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

3

4.1 Introduction

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4

4.1 Introduction

• XPath as an embedded sublanguage

• XML Pointer Language

– XPath is a declarative, expression-based language to locate and test doc nodes (with lots of syntactic sugar to make querying sufficiently sweet). – Addressing document nodes is a core task in the XML world. XPath occurs as an embedded sub-language in

– Allows to use XPath expressions in URIs – Used to identify ranges within XML documents

• XML Linking Language – To define links, which can…

• XSLT (extract and transform XML document [fragments] into XML, XHTML, PDF, . . . ) • XQuery (compute with XML document nodes and contents, compute new docs, . . . ) • XPointer (representation of the address of one or more doc nodes in a given XML document) • XMLSchema (represent sets of elements as scopes for uniqueness or key concepts)

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

2

• Be as easy as HTML links • Have multiple end points • Be stored independently of the referenced documents

– Allows to add metadata to links – Uses XPointer and XPath

5

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

6

1

17.11.2008

4. XML Query Languages I

4.2 XPath • Context node

4.1 Introduction

– In XPath, a path traversal starts off from a sequence of context nodes.

4.2 XPath 4.3 XPointer

• XPath navigation syntax is simple: An XPath step

4.4 XLink

cs0/step • cs0 denotes the context node sequence, from which a navigation in direction step is taken.

4.5 Overview 4.6 References

• It is a common error in XQuery expressions to try and start an XPath traversal without the context node sequence being actually defined.

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

7

[Scholl07]

4.2 XPath

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

8

4.2 XPath

• Multiple steps

• XPath location steps

– An XPath navigation may consist of multiple steps stepi ,i ≥ 1 taken in succession.

XPath step ax :: nt [p1] … [pn]

– Step step1 starts o from the context node sequence cs0 and arrives at a sequence of new nodes cs1. – cs1 is then used as the new context node sequence for step2, and so on.

– A step (or location step) stepi specifies 1. the axis ax, i.e., the direction of navigation taken from the context nodes, 2. a node test nt, which can be used to navigate to nodes of certain kind (e.g., only attribute nodes) or name, 3. optional predicates pi which further filter the sequence of nodes we navigated to.

Multi-step XPath path cs0/step1/step2/… ≡ ((cs0/step1)/step2)/… cs1 [Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

9

[Scholl07]

4.2 XPath

10

4.2 XPath

• XPath axes

• XPath axes: child, parent, attribute

– XPath defines a family of 12 axes allowing for flexible navigation within the node hierarchy of an XML tree. – XPath axes semantics

– The child axis does not navigate to the attribute nodes below ○. – The only way to access attributes is to use the attribute axis explicitly.

• ○ marks the context node • @ marks attribute nodes, • ● represents any other node kind (inner ● nodes are element nodes). @

@

@

@

@

@ @

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

@ 11

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

12

2

17.11.2008

4.2 XPath

4.2 XPath

• XPath axes: descendant, ancestor, self

• XPath axes: preceding, following, ancestor-or-self

– In a sense, descendant and ancestor represent the transitive closures of child and parent, respectively. @

– Note: In the serialized XML document, nodes in the preceding (following) axis appear completely before (after) the context node. @

@

@ @ [Scholl07]

@

@

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

@ 13

[Scholl07]

4.2 XPath

14

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.2 XPath • XPath axes: Examples (1)

• XPath axes: preceding-sibling, following-sibling, descendant-or-self

– In these first examples, there is a single initial context node, i.e., a context node sequence of length 1: the root element a. • Here, we set the node test nt to simply node() which means to not filter any nodes selected by the axis.

@

XPath example ( f )/child::node()

@

@



( f , )

@ [Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

15

[Scholl07]

4.2 XPath

4.2 XPath • XPath axes: Examples (3)

• XPath axes: Examples (2) XPath example ( f )/attribute::node()

16

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

XPath example ( f )/child::node()/child::node()



attribute b { "0" }



(f, f, text { "f" }, ), )



(f, )

– Notes: XPath example ( f )/descendant::node()

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

17

• If an extracted node has no suitable XML representation by itself, XQuery serializes the result using the XQuery node constructor syntax, e.g., attribute b {"0" } or text { "f" } . • Nodes are serialized showing their content. This does not imply that all of the content nodes have been selected by the XPath expression! [Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

18

3

17.11.2008

4.2 XPath

4.2 XPath

• XPath results: Order & duplicates

• XPath: Results in document order

– XPath Semantics: The result node sequence of any XPath navigation is returned in document order with no duplicate nodes (remember: node identity). – Examples:

XPath: context node sequence of length > 1 (, ⇒ )/child::node()

– Note:

Duplicate nodes are removed in XPath results . . . ( f ... ⇒ )/child::node()/parent::node() ( )/child::node()/following-sibling::node() [Scholl07]



• The XPath document order semantics require to occur before and to occur before . – The result (,,,) would have been OK as well. – In contrast, the result (,,,) is inconsistent with respect to the order of nodes from separate trees!

(, )

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

19

[Scholl07]

4.2 XPath

• XPath: Name test

– Once an XPath step arrives at a sequence of nodes, we may apply a node test to filter nodes based on kind and name.

– A node test may also be a name test, preserving only those element or attribute nodes with matching names.

Kind Test node()

Semantics

Name Test

Semantics

let any node pass

name

text()

preserve text nodes only

preserve element nodes with tag name only (for attribute axis: preserve attributes)

attribute()

preserve attribute nodes only

*

comment()

preserve comment nodes only

preserve element nodes with arbitrary tag names (for attribute axis: preserve attributes)

– Note: • In general we will have cs/ax::* ⊆ cs/ax::node().

processing-instruction()

preserve processing instructions processing-instruction(p) preserve processing instructions of the form document-node() preserve the (invisible) document root node XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

21

[Scholl07]

4.2 XPath

• XPath: Ensuring order is not for free

Collect and concatenate all text nodes of a tree string-join (AB C /descendant-or-self::node()/child::text() , "")

– The strict XPath requirement to construct a result in document order may imply sorting effort depending on the actual XPath implementation strategy used by the processor. ( ⇒ )/descendant-or-self::x/child::y

– The XQuery builtin function string-join has signature string-join(string*, string) as string .

(, )

• In many implementations, the descendant-or-self::x step will yield the context node sequence (...,... ) for the child::y step. • Such implementations thus will typically extract before from the input document.

Equivalent: compute the string value of node a string(AB "ABC" ⇒ C ) XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

22

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.2 XPath

• XPath: Node test example

[Scholl07]

20

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.2 XPath

• XPath: Node test

[Scholl07]

(,, ,)

23

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

24

4

17.11.2008

4.2 XPath

4.2 XPath • XPath: Predicates

• XPath: Predicates – The optional third component of a step formulates a list of predicates [p1]...[pn] against the nodes selected by an axis. – XPath predicate evaluation:

– An XPath predicate pi, may be any XQuery expression evaluating to some value v. To finally evaluate the predicate, XQuery computes the effective Boolean value ebv(v).

• Predicates have higher precedence than the XPath step operator /,i.e.: cs/step[p ][p ] ≡ cs/((step [p ])[p ]) • The pi are evaluated left-to-right for each node in turn. In pi, the current context item is available as '.'. – Context item: predicates may be applied to sequences of arbitrary items (not only nodes) 1

[Scholl07]

2

1

ebv(v)

()

false()

0, NaN

false()

""

false()

false()

false()

x

true()

(x1, x2,..., xn)

true()

2

25

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

• Item x ∉ {0,""; NaN; false()}, items xi arbitrary. Builtin function boolean(item*) as boolean also computes the eective Boolean value. [Scholl07]

4.2 XPath

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

26

4.2 XPath

• XPath: Predicate example

• XPath: Predicates and atomization

Select all elements with an id attribute ( ⇒ e )/descendant-or-self::*[./attribute::id]

Value v

– In XQuery, if any item x – atomic value or node – is used in a context where a value is required, atomization is applied to convert x into an atomic value.

( ... , , e )

• Nodes in value contexts commonly appear in XPath predicates. Consider: Value comparison in a predicate

Select all elements with a "b" grandchild element ( ⇒ e )/descendant-or-self::*[./child::*/child::b]



( 42 42 ⇒ 43 )/descendant-or-self::*[. eq 42]

(42, 42, 42 )

– Note: Existential semantics of path predicates. [Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

27

[Scholl07]

4.2 XPath

• XPath: Predicates and atomization

– Atomization turns a sequence (x1,...,xn) of items into a sequence of atomic values (v1,...,vn): 1. If xi is an atomic value, vi ≡ xi 2. if xi is a node, vi is the typed value of xi . – Remember: the typed value is equal to the string value if xi has not been validated. In this case, vi has type untypedAtomic.

– Atomization (and casting) made explizit ( 42 42 43 )/descendant-or-self::*[data(.) cast as double eq 42 cast as double]

– Note: the value comparison operator eq is witness to the value context in which '.' is used in this query. – For the context item 42 (a nonvalidated node), data(.) returns "42" of type untypedAtomic.

– The XQuery builtin function data(item*) as anyAtomicType* may be used to perform atomization explicitly (rarely necessary). XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

28

4.2 XPath

• Atomization

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

29

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

30

5

17.11.2008

4.2 XPath

4.2 XPath

• Atomization and subtree traversals

• XPath: Positional access

– Since atomization of nodes is pervasive in XQuery expression evaluation, e.g., during evaluation of

– Inside a predicate [p] the current context item is '.'. • An expression may also access the position of '.' in the context sequence via position(). The first item is located at position 1. • Furthermore, the position of the last context item is available via last().

• arithmetic and comparison expressions, • function call and return, • explicit sorting (order by),

– efficient subtree traversals are of prime importance for any implementation of the language: Applying data() to a node and its subtree data( b foo bar ≡ data "fo" ) [Scholl07]

Positional access (x1,x2,...,xn) [position() eq i] ⇒ xi (x1,x2,...,xn)[position() eq last()] ⇒ xn

a c "o" d "b"

e

• A predicate of the form [position() eq i] with i being any XQuery expression of numeric type, may be abbreviated by [i].

"ar"

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

31

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.2 XPath

4.2 XPath Accessing '.'

• XPath:The context item '.' – As a useful generalization, XPath makes the current context item '.' available in each step (not only in predicates) – In the expression cs/e expression e will be evaluated with '.' set to each item in the context sequence cs (in order). The resulting sequence is returned. • Remember: if e returns nodes (e has type node*), the resulting sequence is sorted in document order with duplicates removed. [Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

(1,2,3)/(. + 42) ⇒(43.0,44.0,45.0) (1,2,3)/name(.) ⇒ ("a","b","c") (1,2,3)/position() ⇒ (1,2,3) ()/(./child::b, .) ⇒ (,)

33

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.2 XPath

• XPath: Abbreviations

– Sequences of nodes (e.g., the results of XPath location step) may be combined via • |, union (used synonymously), intersect, except

– These operators remove duplicate nodes based on identity and return their result in document order. – Note: Introduced in the XPath context because a number of useful navigation idioms are based on these operators:

– Since XPath expressions are pervasive in XQuery, query authors commonly use the succinct abbreviated XPath syntax to specify location steps.

Selecting all x children and attributes of context node cs/(./child::x | ./attribute::x) Select all siblings of context node cs/(./preceding-sibling::node() | ./following sibling::node()) or cs/(./parent::node()/child::node() except .) XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

34

4.2 XPath

• Combining node sequences

[Scholl07]

32

Abbreviation

Expansion

nt

child::nt

@

attribute::

..

parent::node()

//

/descendant-or-self::node()/

/1

root(.)/

step1 1(At 35

[Scholl07]

./step

the beginning of a path expression.) XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

36

6

17.11.2008

4.2 XPath

4.2 XPath

• XPath abbrevation examples Abbreviation

Expansion

a/b/c

./child::a/child::b/child::c

a//@id

./child::a/descendant-or-self::node()/attribute::id

//a

root(.)/descendant-or-self::node()/child::a

a/text()

./child::a/child::text()

[Scholl07]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

37

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.2 XPath

4.2 XPath • PurchaseReport – regions [RegionsType]

• RegionsType – zip*

• {keyref pNumKey selector: zip/part field: @number}

parts [PartType] @period @periodEnding {unique selector: regions/zip field: @code} – {key pNumKey selector: parts/part field: @number} – – – –

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

39

• part* – @number – @quantity • @code

• PartsType – part* • @number

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4. XML Query Languages I

40

4.3 XPointer • XML Pointer Language

4.1 Introduction

– – – –

4.2 XPath 4.3 XPointer 4.4 XLink

Allows to use XPath expressions in URIs Used to identify ranges within XML documents URI + XPath == XPointer [XPointer] 4 specifications: • http://www.w3.org/TR/xptr-framework XPointer Framework (Recommendation 25 March 2003) • http://www.w3.org/TR/xptr-xmlns xmlns() Scheme (Recommendation 25 March 2003) • http://www.w3.org/TR/xptr-element element() Scheme (Recommendation 25 March 2003) • http://www.w3.org/TR/xptr-xpointer (Working Draft 19 December 2002)

4.5 Overview 4.6 References

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

38

41

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

42

7

17.11.2008

4.3 XPointer

4.3 XPointer • xpointer() scheme: ranges and points

• Framework – Syntax: uri#pointer1 … pointer_n pointer ::= ( idValue | linkSchema '(' schemaData ')' )* • IdValue references an element • The values "xpointer", "xmlns" and "element" are allowed as values for LinkSchema – Provides extensibility

– Resolving of multiple references from left to right

43

4.3 XPointer

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

44

4.3 XPointer

• xmlns() scheme

• element() scheme

– Namespaces are used only with the xmlns() scheme – xmlns() scheme expressions

– Identify ranges in documents by id values and / or element numbers (position of child nodes) – Examples:

• always fail • assign a namespace to a prefix

Element node with the id value xmldat06032005 element(xmldat06032005)

– Following schema expressions can use the prefix – Syntax: NamespacePrefix = namespace URI Example xmlns(xlink=http://www.w3.org/1999/xlink) xpointer(//*[@xlink:role="rollen.xml#author"])

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

• Point location: standard node and index (points either to a child node or to a character) • Range location: 2 points, seperated by the keyword "to"

– 2 new node tests: range() and point() – New functions working on ranges and points: range-to, string-range, range, rangeinside, start-point, end-point, here and origin

• BUT: Break on success

– Context of XPointer expressions: root node of the XML document referenced by URI XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

– Every location expression in XPath returns a node set – XPointer can identify parts of documents which can not be represented as XPath node set – Additional concept: location and location sets Location: Point, range or standard XPath node

45

4. XML Query Languages I

2nd child of that node element(xmldat06032005/2) 2nd child of the 2nd child of the root node Element(1/2/2) XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

46

4.4 XLink • XML Linking Language

4.1 Introduction

– To define links, which can…

4.2 XPath

• be as easy as HTML links • have multiple end points • be stored independently of the referenced documents

4.3 XPointer 4.4 XLink

– Allows to add metadata to links – Uses XPointer and XPath – [XLink] W3C Recommendation 27 June 2001 http://www.w3.org/TR/xlink

4.5 Overview 4.6 References

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

47

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

48

8

17.11.2008

4.4 XLink

4.4 XLink • Simple links

• XLink namespace

– … link exactly 2 resources with a reference from the local to the remote – … are indicated by the attribute xlink:type='simple' – … contain special attributes with information about:

– The XLink namespace has to be declared, so that applications and tools can recognize XLink markup: XLink namespace ...

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

• The remote resource: xlink:href • Properties of the link: xlink:role rsp. Xlink:arcrole (the value must be an URI) • The meaning of the link: xlink:title • The type of presentation of the remote resource: xlink:show (possible values: new, replace, embed, other, none) • When the link shall be followed: xlink:actuate (values can be: onLoad, onRequest, other, none) 49

4.4 XLink

4.4 XLink

Simple links – examples Huckleberry Finn [Ray01]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

50

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

• Extended XLinks – Components: • Element with attribute xlink:type containing all other link components • Elements representing local resources (xlink:type='resource') • Elements representing remote resources (xlink:type='locator') • Elements representing the actual link between 2 resources (xlink:type='arc') • Elements containing descriptions of the links (xlink:type='title') • Some other attributes

51

52

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.4 XLink

4.4 XLink simple



type

R

href

O

role

O

arcrole

O

title

O

show

O

actuate

O

extended locator R

R

arc

resource R

R

title R

R O

O

O O

O

O

O

O

O O

label

O

O

from

O

to

O

R: required, O: optional XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

53

[XLink]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

54

9

17.11.2008

4.4 XLink

4.4 XLink •

Extended links – example
[XLink]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

55




#FIXED "locator" #REQUIRED #FIXED "http://www.example.com/linkprops/course" #IMPLIED #IMPLIED> 56

(arc) #FIXED "arc" CDATA #IMPLIED CDATA #IMPLIED (new |replace |embed |other |none) (onLoad |onRequest |other |none) NMTOKEN #IMPLIED NMTOKEN #IMPLIED>

Extended links – example Course Load for Pat Jones

#FIXED "resource" #FIXED "http://www.example.com/linkprops/gpa" #IMPLIED #IMPLIED>



#IMPLIED #IMPLIED

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

57

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

58

4.4 XLink • Simple vs. Extended links

Extended links – example

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

xlink:label="CS-101"

3.5

4.4 XLink •

#FIXED "locator" #REQUIRED #IMPLIED #IMPLIED #IMPLIED>

4.4 XLink

Extended links – example
#FIXED "title" #IMPLIED>

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

4.4 XLink •

#FIXED "http://www.w3.org/1999/xlink" #FIXED "extended" #IMPLIED #IMPLIED>

– Simple links can not • link an arbitrary number of local and remote resources • specify a link from a remote resource to a local resource • set a title to a fixed link • set a role or title to the local resource • set a role or totle to the link itself

59

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

60

10

17.11.2008

3.6 Overview 1. 2. 3. 4. 5.

Introduction XML Basics Schema definition XML query languages I Mapping relational data to XML 6. SQL/XML 7. XML processing

3.7 References • http://www.w3.org/ [W3C]

8. XML query languages II 9. XML storage I 10. XML storage - index 11. XML storage - native 12. Updates / Transactions 13. Systems 14. XML Benchmarks

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

– XPath, XPointer, XLink, XQuery, XSLT

• M. Scholl, "XML and Databases", Lecture, Uni Konstanz, WS07/08 [Scholl07] • XML und Datenmodellierung [EE04] – R. und S. Eckstein – Dpunkt-Verlag, 2004, ISBN 3898642224

• XML in a Nutshell [HM04] – Harold & Means – O'Reilly, 2004, ISBN 0596007647 61

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

62

Questions, Ideas, Comments • Now, or ... • Room:

IZ 232

• Office our:

Tuesday, 12:30 – 13:30 Uhr or on appointment

• Email:

[email protected]

XML Databases – Silke Eckstein – Institut für Informationssysteme – TU Braunschweig

63

11