Features requiring confirmation

XPath Appendix J.1.1 anad XQuery L.1.1 list:

    • A new with expression allows namespace bindings to be defined within an expression (and to be redefined in nested expressions).
    • The rules for reporting type errors during static analysis have been changed so that a processor has more freedom to report errors in respect of constructs that are evidently wrong, such as @price/@value, even though dynamic evaluation is defined to return an empty sequence rather than an error.
    • Record types are added as a new kind of ItemType, constraining the value space of maps.
    • Local union types are added as a new kind of ItemType, constraining the value space of atomic values.
    • Enumeration types are added as a new kind of ItemType, constraining the value space of strings.
    • The lookup operator ? can now be followed by a string literal, for cases where map keys are strings other than NCNames.
    • The rules for value comparisons when comparing values of different types (for example, decimal and double) have changed to be transitive. A decimal value is no longer converted to double, instead the double is converted to a decimal without loss of precision. This may affect compatibility in edge cases involving comparison of values that are numerically very close.
    • A for member clause is added to FLWOR expressions to allow iteration over an array.

F&O appendix F.1 lists:

A number of functions are included in the draft specification but have not yet been reviewed or accepted:
    • fn:stack-trace
    • map:filter
    • map:replace
    • map:substitute
    • array:replace 

XSLT I.1.1 further lists:


    • Errata agreed against XSLT 3.0 have been applied.
    • Support for XPath 4.0 and Functions and Operators 4.0 is required. This notably means that support for XDM arrays is now required.
    • The xsl:if instruction acquires attributes then and else.
    • The xsl:when and xsl:otherwise elements can be evaluated using a select expression rather than a contained sequence constructor.
    • A new xsl:switch instruction is introduced.
    • The xsl:item-type declaration allows names to be given to item types, which can then be referenced by name. This is particularly useful with record types, introduced in XPath 4.0.
    • The default namespace for element names and the default namespace for types can now be different, allowing built-in types to be referenced in unprefixed form (as="integer").
    • The new instruction xsl:array allows the construction of arrays.
    • New pattern syntax ( type(T), record(N, M, N)) allows matching of items by item type.
    • The xsl:mode declaration acquires an attribute as="sequence-type" which declares the return type of all template rules in that mode.
    • The xsl:for-each and xsl:apply-templates instructions acquire a separator attribute to allow separators to be inserted into the output.
    • The xsl:map instruction acquires a new attribute on-duplicates.
    • The xsl:function declaration allows parameters to be declared as optional, so a single xsl:functiondeclaration can declare functions with multiple arities.
    • Enclosing modes: The xsl:mode declaration allows contained xsl:template declarations.
    • Functions that accept a lexical QName as an argument, such as keyFO30, function-availableFO30, element-availableFO30, type-availableFO30, system-propertyFO30, accumulator-beforeFO30, and accumulator-afterFO30, now have the option of supplying an xs:QName value instead.
    • A serialization parameter escape-solidus has been added, for use in JSON serialization.

Received on Wednesday, 13 March 2024 01:12:08 UTC