[jira] [Updated] (XALANJ-2646) xslt 3.0 xsl:for-each-group instruction implementation
"Mukul Gandhi (Jira)" <[email protected]> Sat, 9 May 2026 09:39:00 +0000 (UTC)
| Newsgroups | gmane.text.xml.xalan.devel |
|---|---|
| Message-ID | <[email protected]> |
[ https://issues.apache.org/jira/browse/XALANJ-2646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mukul Gandhi updated XALANJ-2646:
---------------------------------
Summary: xslt 3.0 xsl:for-each-group instruction implementation (was: Implementation of xslt 3.0's xsl:for-each-group instruction, for XalanJ's interpretive processor)
> xslt 3.0 xsl:for-each-group instruction implementation
> ------------------------------------------------------
>
> Key: XALANJ-2646
> URL: https://issues.apache.org/jira/browse/XALANJ-2646
> Project: XalanJ2
> Issue Type: New Feature
> Security Level: No security risk; visible to anyone(Ordinary problems in Xalan projects. Anybody can view the issue.)
> Components: Xalan-interpretive
> Reporter: Mukul Gandhi
> Assignee: Mukul Gandhi
> Priority: Major
> Fix For: xslt3.0_alpha1
>
> Attachments: xsl3_for_each_group_test_files.zip
>
>
> I'm creating this jira issue, to track implementation of XSLT 3.0's xsl:for-each-group instruction, for XalanJ's interpretive processor.
> I've done little bit of implementation for this, that seems to work fine for various primary XSLT 3.0 xsl:for-each-group use cases.
> The XSLT 3.0 structural implementation for xsl:for-each-group, implementing the XSLT element xsl:for-each-group, and functions fn:current-group(), fn:current-grouping-key() have been completed. All the xsl:for-each-group's grouping attributes, i.e 'group-by', 'group-adjacent', 'group-starting-with', 'group-ending-with' have been implemented.
> Implementation of using xsl:sort element(s) with xsl:for-each-group element has been fairly completed. The XSLT 3.0 spec, specifies following grammar for xsl:sort element,
> <xsl:sort
> select? = expression
> lang? = { language }
> order? = { "ascending" | "descending" }
> collation? = { uri }
> stable? = { boolean }
> case-order? = { "upper-first" | "lower-first" }
> data-type? = { "text" | "number" | eqname } >
> <!-- Content: sequence-constructor -->
> </xsl:sort>
> Except the xsl:sort element's attributes 'collation' and 'stable', all other attributes of xsl:sort element have been implemented to work with xsl:for-each-group element.
> Currently, xsl:for-each-group's grouping keys (i.e, value of xslt 3.0 function fn:current-grouping-key() for a group) can have values typed as string, number or boolean (any other XPath typed value for xslt 3.0's grouping keys is converted to a string value).
> The relevant working test cases, for this jira issue have been attached as zip archive to this jira issue.
> The codebase changes for these mentioned XSLT 3.0 implementation aspects, have been committed to xalan-java repo's branch xalan-j_xslt3.0.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)