SlideShare a Scribd company logo
XQuery Novelties
Geert Josten

Hardcore XML track
XML Holland


                     11 november 2010
Agenda

   Original Scope
   Extending Scope
   Newest Extensions
   Beyond Scope
   Summary




11 november 2010        Hardcore XML - XQuery   2
about XQuery

“XQuery is replacing proprietary middleware
  languages and Web Application
  development languages.”




11 november 2010       Hardcore XML - XQuery   3
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
Original scope




11 november 2010      Hardcore XML - XQuery   5
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
Origin




11 november 2010   Hardcore XML - XQuery   7
Extending scope




11 november 2010       Hardcore XML - XQuery   8
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
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
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
Newest extensions




11 november 2010        Hardcore XML - XQuery   12
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
Update (PUL) 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
Beyond scope




11 november 2010      Hardcore XML - XQuery   15
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
XQuery 1.1

 W3C Working Draft since 2008
 Lots of „small‟ improvements
       Improved FLWOR
       Try/Catch
       Output declarations
 Dynamic function invocation
       Mature language, design patterns
 Not many implementations yet

11 november 2010              Hardcore XML - XQuery   17
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
Summary




11 november 2010    Hardcore XML - XQuery   19
Database features revisited

 Features covered:
       Extraction, Searching, Updating, Data constraints,
        Versioning
       Functional in nature
 Uncovered:
       Storage, Security, Triggers, Crash-recovery..
       Mostly technical, necessary?
       More lacking?


11 november 2010           Hardcore XML - XQuery             20
Just remember


XQuery is not just for querying XML!




11 november 2010    Hardcore XML - XQuery   21
Questions?




11 november 2010     Hardcore XML - XQuery   22
Further reading

 W3C:
       http://www.w3.org/XML/Query/
       http://www.w3.org/standards/techs/xquery


 XML Prague:
       http://www.xmlprague.cz/2010/index.html
       http://www.zorba-
        xquery.com/downloads/xmlprague/papers/pulcomposition.pdf
       http://download.28msec.com/sausalito/technical_reading/xqddf.pdf

11 november 2010             Hardcore XML - XQuery                   23
Timeline




11 november 2010   Hardcore XML - XQuery   24
XQuery and XPath Full Text 1.0 example

  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                    25
XQuery Data Definition Facility example

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     26

More Related Content

Similar to XQuery Novelties (XML Holland 2010 - hardcore xml)

Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...InSync2011
 
Balisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionBalisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionFlorent Georges
 
XML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorXML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorjimfuller2009
 
Migration from FAST ESP to Solr
Migration from FAST ESP to SolrMigration from FAST ESP to Solr
Migration from FAST ESP to Solr
TNR Global
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side Functionality
Markku Laine
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1Marco Gralike
 
XML - State of the Art
XML - State of the ArtXML - State of the Art
XML - State of the Art
Jakub Malý
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Marco Gralike
 
The power of faceted search in alfresco
The power of faceted search in alfrescoThe power of faceted search in alfresco
The power of faceted search in alfrescoXeniT Solutions nv
 
Ample SDK - Open Source GUI Framework
Ample SDK - Open Source GUI FrameworkAmple SDK - Open Source GUI Framework
Ample SDK - Open Source GUI Framework
Béla Varga
 
Taking Advantage of XMetaL’s XInclude Support
Taking Advantage of XMetaL’s XInclude SupportTaking Advantage of XMetaL’s XInclude Support
Taking Advantage of XMetaL’s XInclude Support
XMetaL
 
Expertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesExpertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use Cases
Marco Gralike
 
Hotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured DataHotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured Data
Marco Gralike
 
Linq to xml
Linq to xmlLinq to xml
Linq to xml
Mickey
 
Best Practices - Mobile Developer Summit
Best Practices - Mobile Developer SummitBest Practices - Mobile Developer Summit
Best Practices - Mobile Developer Summit
wolframkriesing
 
EXPath: the packaging system and the webapp framework
EXPath: the packaging system and the webapp frameworkEXPath: the packaging system and the webapp framework
EXPath: the packaging system and the webapp frameworkFlorent Georges
 
Is Ldap Dead ?
Is Ldap Dead ?Is Ldap Dead ?
Is Ldap Dead ?
Ludovic Poitou
 
Exploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - DevelopmentExploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - Development
Octavian Nadolu
 
XML Prague 2005 EXSLT
XML Prague 2005 EXSLTXML Prague 2005 EXSLT
XML Prague 2005 EXSLT
jimfuller2009
 

Similar to XQuery Novelties (XML Holland 2010 - hardcore xml) (20)

Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
 
Balisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionBalisage - EXPath - A practical introduction
Balisage - EXPath - A practical introduction
 
XML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processorXML London 2013 - Architecture of xproc.xq an XProc processor
XML London 2013 - Architecture of xproc.xq an XProc processor
 
Migration from FAST ESP to Solr
Migration from FAST ESP to SolrMigration from FAST ESP to Solr
Migration from FAST ESP to Solr
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side Functionality
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
 
XML - State of the Art
XML - State of the ArtXML - State of the Art
XML - State of the Art
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
 
The power of faceted search in alfresco
The power of faceted search in alfrescoThe power of faceted search in alfresco
The power of faceted search in alfresco
 
Ample SDK - Open Source GUI Framework
Ample SDK - Open Source GUI FrameworkAmple SDK - Open Source GUI Framework
Ample SDK - Open Source GUI Framework
 
Taking Advantage of XMetaL’s XInclude Support
Taking Advantage of XMetaL’s XInclude SupportTaking Advantage of XMetaL’s XInclude Support
Taking Advantage of XMetaL’s XInclude Support
 
Expertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesExpertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use Cases
 
Hotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured DataHotsos 2013 - Creating Structure in Unstructured Data
Hotsos 2013 - Creating Structure in Unstructured Data
 
Linq to xml
Linq to xmlLinq to xml
Linq to xml
 
Best Practices - Mobile Developer Summit
Best Practices - Mobile Developer SummitBest Practices - Mobile Developer Summit
Best Practices - Mobile Developer Summit
 
EXPath: the packaging system and the webapp framework
EXPath: the packaging system and the webapp frameworkEXPath: the packaging system and the webapp framework
EXPath: the packaging system and the webapp framework
 
Is Ldap Dead ?
Is Ldap Dead ?Is Ldap Dead ?
Is Ldap Dead ?
 
Linq To XML Overview
Linq To XML OverviewLinq To XML Overview
Linq To XML Overview
 
Exploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - DevelopmentExploring the new features in Oxygen XML Editor 20 - Development
Exploring the new features in Oxygen XML Editor 20 - Development
 
XML Prague 2005 EXSLT
XML Prague 2005 EXSLTXML Prague 2005 EXSLT
XML Prague 2005 EXSLT
 

Recently uploaded

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 

Recently uploaded (20)

20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 

XQuery Novelties (XML Holland 2010 - hardcore xml)

  • 1. XQuery Novelties Geert Josten Hardcore XML track XML Holland 11 november 2010
  • 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
  • 5. Original scope 11 november 2010 Hardcore XML - XQuery 5
  • 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
  • 7. Origin 11 november 2010 Hardcore XML - XQuery 7
  • 8. Extending scope 11 november 2010 Hardcore XML - XQuery 8
  • 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
  • 12. Newest extensions 11 november 2010 Hardcore XML - XQuery 12
  • 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 (PUL) 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
  • 15. Beyond scope 11 november 2010 Hardcore XML - XQuery 15
  • 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  Output declarations  Dynamic function invocation  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
  • 19. Summary 11 november 2010 Hardcore XML - XQuery 19
  • 20. Database features revisited  Features covered:  Extraction, Searching, Updating, Data constraints, Versioning  Functional in nature  Uncovered:  Storage, Security, Triggers, Crash-recovery..  Mostly technical, necessary?  More lacking? 11 november 2010 Hardcore XML - XQuery 20
  • 21. Just remember XQuery is not just for querying XML! 11 november 2010 Hardcore XML - XQuery 21
  • 22. Questions? 11 november 2010 Hardcore XML - XQuery 22
  • 23. Further reading  W3C:  http://www.w3.org/XML/Query/  http://www.w3.org/standards/techs/xquery  XML Prague:  http://www.xmlprague.cz/2010/index.html  http://www.zorba- xquery.com/downloads/xmlprague/papers/pulcomposition.pdf  http://download.28msec.com/sausalito/technical_reading/xqddf.pdf 11 november 2010 Hardcore XML - XQuery 23
  • 24. Timeline 11 november 2010 Hardcore XML - XQuery 24
  • 25. XQuery and XPath Full Text 1.0 example 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 25
  • 26. XQuery Data Definition Facility example 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 26