xsl:message with maps

I can't recall whether I raised this before (if I did, apologies). When writing a certain test where xsl:message outputs map items, it errors because xsl:message constructs a document node:

<xsl:message>
    <xsl:map>
        <xsl:map-entry key="'test'">some value</xsl:map-entry>
    </xsl:map>
</xsl:message>

This seems a bit too restrictive, though I am unsure whether we can (easily) change this. The same problem exists with xsl:variable and xsl:param, but in those cases we can circumvent it by adding an as="map(*)". 

I'd be tempted to suggest to change the rules for constructing documents from sequence constructors, something like "if the content is a sequence of function items or maps, the result is a sequence of those, otherwise, a document node". But that would probably violate quite a few principles of orthogonality...

Or we just add an as-attribute to xsl:assert and xsl:message, which brings them in line with other such constructs (provided that it is not too disruptive and allowed in CR period).

Cheers,
Abel

Received on Thursday, 7 January 2016 15:24:49 UTC