W3C about XQuery:
“XQuery is replacing proprietary middleware languages and Web Application development languages.”
Just remember:
XQuery is not just for querying XML!
2. Agenda
Original Scope
Extending Scope
Newest Extensions
Beyond Scope
Summary
11 november 2010 Hardcore XML - XQuery 2
3. about XQuery
“XQuery is replacing proprietary middleware
languages and Web Application
development languages.”
11 november 2010 Hardcore XML - XQuery 3
4. About XQuery
“XQuery is replacing proprietary middleware
languages and Web Application
development languages.”
Observation, glue
More and more XQuery applications
Beyond original scope
11 november 2010 Hardcore XML - XQuery 4
6. Origin
1999, XPath and XSLT not enough
Query languages applied to XML
SQL, OQL, Lorel, .. XML-QL, XQL
XQuery
Merged into Quilt
XQuery WD in 2001
XQuery
XQuery
XQuery
11 november 2010 Hardcore XML - XQuery 6
9. Database features
Efficient storage and extraction XQuery 1.0
Searching
Transactional updating
Data integrity, Triggers
Simultaneous access
Security, Crash-recovery
Optionally: Versioning
...
11 november 2010 Hardcore XML - XQuery 9
10. XQuery and XPath Full Text 1.0
First extension, 2004
W3C Candidate Recommendation
Search within specific nodes
Advanced „contains‟ expressions
Options
• stemming, wildcards, thesaurus, ...
Relevance ranking
Lot of implementations, few compliant
11 november 2010 Hardcore XML - XQuery 10
11. XQuery Update Facility 1.0
Introduced in 2006
W3C Candidate Recommendation
Updating of individual nodes:
insert, delete, replace, rename, and transform
No return values!
Various implementations, partly compliant
11 november 2010 Hardcore XML - XQuery 11
13. XQuery Data Definition Facility
Presented at XML Prague 2010
28msec and ETH Zürich
Static declaration:
collections, indexes and constraints
Functions:
Updating collections
Probing indexes
One implementation?
Zorba / Sausalito
11 november 2010 Hardcore XML - XQuery 13
14. Update compositions
Presented at XML Prague 2010
ETH Zürich and Oracle
Storage cheap
Keep all changes
Consolidated changes aka composition
Versions integral part of tree
No implementations?
11 november 2010 Hardcore XML - XQuery 14
16. XQuery Scripting Extension 1.0 (SX)
W3C Working Draft since 2008
Procedural constructs
While, variable assignment, exit, ..
Breaks functional approach
Also allows multiple, incremental updates
Update *and* return results
Very useful for application logic
Few implementations yet
11 november 2010 Hardcore XML - XQuery 16
17. XQuery 1.1
W3C Working Draft since 2008
Lots of small improvements
Improved FLWOR
Try/Catch
Dynamic function invocation
Output declarations
Mature language, design patterns
Not many implementations yet
11 november 2010 Hardcore XML - XQuery 17
18. XRX and NoSQL
NoSQL:
Use non-relational database
Open source or open standard (like XQuery)
XRX:
Xforms + Rest + Xquery
Innovative two-tier architecture
XForms front-end, XQuery back-end,
REST api
Breaking long-lasting traditions
11 november 2010 Hardcore XML - XQuery 18
24. XQuery and XPath Full Text 1.0
Contains expression
for $b in /books/book Combined search
where $b/title
contains text "improving“ ftand "usability“
ordered distance at most 2 words at start
return
Advanced search criterium
$b
11 november 2010 Hardcore XML - XQuery 24
25. XQuery Data Definition Facility
declare collection users as element()*;
declare automatically maintained index users-by-id
on nodes xqddf:collection( xs:QName(“users") )
by @id as xs:string;
xqddf:insert-nodes(
xs:QName(“users"), <user id=“geert”/> );
xqddf:probe-index-point(
xs:QName(“users-by-id"), “geert” );
11 november 2010 Hardcore XML - XQuery 25