3d85ff8a261b3125666692d790114fb3.ppt
- Количество слайдов: 31
CSE 636 Data Integration XML Query Languages XPath
XPath • http: //www. w 3. org/TR/xpath (11/99) • Building block for other W 3 C standards: – – • XSL Transformations (XSLT) XML Link (XLink) XML Pointer (XPointer) XQuery Was originally part of XSL 2
Example for XPath Queries
Data Model for XPath / Document XML PI The root Element bib Comment Element book The root element Element book Element publisher Element author Text Addison-Wesley … Text Serge Abiteboul … 4
XPath: Simple Expressions /bib/book/year Result:
XPath: Restricted Kleene Closure //author Result:
XPath: Functions /bib/book/author/text() Result: Serge Abiteboul Jeffrey D. Ullman Rick Hull doesn’t appear because he has firstname, lastname Functions in XPath: – text() = matches the text value – node() = matches any node (= * or @* or text()) – name()= returns the name of the current tag 7
XPath: Wildcard //author/* Result:
XPath: Attribute Nodes /bib/book/@price Result: “ 55” @price means that price is has to be an attribute 9
XPath: Qualifiers /bib/book/author[first-name] Result:
XPath: More Qualifiers /bib/book/author[firstname][address[//zip][city]]/lastname Result:
XPath: More Qualifiers /bib/book[@price < “ 60”] /bib/book[author/@age < “ 25”] /bib/book[author/text() ] 12
XPath: Summary bib matches a bib element * matches any element / matches the root element /bib matches a bib element under root bib/paper matches a paper in bib//paper matches a paper in bib, at any depth //paper matches a paper at any depth paper|book matches a paper or a book @price matches a price attribute bib/book/@price matches price attribute in book, in bib/book[@price<“ 55”]/author/lastname matches… 13
XPath: More Details • An XPath expression, p, establishes a relation between: – A context node, and – A node in the answer set • In other words, p denotes a function: – S[p] : Nodes {Nodes} • Examples: – – author/firstname. = self. . = parent part/*/*/subpart/. . /name = part/*/*[subpart]/name 14
The Root and the Root
XPath: More Details • We can navigate along 13 axes: ancestor-or-self parent attribute We’ve only seen these, so far child descendant-or-self descendant following-sibling namespace preceding-sibling self 16
XPath: More Details • Examples: – child: : author/child: lastname = author/lastname – child: : author/descendant-or-self: : node()/child: : zip = author//zip – child: : author/parent: : * = author/. . – child: : author/attribute: : age = author/@age • What does this mean ? – /bib/book/publisher/parent: : */author – /bib//address[ancestor: : book] – /bib//author/ancestor: : *//zip 17
XPath: Even More Details • name() = the name of the current node /bib//*[name()=book] same as /bib//book • What does this mean? /bib//*[ancestor: : *[name() !=book]] Is it equivalent to the following? /bib//*[name() !=book]//* • Navigation axis gives us strictly more power! 18
XPath: Example How do we evaluate this XPath expression? /bib//*[name() !=book]//* Let’s take it one step at a time bib A B book C D 19
XPath: Example /bib returns the following list of one node: Node bib A B book C D 20
XPath: Example /bib//* when executed on the previous node list, returns the following new list of nodes: Node A B book C D C D 21
XPath: Example /bib//*[name() !=book] when executed on the previous node list, it eliminates one node: Node A B book C D 22
XPath: Example /bib//*[name() !=book]//* gives us the resulting node list of the XPath expression: Node book C D 23
Keys in XML Schema • We forgot something about XML Schema – Keys – Key References • Why? • XPath is used for keys and key references 24
Keys in XML Schema • Unique = guarantees uniqueness • Key = guarantees uniqueness and existence • All XPath expressions are “restricted”: – /a/b | /a/c – //a/b/*/c OK for selector OK for field • Note: better than DTD’s ID mechanism 28
Keys in XML Schema • Examples Recall: must have a single forename, surname
References • Lecture Slides – Dan Suciu – http: //www. cs. washington. edu/homes/suciu/COURSES/590 DS/0 6 xpath. htm – http: //www. cs. washington. edu/homes/suciu/COURSES/590 DS/1 4 constraintkeys. htm • BRICS XML Tutorial – A. Moeller, M. Schwartzbach – http: //www. brics. dk/~amoeller/XML/index. html • W 3 C's XPath homepage – http: //www. w 3. org/TR/xpath • W 3 C's XML Schema homepage – http: //www. w 3. org/XML/Schema • XML School – http: //www. w 3 schools. com 31