QT4 CG Meeting 153 Minutes 2026-02-17
Meeting index / QT4CG.org / Dashboard / GH Issues / GH Pull Requests
Table of Contents
- Summary of new and continuing actions
[0/5] - Draft Minutes
- 1. Administrivia
- 2. Technical agenda
- 2.1. Improvements to FOS
- 2.2. Issue #2460: file:read-text and invalid XML characters
- 2.3. Other issue triage
- 2.3.1. #77 Allow manipulation of maps and arrays
- 2.3.2. #272 Setting parameter values in xsl:use-package
- 2.3.3. #285 Stability of collections
- 2.3.4. #540 Add fn:system-property() to XQuery
- 2.3.5. #641 Serialization fallback
- 2.3.6. #675 XSLT streaming rules for new constructs
- 2.3.7. #1045 Functions to manage namespace usage
- 2.3.8. #1225 Generalization of Deep Updates
- 2.3.9. #1234 Seralization Parameters: Indentation, Whitespace, Newlines
- 2.3.10. 1251 Allow sequence constructor in extension instructions that are implemented with named templates
- 2.3.11. 1310 add fn:match-groups() function
- 2.3.12. 1459 Function properties and arities
- 2.3.13. 1479 Default element namespace in XQuery: interaction of 'fixed' and '##any'
- 2.3.14. 1506 Type declarations: Constructor functions?
- 2.3.15. 1528 Computed node constructors: observations
- 2.3.16. 1584 Review the XML Schema and RELAX NG schemas for XSLT 4.0 for compatibility
- 2.3.17. 1697 Add documentary names to callback function signatures
- 2.3.18. 1702 Node Updates: Functions
- 2.3.19. 1777 Shallow copy in XSLT with maps and arrays
- 2.3.20. 1920 Parse functions: determinism
- 2.3.21. 1948 fn:element-to-map:
- 2.3.22. 1949 fn:element-to-map: Updated Feedback
- 2.3.23. 1979 Records: Type Safety
- 2.3.24. 2000 element-to-map() - type signature of plan
- 2.3.25. 2018 Type-checking the result of xsl:apply-templates
- 2.3.26. 2039 Generalize context item to context value in XSLT
- 2.3.27. 2052 fn:collation-available: $usage
- 3. Any other business
Summary of new and continuing actions [0/5]
[ ]QT4CG-143-02: MK to try to recover the ability to extract formal equivalences into tests[ ]QT4CG-143-03: JK to look for C14N test suites.[ ]QT4CG-144-01: MK to consider if any now lost value comparisons should be added as examples.[ ]QT4CG-149-01: CG to draft a new PR with the common rule note.[ ]QT4CG-150-01: NW to ask Jirka for a room at XML Prague for Tuesday/Wednesday[ ]QT4CG-150-04: NW to see about a status update on PR #2345; possibly schedule discussion[ ]QT4CG-151-01: MK to fix the typo in the build-dateTime function.[ ]QT4CG-151-03: NW to investigate why records are formatted incorrectly in XSLT[ ]QT4CG-152-01: MK to add a note about the new and old syntax for names in PR #2446[ ]QT4CG-153-01: MK to investigate the indentation problem.[ ]QT4CG-153-02: MK to turn my suggestions on #1949 into a PR.
Draft Minutes
1. Administrivia
1.1. Roll call [9/10]
Regrets: DB.
[ ]David J Birnbaum (DB)[X]Reece Dunn (RD)[X]Christian Grün (CG)[X]Joel Kalvesmaki (JK)[X]Michael Kay (MK)[X]Juri Leino (JLO)[X]John Lumley (JWL)[X]Alan Painter (AP[X]Wendell Piez (WP)[X]Norm Tovey-Walsh (NW) Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is planned for 3 March 2026.
We will not meet on 24 February.
1.5. Review of open action items [1/10]
[ ]QT4CG-143-02: MK to try to recover the ability to extract formal equivalences into tests[ ]QT4CG-143-03: JK to look for C14N test suites.[ ]QT4CG-144-01: MK to consider if any now lost value comparisons should be added as examples.[ ]QT4CG-149-01: CG to draft a new PR with the common rule note.[ ]QT4CG-150-01: NW to ask Jirka for a room at XML Prague for Tuesday/Wednesday[X]QT4CG-150-03: NW to setup an agenda item to review open issues[ ]QT4CG-150-04: NW to see about a status update on PR #2345; possibly schedule discussion[ ]QT4CG-151-01: MK to fix the typo in the build-dateTime function.[ ]QT4CG-151-03: NW to investigate why records are formatted incorrectly in XSLT[ ]QT4CG-152-01: MK to add a note about the new and old syntax for names in PR #2446
1.6. Review of open pull requests and issues
This section summarizes all of the issues and pull requests that need to be resolved before we can finish. See Technical Agenda below for the focus of this meeting.
1.6.1. Blocked
The following PRs are open but have merge conflicts or comments which suggest they aren’t ready for action.
- PR #2350: 708 An alternative proposal for generators
- PR #2345: 2299 Expand pipeline to allow arrow expression in path expression
- PR #2313: 2298 XQFO rules: definition of default values
- PR #2266: 540 system-property equivalent for XQuery
- PR #2247: 716 Deferred Evaluation in XPath - the f:generator record
- PR #2160: 2073 data model changes for JNodes and Sequences
- PR #2071: 77c deep update
- PR #2019: 1776: XSLT template rules for maps and array
1.6.2. Merge without discussion
The following PRs are editorial, small, or otherwise appeared to be uncontroversial when the agenda was prepared. The chairs propose that these can be merged without discussion. If you think discussion is necessary, please say so.
- PR #2446: 2427 Add computed node constructors to XPath
Proposal: merge without discussion.
Accepted.
1.6.3. Close without action
It has been proposed that the following issues be closed without action. If you think discussion is necessary, please say so.
- Issue #2234: Replace `a/get(XX)` with `a/?(XX)`
Proposal: close with no further action.
Accepted.
2. Technical agenda
2.1. Improvements to FOS
See PR #2457 Improved use of fos:result, and PR #2456: Stylesheet handling of fos:result/@narrative
MK introduces the infrastructure changes.
- MK: We made a schema change to allow results in the function catalog to be
annotated as narrative. A narrative result isn’t testable. The stylesheets
handle that attribute; formatting without the code font. And when QT tests are
generated from that example, we generate a “passing” test as long as it is
syntactically valid.
- … And #2457 makes use of that markup in the F&O function catalog.
- … The next stage will be to apply it there as well.
- JLO: We have now some narrative results, could we have both?
- MK: For different examples of the same function. For a single result, you’d have to use the old mechanism.
- CG: I like the change; editorially, the text may need to be adjusted with respect to indentation.
ACTION QT4CG-153-01: MK to investigate the indentation problem.
Proposal: accept this PR.
Approved.
2.2. Issue #2460: read-text and invalid XML characters
See issue #2460: read-text and invalid XML characters
Perhaps we can decide what needs to be done here.
- MK: Sounds like it’s going the right way.
- JLO: Looks nice; but should we have a single character type?
- RD: We have a character, but it isn’t used in an XSD type.
Some discussion of codepoint vs. string vs. character.
- CG: How do you represent a non-permitted character?
Ok, we do need to make it a code point!
- CG: The return type should be untyped atomic. It gives you more flexibility.
- NW: Okay.
- JLO: Can we also replace it with nothing?
- NW: I thought that was the empty string, but it’ll have to be
xs:untypedAtomic?
2.3. Other issue triage
NW proposes a three broad categories: close it; nice to have; leave it as is, we have to do it. This is a coarse triage only.
- JK: One small suggestion is to sort chronologically.
- NW: Ok, then we start with #77.
2.3.1. #77 Allow manipulation of maps and arrays
See #77
- MK: There’s been a lot of work in this area, and more is needed, but it’s not clear if this is the right issue.
2.3.2. #272 Setting parameter values in xsl:use-package
See #272
- MK: It’s still nice to have.
2.3.3. #285 Stability of collections
See #285
- MK: As CG says, this is a minefield.
- NW: Are we going to ship without it?
- MK: Implementations have been pragmatic in the past and will probably continue to do so.
- NW: Nice to have?
2.3.4. #540 Add fn:system-property() to XQuery
See #540
- MK: I tried to address this; but it didn’t go very well.
- … We could extend the system function to sort out the difference between compile time and runtime propertiers.
2.3.5. #641 Serialization fallback
See #641
- NW: We’ve done some work on this.
- MK: I think I’m going to propose dropping this one.
Marked close with out further action.
2.3.6. #675 XSLT streaming rules for new constructs
See #675
This one has to be done.
2.3.7. #1045 Functions to manage namespace usage
See #1045
- MK: The problem of this one is the open-endedness of it. Do you do a very general thing or something more targeted?
Marked close with out further action.
2.3.8. #1225 Generalization of Deep Updates
See #1225
- MK: We have the problem about the status of the XQuery Update spec; if we’re doing anything on that specification, we need to do housekeeping to bring it in line with the specs. XQuery Update 3.0 was abandoned.
Marked close with out further action.
2.3.9. #1234 Seralization Parameters: Indentation, Whitespace, Newlines
See #1234
- CG: I’ll try to write a PR for this one. Many implementations have ways of doing this.
2.3.10. 1251 Allow sequence constructor in extension instructions that are implemented with named templates
See #1251
Marked close with out further action.
2.3.11. 1310 add fn:match-groups() function
See #1310
- MK: The
fn:analyze-stringfunction was an intent to do this; but it relies on an XML representation of the results.- … The aim here would be a single function that gives you all the data in the form of maps of arrays.
- JWL: Can this be written entirely in XPath?
- MK: You might have to apply the regex more than once; and there are things that aren’t easily available like “how many groups are there?”
2.3.12. 1459 Function properties and arities
See #1459
- CG: The properties don’t reflect what’s currently available.
2.3.13. 1479 Default element namespace in XQuery: interaction of 'fixed' and '##any'
See #1479
- MK: I think there’s a potential bug here; we should come back to it.
2.3.14. 1506 Type declarations: Constructor functions?
See #1506
- CG: For record declarations, we have implicit constructor functions. Do we want to have something similar for things like enums?
- MK: I think that creates a false impression that enums are more strongly typed than they are.
Marked close with out further action.
2.3.15. 1528 Computed node constructors: observations
See #1528
- CG: Mostly this is about shortening the list of excluded keywords.
- MK: That’s certainly a much nicer list.
- NW: Can we test this?
- MK: Verifying that this is a complete maximal and minimal list is much harder to check.
Leave it the way it is.
2.3.16. 1584 Review the XML Schema and RELAX NG schemas for XSLT 4.0 for compatibility
See #1584
- NW: Before we’re done, we’ll have to check this with care.
2.3.17. 1697 Add documentary names to callback function signatures
See #1679
- MK: This is an editorial suggestion.
Leave it the way it is. (It’s marked nice to have.)
- JWL: We have to be very careful that we don’t give users the impression that they can use them as keyword arguments.
- NW: That suggests a different rendering of some sort.
2.3.18. 1702 Node Updates: Functions
See #1702
Marked close with out further action.
2.3.19. 1777 Shallow copy in XSLT with maps and arrays
See #1777
- MK: We must do this.
2.3.20. 1920 Parse functions: determinism
See #1920
Consensus we should just do it.
2.3.21. 1948 fn:element-to-map:
See #1948
- MK: We’ve made some progress on this, but I’m not sure of the status.
Leave it the way it is.
2.3.22. 1949 fn:element-to-map: Updated Feedback
See #1949
Leave it the way it is.
ACTION QT4CG-153-02: MK to turn my suggestions on #1949 into a PR.
2.3.23. 1979 Records: Type Safety
See #1979
- CG: Now that records aren’t extensible, we can close this?
- MK: The main thing is updates; do you want to have a restriction that you can’t update the record?
Nice to have.
2.3.24. 2000 element-to-map() - type signature of plan
See #2000
Nice to have.
2.3.25. 2018 Type-checking the result of xsl:apply-templates
See #2018
- MK: I’m going to do more work in this area. We can drop this as a separate issues.
2.3.26. 2039 Generalize context item to context value in XSLT
See #2039
- NW: How is this only a nice to have?
- MK: We have restrictions in various places about the item type when you call a
template.
- … The spec is coherent, but it’s a bit odd that context values can be generalized in some places but not other.
2.3.27. 2052 fn:collation-available: $usage
See #2052
- CG: I have no idea how to implement this.
- … I’ll raise a PR to drop it.
3. Any other business
None heard.