- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 13 Mar 2024 01:11:51 +0000
- To: public-xslt-40@w3.org
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