Xquery Tutorial
29 Pages

Xquery Tutorial


Downloading requires you to have access to the YouScribe library
Learn all about the services we offer


Xquery TutorialCraig KnoblockUniversity of Southern California„„„„„„„„„„ReferencesXQuery 1.0: An XML Query Language www.w3.org/TR/xquery/XML Query Use Cases www.w3.org/TR/xmlquery-use-casesXquery Interpreter:http://prometheus2.isi.edu:9001/xquery.htmlAdvice: Case mattersWrite your queries incrementally!It is hard to debug entire queriesExample XML Document: bib.xml TCP/IP Illustrated StevensW. Addison-Wesley 65.95 Advanced Programming in the Unix environment 65.95 Example XML Document: bib.xml Data on the Web AbiteboulSergeBunemanPeterSuciuDan Morgan Kaufmann Publishers 39.95 The Economics of Technology and Content for Digital TV GerbargDarcy CITI Kluwer Academic Publishers 129.95 „„„„„„Xquery OverviewXquery is an expression languageEvery statement evaluates to some resultlet $x := 5 let $y := 6 return 10*$x+$yEvaluates to 56Primitive typesNumber, boolean, ...



Published by
Reads 17
Language English
Craig Knoblock
University of Southern California
„ „ „
XQuery 1.0: An XML Query Language „ro/gRTx/wwww..3query/ XML Query Use Cases „www.w3.org/TR/xmlquery-use-cases Xquery Interpreter: „uexq.hryltmuehtemorp//:ptth1/00:9du.esi.is2 „Advice: „Case matters „Write your queries incrementally! „It is hard to debug entire queries
Example XML Document: bib.xml
<bib> <book year="1994"> <title>TCP/IP Illustrated</title> <author><last>Stevens</last><first>W.</first></author> <publisher>Addison-Wesley</publisher> <price> 65.95</price> </book> <book year="1992"> <title>Advanced Programming in the Unix environment</title> <author><last>Stevens</last><first>W.</first></author> <publisher>Addison-Wesley</publisher> <price>65.95</price> </book>
utho></airstr</fsa>t>rl<tuoh>ra<ir<ft>as/lu<ciSu/<>tsrif/<naD>ts</first>st>Serge<>uahtro/<uahtroemun</anla><>Bst>tsretePtsalif<>9.<5 >93ec >p/irok> </bok ye<boo9991"=raltit< >"Ece The>s icomonuahtro >p<builhser>Morgan KaufmaP nnilburehsp/<sliubersh<p> cerisrif/<ycraD>tsri<ft>as/lg<arrbGetaoiifil/<faICITion>liataffit> <of tiD roC dnetnogolany  Tofhnec >l<sa>t< detiro</title>gital TVoo/b <e>ib/b <k>.921>ecicirp/<59 >
Example XML Document: bib.xml
shli>KerwelucarA< >nide/>rotbup<</publisher> <predim cuPlbsiehsr"> <2000ar="k yeb<ooast><fireboul</lsa>tbAtituoh>rl<leit<a> Wee /tb<o atht nltitaD>e
Xquery Overview
Xquery is an expression language
„Every statement evaluates to some result „:= 5 let $y := 6 return 10*$x+$ylet $x „Evaluates to 56
Primitive types
„Number, boolean, strings, dates, times, durations, and XML types
Nodes and Expressions
Various functions create or return nodes „Document function reads an XML file „.wsi.idett:p//wwdoc("h-ofni/u agents/courses/iiweb/bib.xml") „We will use doc(“bib.xml”) throughout, but you must use the expansion to run the demo „Element constructor creates a node: „<doc><par>Blah Blah</par></doc> „Use curly braces to embed Xquery expressions inside an element constructor
Path Expressions
Xquery uses path expressions from Xpath (a W3C standard) Let $b :=doc("bib.xml")
return <result>{$b/bib/book}</result>
/book selects the child elements named book
/book/author selects the author elements of the top-level book elements
Path Expressions (cont.)
//book „returns all book elements that appear anywhere in the document //book[author/last = Stevens] „all book elements with author = Hunter //book[@year > 1999] „book elements with attribute year > 1999 //book[@pages] „all book elements that have a pages attribute
Advanced Path Expressions
//book/(author | editor)  returns all author or editor elements from current node
(//book | //collection)[publisher = $pub]  books for collections where publisher equals $pub variable
(//book)[1]/title/text()  returns the text nodes of the first book element
FLWOR Expressions
„For/Let, Where, Order by, Result Expressions
let $d := doc(bib.xml")/bib
for $b in $d/book
where $b/@year > 1998
order by $b/publisher
return <book>{$b/title, $b/price, $b/publisher}</book>
„Return the names of all authors of books let $d := doc(bib.xml") return <result>{$d/bib/book/author}</result> = <result> <author><last>Stevens</last><first>W.</first></author> <author><last>Stevens</last><first>W.</first></author> <author><last>Abiteboul</last><first>Serge</first></author> <author><last>Buneman</last><first>Peter</first></author> <author><last>Suciu</last><first>Dan</first></author> </result>