The W3C XQuery and XSLT Working Groups have updated five working drafts:
The XSLT 2 working draft hasn't been updated for the second time in a row now. I'm not sure what's holding it up.
Most of the changes in XPath 2.0 in this draft seem to be editorial, more aimed at tightening up the spec than on changing the language itself. Some of the more substantive changes include::
SequenceType syntax has been simplified. SchemaContextPath is no longer part of the SequenceType syntax.
xdt:untypedAny
has changed to xdt:untyped
.
xs:anyType
is no longer abstract, and is
used to denote the type of a partially validated element node.
Value comparisons return ()
if either operand is ()
.
The precedence of the cast
, treat
, and unary arithmetic operators has been increased.
A new component has been added to the static context: context item static type.
Most of the changes in XQuery are a little more substantive and include::
The last step in a path expression can return a sequence of atomic values or a sequence of nodes (mixed nodes and atomic values are not allowed.)
A value of type xs:QName is now defined to consist of a "triple": a namespace prefix, a namespace URI, and a local name. Including the prefix as part of the QName value makes it possible to cast any QName into a string when needed.
Local namespace declarations have been deleted from computed element constructors. No namespace bindings may be declared by a computed element constructors.
The Prolog has been reorganized into three parts which must appear in this order: (a) Setters; (b) Namespace declarations and module and schema imports; (c) function and variable declarations.
A new "inherit-namespaces" declaration has been added to the Prolog, and "namespace inheritance mode" has been added to the static context.
An "encoding" subclause has been added to the Version Declaration in the Prolog.
A new declaration has been added to the Prolog to control the query-wide default handling of empty sequences in ordering keys ("empty greatest" or "empty least".)
In the static context, "current date" and "current time" have been replaced by "current dateTime", which is defined to include a timezone.
Computed comment constructors now raise an error rather than trying to "fix up" a malformed comment by inserting blanks.
The div
operator can now divide two yearMonthDurations or two dayTimeDurations. In either case, the result is of type xs:decimal
.
Support for XML 1.1 and Namespaces 1.1 have been bundled together and defined as an optional feature. Various aspects of query processing and serialization that depend on this optional feature have been identified.
Cyclic module imports are no longer permitted. A module M may not import another module that directly or indirectly imports module M.
The application/xquery MIME media type has been defined.