- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 23 Sep 2025 18:25:17 +0100
- To: public-xslt-40@w3.org
Hello,
Here are the draft minutes from today’s meeting:
https://qt4cg.org/meeting/minutes/2025/09-23.html
QT4 CG Meeting 135 Minutes 2025-09-23
[1]Meeting index / [2]QT4CG.org / [3]Dashboard / [4]GH Issues / [5]GH
Pull Requests
Table of Contents
* [6]Draft Minutes
* [7]Summary of new and continuing actions [0/9]
* [8]1. Administrivia
+ [9]1.1. Roll call [10/11]
+ [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/9]
+ [14]1.6. Review of open pull requests and issues
o [15]1.6.1. Blocked
o [16]1.6.2. Substantive PRs
* [17]2. Technical agenda
+ [18]2.1. PR #2202: New rules for schema-attribute and
schema-element subtyping
+ [19]2.2. PR #2200: 657 Allow user-defined functions in no
namespace
+ [20]2.3. PR #2176: 2130 encore: precedes-or-is, follows-or-is
+ [21]2.4. PR #2175: 2093 Rearrange the order and grouping of
functions
+ [22]2.5. PR #2160: 2073 data model changes for JNodes and
Sequences
+ [23]2.6. PR #2071: 77c deep update
+ [24]2.7. PR #2155: 2150 Define patterns for JNodes
* [25]3. Any other business
+ [26]3.1. FYI: the path to standardization...
+ [27]3.2. Logo discussion
* [28]4. Adjourned
Draft Minutes
Summary of new and continuing actions [0/9]
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* [ ] QT4CG-127-01: NW to diagram the JTree representing arbitrary
XDM content.
* [ ] QT4CG-128-03: NW to compare the file: module against the
equivalent XProc 3.1 steps
* [ ] QT4CG-131-01: MK to add a non-schema aware result.
* [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
* [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
matrix example.
* [ ] QT4CG-133-01: MK to correct the use of "Expr" in examples for
get()
* [ ] QT4CG-135-01: MK to correct attribute rule 5/d to use the
schema component name
1. Administrivia
1.1. Roll call [10/11]
* [X] David J Birnbaum (DB) [:18-]
* [X] Reece Dunn (RD)
* [X] Christian Gr¸n (CG)
* [X] Joel Kalvesmaki (JK) [:06-]
* [X] Michael Kay (MK)
* [X] Juri Leino (JLO)
* [X] John Lumley (JWL)
* [X] Wendell Piez (WP)
* [ ] Ed Porter (EP)
* [X] Bethan Tovey-Walsh (BTW)
* [X] Norm Tovey-Walsh (NW) Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept [29]the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept [30]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is planned for 30 September 2025.
None heard.
1.5. Review of open action items [1/9]
(Items marked [X] are believed to have been closed via email before
this agenda was posted.)
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* [ ] QT4CG-127-01: NW to diagram the JTree representing arbitrary
XDM content.
* [ ] QT4CG-128-03: NW to compare the file: module against the
equivalent XProc 3.1 steps
* [ ] QT4CG-131-01: MK to add a non-schema aware result.
* [ ] QT4CG-131-02: MK to expand on the $E := <e A="p q r"... example
* [ ] QT4CG-131-03: MK to change "invert" to "transpose" in the
matrix example.
* [ ] QT4CG-133-01: MK to correct the use of "Expr" in examples for
get()
* [X] QT4CG-134-01: MK to open an issue about the error code for =?>
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 [31]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 [32]#2124: 573 Functions to Construct Trees
* PR [33]#2120: 2007 Revised design for xsl:array
* PR [34]#2019: 1776: XSLT template rules for maps and array
1.6.2. Substantive PRs
The following substantive PRs were open when this agenda was prepared.
* PR [35]#2202: New rules for schema-attribute and schema-element
subtyping
* PR [36]#2200: 657 Allow user-defined functions in no namespace
* PR [37]#2176: 2130 encore: precedes-or-is, follows-or-is
* PR [38]#2175: 2093 Rearrange the order and grouping of functions
* PR [39]#2160: 2073 data model changes for JNodes and Sequences
* PR [40]#2071: 77c deep update
* PR [41]#2155: 2150 Define patterns for JNodes
* PR [42]#2123: 2051: XSLT group by cluster
* PR [43]#2120: 2007 Revised design for xsl:array
* PR [44]#2019: 1776: XSLT template rules for maps and array
2. Technical agenda
2.1. PR #2202: New rules for schema-attribute and schema-element subtyping
See PR [45]#2202.
Mike introduces the PR.
* MK: This arose when I wrote some new subtyping tests that failed.
+ ... I discovered that Saxon had for years treating
schema-attribute(x) as a subtype of attribute(x).
+ ... The rules appear to be incomplete.
+ ... Then I discovered that the actual semantics of
schema-element in particular weren't especially well
specified.
+ ... There are some bugs in the old Bugzilla with background.
+ ... This is the result of attempting to tidy things up.
* MK: In Schema Element Tests we change "declared in" to "referenced
by the {type definition}". This makes it clear that it takes into
consideration substitution groups.
+ ... Haven't considered XSD 1.1 where you can have multiple
substution groups
+ ... Added a note to explain the intent of schema-element(N).
* MK: In the subtyping rules, schema-element(N) is now defined to be
a subtype of element().
+ ... Rules are added to define the subtyping
+ ... Similar, but simpler changes apply to attributes.
ACTION QT4CG-135-01: MK to correct attribute rule 5/d to use the schema
component name
* MK: It turned out to be a fairly small change, even if it took a
day to figure it out!
Proposal: Accept this PR.
Accepted.
Mike to complete his action and then merge the PR.
2.2. PR #2200: 657 Allow user-defined functions in no namespace
See PR [46]#2200.
* MK: This was originally raised by CG, trying to get rid of the
local: element namespace in XQuery. It's annoying in XSLT that you
need a function namespace.
+ ... You can now define a no-namespace function and the search
path looks first for user functions and then in the default
namespace.
+ ... If you declare a function with the same name as a standard
function, on your head be it.
+ ... But you might do that on purpose; for example to have
current-date return a date without a timezone.
* MK reviews the detail in the specifications
+ ... There's already a case where a no-namespace can introduce
constructor functions without a namespace.
* NW: I'm not objecting to this proposal, but I don't like it. I just
want to be on record as saying I think it's a mistake. I think the
usability will be reduced because of confusion about the names.
* WP: Will we be able to get warnings if we define functions that
already exist?
* MK: In nearly every programming language, it's possible to define
functions that mask system functions.
* WP: This could introduce a new weakness where it's hard to debug.
* MK: No it wouldn't be hard to do.
* RD: It should also be possible to put warnings in IDEs.
* JWL: Are there any additional security concerns?
+ ... Your ability in a package to redefine a function that
returns the base URI, for example? Could that cause issues?
* MK: Interesting. I'd be reluctant to give an unequivocal answer.
* JLO: It could allow users to write compatibility layers. But it I
also see the potential for issues. Warnings would reduce the
usefulness.
+ ... Is it the case that functions with no namespaces can only
be defined in a main module?
* MK: There's no restriction in XSLT. In XQuery, public functions
defined in a module have to be in the module namespace.
* RD: Implementors can always configure warnings; it might be useful
for an XSLT or XQuery function, for example.
+ ... You could qualify all of the functions with fn: so that
it's clear this is a system call.
* JK: I lean on the skeptical side. What I haven't heard is the
rationale that motivated the original decision and why that's
deemed no longer salient.
* CG: Thanks for the PR. Many of our users don't understand why they
need a `local:~ prefix to write simple scripts. If you declare
variables, you don't need a prefix, but you don't need them for
functions. This would help unify them. You can declare variables
for functions, so some people do that to avoid the local:
namespace.
+ ... In library modules, private code without namespaces
applies to variables and would now apply to functions.
Proposal: Accept the PR.
Accepted.
2.3. PR #2176: 2130 encore: precedes-or-is, follows-or-is
See PR [47]#2176.
* MK: The comments weren't objections, just exploring alternatives.
* JK: We introduced precedes and follows as synonyms for << and >>.
+ ... And for is-not. That's four of the six possibilities.
+ ... This PR adds precedes-or-is and follows-or-is to fill the
gap.
* JLO: I think I would be all for it. The only thing I'd like to see
is a good example.
* JK: Oh, okay. I'm often working on documents where I have an anchor
point where I don't want to apply processing either before or after
this point.
+ ... Sometimes I want to include the anchor and sometimes I
don't.
+ ... This is just really convenient.
* MK: I've seen this sometimes too.
* JWL: It's an analogy with axis; we've added preceding-or-self and
preceding-sibling-or-self.
+ ... I can't see any objections.
Proposal: Accept the PR.
Accepted.
2.4. PR #2175: 2093 Rearrange the order and grouping of functions
See PR [48]#2175.
* NW: I think this is editorial.
* MK: Yes, it is.
+ ... We had a comment that said there was no reason for the
order and grouping.
+ ... I think this is better, but of course there's no "right"
answer.
* JWL: You've moved the errors and diagnostics to the end; is that
similar in the other specs?
* MK: I think it's the nature of those functions.
* JWL: Oh, I see. Right.
* JLO: Where do higher order functions get moved?
* MK: So many of our functions are higher order, it doesn't make
sense to have a section about that.
+ ... Sequence functions now includes a section about basic
higher-order functions.
+ ... That's where they occur now.
* JLO: Why are sequences first when they're more complicated?
* MK: Because that's more top-down; everything in the type hierarchy
is a sequence.
* CG: I think the revised version is really much better. The old
version contained obvious inconsistencies.
Proposal: Accept the PR.
Accepted.
2.5. PR #2160: 2073 data model changes for JNodes and Sequences
See PR [49]#2160.
Not ready to discuss.
2.6. PR #2071: 77c deep update
See PR [50]#2071.
Not ready to discuss.
2.7. PR #2155: 2150 Define patterns for JNodes
See PR [51]#2155.
MK introduces the PR.
* MK: You may recall that my first attempt at this change had
ambiguity problems. I think those are resolved now.
+ ... This is about the syntax of patterns for matching JNodes
+ ... Patterns fall into four groups: PredicatePattern,
TypePattern, XNodePattern
(the traditional sort; renamed), and JNodePattern.
+ ... We change how parenthesis are matched so that they're
easier to combine.
* MK: Node patterns are moved but not significantly changed; some
things have been reorganized.
* MK: The JNodePattern section is new. It mirrors the way XNode
patterns work, with either a JNodeSelectorPattern and a
JNodePatternContent
+ ... Variables are not allowed in the key. If you think about
template matching in XSLT, it could have been allowed but it
would have to be global.
+ ... Matching content is either * or a SequenceType, often a
record type.
* MK: There's not a substantial change in priorities but some text
has been rearranged.
+ ... There's an attempt at some very simple classification.
* MK: There's more work to be done, but this is a first step.
+ ... The remaining work is about apply-templates, on-no-match
etc.
* JWL: There's a caution that we seem to have a two-arity predicate
but we also have a one-arity function named jnode(). You'll get
ambiguity if that's not a reserved name.
+ ... That could certainly cause some confusion. From one of our
earlier pieces, when you're putting functions into
no-namespace, then the rules about which ones you cannot use
still have to be written. For example, if and item are not
valid function names.
* MK: Yes. Overriding the name jnode to mean two different things in
different context seemed less confusing than having different
names.
Proposal: Accept the PR.
Accepted.
3. Any other business
3.1. FYI: the path to standardization...
The W3C held a meeting about Community Groups recently. One observation
from that meeting is that the W3C does not consider Community Groups to
be an appropriate place to do standards work. They're envisioned as
incubators that lead to the formation of regular Working Groups or
migration of the work to another standards development organization.
I pointed out that there is no W3C Activity for XML-related
standardization. One place to discuss this would be at the Technical
Plenary but that's in Kobe, Japan this year and I don't think anyone in
this CG is planning to go. (It will be in Dublin, Ireland next year and
I will plan to go.)
More discussion, with an eye towards forming a Working Group is
expected in the following months. I have no prediction about how that
will proceed.
3.2. Logo discussion
Some discussion of the logo. JLO asks if it can just be an outline. BTW
reports that she tried it and it doesn't really work. You need the
"highlight" on the bulb.
* MK: It's a little bit of puzzle and you feel good when you've
worked it out.
4. Adjourned
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/2025/09-23.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/09-23.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/09-23.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/09-23.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/09-23.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/09-23.html#approve-minutes
12. https://qt4cg.org/meeting/minutes/2025/09-23.html#next-meeting
13. https://qt4cg.org/meeting/minutes/2025/09-23.html#open-actions
14. https://qt4cg.org/meeting/minutes/2025/09-23.html#open-pull-requests
15. https://qt4cg.org/meeting/minutes/2025/09-23.html#blocked
16. https://qt4cg.org/meeting/minutes/2025/09-23.html#substantive
17. https://qt4cg.org/meeting/minutes/2025/09-23.html#technical-agenda
18. https://qt4cg.org/meeting/minutes/2025/09-23.html#pr-2202
19. https://qt4cg.org/meeting/minutes/2025/09-23.html#pr-2200
20. https://qt4cg.org/meeting/minutes/2025/09-23.html#pr-2176
21. https://qt4cg.org/meeting/minutes/2025/09-23.html#pr-2175
22. https://qt4cg.org/meeting/minutes/2025/09-23.html#pr-2160
23. https://qt4cg.org/meeting/minutes/2025/09-23.html#pr-2071
24. https://qt4cg.org/meeting/minutes/2025/09-23.html#pr-2155
25. https://qt4cg.org/meeting/minutes/2025/09-23.html#any-other-business
26. https://qt4cg.org/meeting/minutes/2025/09-23.html#h-D3B23E1A-D8D5-4665-BFFA-CA6AD0E02FEC
27. https://qt4cg.org/meeting/minutes/2025/09-23.html#h-00FD579B-4F11-4525-8690-3C5F80D83049
28. https://qt4cg.org/meeting/minutes/2025/09-23.html#adjourned
29. https://qt4cg.org/meeting/agenda/2025/09-23.html
30. https://qt4cg.org/meeting/minutes/2025/09-16.html
31. https://qt4cg.org/meeting/minutes/2025/09-23.html#technical-agenda
32. https://qt4cg.org/dashboard/#pr-2124
33. https://qt4cg.org/dashboard/#pr-2120
34. https://qt4cg.org/dashboard/#pr-2019
35. https://qt4cg.org/dashboard/#pr-2202
36. https://qt4cg.org/dashboard/#pr-2200
37. https://qt4cg.org/dashboard/#pr-2176
38. https://qt4cg.org/dashboard/#pr-2175
39. https://qt4cg.org/dashboard/#pr-2160
40. https://qt4cg.org/dashboard/#pr-2071
41. https://qt4cg.org/dashboard/#pr-2155
42. https://qt4cg.org/dashboard/#pr-2123
43. https://qt4cg.org/dashboard/#pr-2120
44. https://qt4cg.org/dashboard/#pr-2019
45. https://qt4cg.org/dashboard/#pr-2202
46. https://qt4cg.org/dashboard/#pr-2200
47. https://qt4cg.org/dashboard/#pr-2176
48. https://qt4cg.org/dashboard/#pr-2175
49. https://qt4cg.org/dashboard/#pr-2160
50. https://qt4cg.org/dashboard/#pr-2071
51. https://qt4cg.org/dashboard/#pr-2155
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 23 September 2025 17:25:24 UTC