Declarative Amsterdam

XPath, XSLT and XQuery 4 - What’s in it for me?

Juri LeinoQT4 Community Group
John LumleyQT4 Community Group

As active members of the QT4 community group we would like to show and explain new important key concepts as well as smaller quality of life changes coming with XPath, XSLT and XQuery 4.0.

The session will be include hands-on tutorials in order to further familiarise with the above.

We will likely prepare small examples that can run in “fiddles” to illustrate the most important parts. This will also allow us to gather some feedback.

To give you some idea what this might entail (given we have enough time).

For XSLT

  • Simple syntactic sugar additions
  • xsl:if/(@then|@else), (xsl:when|xsl:otherwise)/@select, xsl:choose etc.
  • Enclosed modes
  • Declared item types
  • Map and array construction
  • Record types and xsl:record
  • Templates with map and array type matching

For XPath / XQuery

  • Additions to conditional syntax (otherwise, if without else)
  • String templates (not string constructors)
  • Additions to let and for
  • Option arguments
  • Context value
  • The pipeline and the “arrowbang” operator
  • Generalised nodes and lookup operators (JNodes)
  • Additions to the type system: record and enum
  • Explain map key order
  • Destructuring statements
  • New higher-order functions (do-until, partial-apply)
  • JSON and CSV support
  • New map and array functions
  • fn:apply-templates
Tutorial, 6 November 2025

Juri Leino is a software gardener from Berlin with over 15 years of experience in web development. In most recent years he has joined the exist-db project as a core developer focussing on the XQuery runtime. Next to consulting for exist-solutions and jinntec he also maintains and develops node-exist and gulp-exist and created XQuery libraries like xbowexist-jwt and dicey.

A Cambridge engineer by background, John Lumley spent the majority of his career as one of the founding members of HPLabs Bristol. Latterly he specialised in XSLT-based document engineering, in which he subsequently gained a PhD in early retirement. Rarely happier than when writing XSLT to write XSLT, he spent the next several years helping Saxonica, including developing the XSLT-based XSLT compiler now used in SaxonJS. Now in proper retirement he still likes to 'potter' with XSLT and is currently an active member of both the QT4 and the Invisible XML Community Groups.

background Layer 1 prag Twitter_Logo_Blue