|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Map duplicate handling differences
This shortcoming of xsl:map has been noted:
https://github.com/qt4cg/qtspecs/issues/169
Saxon 11 with XSLT 4.0 enabled already supports the proposed on-duplicates
attribute, for example
<xsl:map on-duplicates="function($x, $y){$x}">
which achieves the effect of use-first in map:merge.
Michael Kay
Saxonica
On 9 Dec 2022, at 16:08, Martin Honnen
martin.honnen@xxxxxx<mailto:martin.honnen@xxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx
rytech.com>> wrote:
Am 12/9/2022 um 4:51 PM schrieb Michael Mueller-Hillebrand
michael.mueller-hillebrand@xxxxxxxxx<mailto:michael.mueller-hillebrand@docufy
.de>:
Hello Friday folks,
I have noticed that the duplicate handling when constructing maps is different
and I would like to understand the reason.
When using <xsl:map> with <xsl:map:entry> the transformer rejects duplicate
keys with a runtime error.
<xsl:variable name="pairsMap" as="map(xs:string, xs:string)">
<xsl:map>
<xsl:for-each select="tokenize($pairsString, ';')">
<xsl:map-entry key="substring-before(., '=')"
select="substring-after(., '=')"/>
</xsl:for-each>
</xsl:map>
</xsl:variable>
When using map:merge() without any extra options it uses duplicates:use-first
(I learned I can turn on brejectb or buse-lastb or bcombineb):
<xsl:variable name="pairsMap" as="map(xs:string, xs:string)"
select="map:merge(
for $t in tokenize($pairsString, ';')
return map:entry(substring-before($t, '='),
substring-after($t, '=')))"/>
Have I overlooked a way to define options in the xsl:map case?
Or is this a subtle way to get us to move to inline XPath?
XSLT 4 is going to remedy that shortcoming, see
https://qt4cg.org/specifications/xslt-40/Overview-diff.html#duplicate-keys and
<!-- Category: instruction -->
<xsl:map
on-duplicates? = expression >
<!-- Content: sequence-constructor -->
</xsl:map>
XSL-List info and archive<http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe<http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email<>)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








