[jira] [Updated] (XALANJ-2752) xpath 3.1 literal map expression parse improvements

"Mukul Gandhi (Jira)" <[email protected]> Sun, 10 May 2026 08:46:00 +0000 (UTC)
Newsgroups gmane.text.xml.xalan.devel
Message-ID <[email protected]>
     [ https://issues.apache.org/jira/browse/XALANJ-2752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mukul Gandhi updated XALANJ-2752:
---------------------------------
    Summary: xpath 3.1 literal map expression parse improvements  (was: unable to parse an xpath 3 map expression)

> xpath 3.1 literal map expression parse improvements
> ---------------------------------------------------
>
>                 Key: XALANJ-2752
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2752
>             Project: XalanJ2
>          Issue Type: Task
>      Security Level: No security risk; visible to anyone(Ordinary problems in Xalan projects.  Anybody can view the issue.) 
>          Components: Xalan-interpretive, XPath
>            Reporter: Mukul Gandhi
>            Assignee: Mukul Gandhi
>            Priority: Major
>             Fix For: xslt3.0_alpha1
>
>
> The following XSL 3.0 stylesheet, doesn't work with Xalan-J's current implementation on dev repos branch xalan-j_xslt3.0:
> <?xml version="1.0" encoding="utf-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
>                         xmlns:map="http://www.w3.org/2005/xpath-functions/map"
>                         version="3.0"
>                         exclude-result-prefixes="map">
>   
>   <xsl:output method="xml" indent="yes"/>
>   
>   <xsl:template match="/">
>     <map>
>        <xsl:variable name="map1" select="map {0 : 'hello', 1 : 'there', 2 : ('yes','no')}"/>
> 	   <xsl:for-each select="map:keys($map1)">
> 	     <entry key="{.}" value="{map:get($map1, .)}"/>
> 	   </xsl:for-each>
> 	</map>
>   </xsl:template>
> </xsl:stylesheet>
> Xalan-J seems to have issues, parsing map entry value ('yes','no').
> But as a workaround, the following works though:
> <xsl:variable name="seq1" select="('yes','no')"/>
> <xsl:variable name="map1" select="map {0 : 'hello', 1 : 'there', 2 : $seq1}"/>
> (i.e, if the mentioned map entry value is, referred from an XSL variable) 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)