- 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