- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Wed, 18 Feb 2026 07:16:07 +0000
- To: public-xslt-40@w3.org
Hello,
Here are the draft minutes from yesterday’s meeting:
https://qt4cg.org/meeting/minutes/2026/02-17.html
QT4 CG Meeting 153 Minutes 2026-02-17
[1]Meeting index / [2]QT4CG.org / [3]Dashboard / [4]GH Issues / [5]GH
Pull Requests
Table of Contents
* [6]Summary of new and continuing actions [0/5]
* [7]Draft Minutes
* [8]1. Administrivia
+ [9]1.1. Roll call [9/10]
+ [10]1.2. Accept the agenda
+ [11]1.3. Approve minutes of the previous meeting
+ [12]1.4. Next meeting
+ [13]1.5. Review of open action items [1/10]
+ [14]1.6. Review of open pull requests and issues
o [15]1.6.1. Blocked
o [16]1.6.2. Merge without discussion
o [17]1.6.3. Close without action
o [18]1.6.4. Substantive PRs
* [19]2. Technical agenda
+ [20]2.1. Improvements to FOS
+ [21]2.2. Issue #2460: file:read-text and invalid XML
characters
+ [22]2.3. Other issue triage
o [23]2.3.1. #77 Allow manipulation of maps and arrays
o [24]2.3.2. #272 Setting parameter values in
xsl:use-package
o [25]2.3.3. #285 Stability of collections
o [26]2.3.4. #540 Add fn:system-property() to XQuery
o [27]2.3.5. #641 Serialization fallback
o [28]2.3.6. #675 XSLT streaming rules for new constructs
o [29]2.3.7. #1045 Functions to manage namespace usage
o [30]2.3.8. #1225 Generalization of Deep Updates
o [31]2.3.9. #1234 Seralization Parameters: Indentation,
Whitespace, Newlines
o [32]2.3.10. 1251 Allow sequence constructor in extension
instructions that are implemented with named templates
o [33]2.3.11. 1310 add fn:match-groups() function
o [34]2.3.12. 1459 Function properties and arities
o [35]2.3.13. 1479 Default element namespace in XQuery:
interaction of 'fixed' and '##any'
o [36]2.3.14. 1506 Type declarations: Constructor
functions?
o [37]2.3.15. 1528 Computed node constructors: observations
o [38]2.3.16. 1584 Review the XML Schema and RELAX NG
schemas for XSLT 4.0 for compatibility
o [39]2.3.17. 1697 Add documentary names to callback
function signatures
o [40]2.3.18. 1702 Node Updates: Functions
o [41]2.3.19. 1777 Shallow copy in XSLT with maps and
arrays
o [42]2.3.20. 1920 Parse functions: determinism
o [43]2.3.21. 1948 fn:element-to-map:
o [44]2.3.22. 1949 fn:element-to-map: Updated Feedback
o [45]2.3.23. 1979 Records: Type Safety
o [46]2.3.24. 2000 element-to-map() - type signature of
plan
o [47]2.3.25. 2018 Type-checking the result of
xsl:apply-templates
o [48]2.3.26. 2039 Generalize context item to context value
in XSLT
o [49]2.3.27. 2052 fn:collation-available: $usage
* [50]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 [51]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [52]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 [53]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 [54]#2350: 708 An alternative proposal for generators
* PR [55]#2345: 2299 Expand pipeline to allow arrow expression in
path expression
* PR [56]#2313: 2298 XQFO rules: definition of default values
* PR [57]#2266: 540 system-property equivalent for XQuery
* PR [58]#2247: 716 Deferred Evaluation in XPath - the f:generator
record
* PR [59]#2160: 2073 data model changes for JNodes and Sequences
* PR [60]#2071: 77c deep update
* PR [61]#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 [62]#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 [63]#2234: Replace `a/get(XX)` with `a/?(XX)`
Proposal: close with no further action.
Accepted.
1.6.4. Substantive PRs
The following substantive PRs were open when this agenda was prepared.
* PR [64]#2457: Improved use of fos:result
* PR [65]#2456: Stylesheet handling of fos:result/@narrative
2. Technical agenda
2.1. Improvements to FOS
See PR [66]#2457 Improved use of fos:result, and PR [67]#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: [68]read-text and invalid XML characters
See issue [69]#2460: [70]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 [71]#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 [72]#272
* MK: It's still nice to have.
2.3.3. #285 Stability of collections
See [73]#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 [74]#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 [75]#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 [76]#675
This one has to be done.
2.3.7. #1045 Functions to manage namespace usage
See [77]#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 [78]#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 [79]#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 [80]#1251
Marked close with out further action.
2.3.11. 1310 add fn:match-groups() function
See [81]#1310
* MK: The fn:analyze-string function 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 [82]#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 [83]#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 [84]#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 [85]#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 [86]#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 [87]#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 [88]#1702
Marked close with out further action.
2.3.19. 1777 Shallow copy in XSLT with maps and arrays
See [89]#1777
* MK: We must do this.
2.3.20. 1920 Parse functions: determinism
See [90]#1920
Consensus we should just do it.
2.3.21. 1948 fn:element-to-map:
See [91]#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 [92]#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 [93]#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 [94]#2000
Nice to have.
2.3.25. 2018 Type-checking the result of xsl:apply-templates
See [95]#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 [96]#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 [97]#2052
* CG: I have no idea how to implement this.
+ ... I'll raise a PR to drop it.
3. Any other business
None heard.
References
1. https://qt4cg.org/meeting/minutes/
2. https://qt4cg.org/
3. https://qt4cg.org/dashboard
4. https://github.com/qt4cg/qtspecs/issues
5. https://github.com/qt4cg/qtspecs/pulls
6. https://qt4cg.org/meeting/minutes/2026/02-17.html#new-actions
7. https://qt4cg.org/meeting/minutes/2026/02-17.html#minutes
8. https://qt4cg.org/meeting/minutes/2026/02-17.html#administrivia
9. https://qt4cg.org/meeting/minutes/2026/02-17.html#roll-call
10. https://qt4cg.org/meeting/minutes/2026/02-17.html#agenda
11. https://qt4cg.org/meeting/minutes/2026/02-17.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2026/02-17.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2026/02-17.html#open-actions
14. https://qt4cg.org/meeting/minutes/2026/02-17.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2026/02-17.html#blocked
16. https://qt4cg.org/meeting/minutes/2026/02-17.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2026/02-17.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2026/02-17.html#substantive
19. https://qt4cg.org/meeting/minutes/2026/02-17.html#technical-agenda
20. https://qt4cg.org/meeting/minutes/2026/02-17.html#h-F7DE29C3-E195-4196-9A09-81D2E5F578E1
21. https://qt4cg.org/meeting/minutes/2026/02-17.html#h-D51FB09C-1C0E-4C5A-8D3E-15DF1BD60FA7
22. https://qt4cg.org/meeting/minutes/2026/02-17.html#h-CAC3A474-CC59-4E99-9508-DED1B7DC26C7
23. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-77
24. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-272
25. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-285
26. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-540
27. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-641
28. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-675
29. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1045
30. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1225
31. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1234
32. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1251
33. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1310
34. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1459
35. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1479
36. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1506
37. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1528
38. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1584
39. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1679
40. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1702
41. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1777
42. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1920
43. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1948
44. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1949
45. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-1979
46. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2000
47. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2018
48. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2039
49. https://qt4cg.org/meeting/minutes/2026/02-17.html#issue-2052
50. https://qt4cg.org/meeting/minutes/2026/02-17.html#any-other-business
51. https://qt4cg.org/meeting/agenda/2026/02-17.html
52. https://qt4cg.org/meeting/minutes/2026/02-10.html
53. https://qt4cg.org/meeting/minutes/2026/02-17.html#technical-agenda
54. https://qt4cg.org/dashboard/#pr-2350
55. https://qt4cg.org/dashboard/#pr-2345
56. https://qt4cg.org/dashboard/#pr-2313
57. https://qt4cg.org/dashboard/#pr-2266
58. https://qt4cg.org/dashboard/#pr-2247
59. https://qt4cg.org/dashboard/#pr-2160
60. https://qt4cg.org/dashboard/#pr-2071
61. https://qt4cg.org/dashboard/#pr-2019
62. https://qt4cg.org/dashboard/#pr-2446
63. https://github.com/qt4cg/qtspecs/issues/2234
64. https://qt4cg.org/dashboard/#pr-2457
65. https://qt4cg.org/dashboard/#pr-2456
66. https://qt4cg.org/dashboard/#pr-2457
67. https://qt4cg.org/dashboard/#pr-2456
68. https://qt4cg.org/meeting/minutes/2026/read-text
69. https://github.com/qt4cg/qtspecs/issues/2460
70. https://qt4cg.org/meeting/minutes/2026/read-text
71. https://github.com/qt4cg/qtspecs/issues/77
72. https://github.com/qt4cg/qtspecs/issues/272
73. https://github.com/qt4cg/qtspecs/issues/285
74. https://github.com/qt4cg/qtspecs/issues/540
75. https://github.com/qt4cg/qtspecs/issues/641
76. https://github.com/qt4cg/qtspecs/issues/675
77. https://github.com/qt4cg/qtspecs/issues/1045
78. https://github.com/qt4cg/qtspecs/issues/1225
79. https://github.com/qt4cg/qtspecs/issues/1234
80. https://github.com/qt4cg/qtspecs/issues/1251
81. https://github.com/qt4cg/qtspecs/issues/1310
82. https://github.com/qt4cg/qtspecs/issues/1459
83. https://github.com/qt4cg/qtspecs/issues/1479
84. https://github.com/qt4cg/qtspecs/issues/1506
85. https://github.com/qt4cg/qtspecs/issues/1528
86. https://github.com/qt4cg/qtspecs/issues/1584
87. https://github.com/qt4cg/qtspecs/issues/1679
88. https://github.com/qt4cg/qtspecs/issues/1702
89. https://github.com/qt4cg/qtspecs/issues/1777
90. https://github.com/qt4cg/qtspecs/issues/1920
91. https://github.com/qt4cg/qtspecs/issues/1948
92. https://github.com/qt4cg/qtspecs/issues/1949
93. https://github.com/qt4cg/qtspecs/issues/1979
94. https://github.com/qt4cg/qtspecs/issues/2000
95. https://github.com/qt4cg/qtspecs/issues/2018
96. https://github.com/qt4cg/qtspecs/issues/2039
97. https://github.com/qt4cg/qtspecs/issues/2052
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Wednesday, 18 February 2026 07:16:14 UTC