- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Tue, 22 Apr 2025 17:25:50 +0100
- To: public-xslt-40@w3.org
Hello folks,
Here are the minutes from today’s meeting:
https://qt4cg.org/meeting/minutes/2025/04-22.html
QT4 CG Meeting 118 Minutes 2025-04-22
[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/10]
* [8]1. Administrivia
+ [9]1.1. Roll call [10/13]
+ [10]1.2. Accept the agenda
o [11]1.2.1. Status so far...
+ [12]1.3. Approve minutes of the previous meeting
+ [13]1.4. Next meeting
+ [14]1.5. Review of open action items [2/9]
+ [15]1.6. Review of open pull requests and issues
o [16]1.6.1. Merge without discussion
o [17]1.6.2. Close without action
o [18]1.6.3. Substantive PRs
o [19]1.6.4. Required for V4.0
o [20]1.6.5. To be triaged
* [21]2. Technical agenda
+ [22]2.1. Review of pull requests
o [23]2.1.1. PR #1906: 1797
elements-to-maps-conversion-plan function
o [24]2.1.2. PR #1937: 1936 Mark attribute declarations as
form=qualified
o [25]2.1.3. PR #1933: 1271 fn:validate() function
o [26]2.1.4. PR #1929: 1725 xsl:mode/@copy-namespaces
o [27]2.1.5. PR #1928: 1844b Arrow Expressions
o [28]2.1.6. PR #1926: 1907 method lookup (disallow
wildcard selection)
o [29]2.1.7. PR #1922: 1921 Expand definition of version
ranges in XSLT
* [30]3. Any other business
* [31]4. Adjourned
Draft Minutes
Summary of new and continuing actions [0/10]
* [ ] QT4CG-082-02: DN to work with NW to come to agreement on the
fn:ranks proposal
* [ ] QT4CG-107-05: JLO and DN to consider a proposal for system
defined records.
* [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [ ] QT4CG-113-02: NW to investigate a way to show extra attributes
in the syntax summary.
* [ ] QT4CG-115-02: JWL to write a few tests for xsl:record
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-116-03: NW to review the star/plus/delta symbols in the
ToC. (See [32]1838)
* [ ] QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* [ ] QT4CG-118-02: DN to open an issue about methods in records
* [ ] QT4CG-118-03: NW to make sure compose/chain and binary are on
the agenda for next week
1. Administrivia
1.1. Roll call [10/13]
Regrets: BTW, JK
* [X] David J Birnbaum (DB)
* [X] Reece Dunn (RD)
* [X] Sasha Firsov (SF)
* [X] Christian Gr¸n (CG)
* [ ] Joel Kalvesmaki (JK)
* [X] Michael Kay (MK)
* [ ] Juri Leino (JLO)
* [X] John Lumley (JWL)
* [X] Dimitre Novatchev (DN)
* [X] Wendell Piez (WP)
* [X] Ed Porter (EP)
* [ ] Bethan Tovey-Walsh (BTW)
* [X] Norm Tovey-Walsh (NW) Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept [33]the agenda.
Accepted.
1.2.1. Status so far...
These charts have been adjusted so they reflect the preceding six
months of work.
issues-open-2025-04-22.png
Figure 1: "Burn down" chart on open issues
issues-by-spec-2025-04-22.png
Figure 2: Open issues by specification
issues-by-type-2025-04-22.png
Figure 3: Open issues by type
1.3. Approve minutes of the previous meeting
Proposal: Accept [34]the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is scheduled for 29 April 2025.
JWL gives regrets for 29 April and the following week.
1.5. Review of open action items [2/9]
(Items marked [X] are believed to have been closed via email before
this agenda was posted.)
* [ ] QT4CG-082-02: DN to work with NW to come to agreement on the
fn:ranks proposal
* [ ] QT4CG-107-05: JLO and DN to consider a proposal for system
defined records.
* [ ] QT4CG-112-01: JLO to propose a concrete example that uses "."
in a ~%method~s.
* [ ] QT4CG-113-02: NW to investigate a way to show extra attributes
in the syntax summary.
* [ ] QT4CG-115-02: JWL to write a few tests for xsl:record
* [ ] QT4CG-116-01: Add a specific error code for unsupported options
on doc and doc-available
* [ ] QT4CG-116-03: NW to review the star/plus/delta symbols in the
ToC. (See [35]1838)
* [X] QT4CG-117-01: MK to add errors for invalid plans.
* [X] QT4CG-117-02: MK to rename `fallback' to `default', then merge
the PR.
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 [36]Technical Agenda below for
the focus of this meeting.
1.6.1. 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 [37]#1940: 1939 XQDY0153 (from try/finally) should be a type
error
* PR [38]#1937: 1936 Mark attribute declarations as form=qualified
* PR [39]#1931: QT4-CG-116-02 improve description of validation
Proposal: merge without discussion
Accepted.
1.6.2. 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 [40]#910: Introduce a Kollection object with functions that
operate on all types of items that can be containers of unlimited
number of "members"
Proposal: close without further action
Accepted.
1.6.3. Substantive PRs
The following substantive PRs were open when this agenda was prepared.
* PR [41]#1937: 1936 Mark attribute declarations as form=qualified
* PR [42]#1933: 1271 fn:validate() function
* PR [43]#1929: 1725 xsl:mode/@copy-namespaces
* PR [44]#1928: 1844b Arrow Expressions
* PR [45]#1926: 1907 method lookup (disallow wildcard selection)
* PR [46]#1922: 1921 Expand definition of version ranges in XSLT
* PR [47]#1906: 1797 elements-to-maps-conversion-plan function
* PR [48]#1894: Additional examples to fn:chain - in a new branch
* PR [49]#1883: 882 Replace fn:chain by fn:compose
* PR [50]#1587: 557 Add fn:binary-resource
1.6.4. Required for V4.0
The following issues are labeled "required for V4.0".
* Issue [51]#1777: Shallow copy in XSLT with maps and arrays
* Issue [52]#1584: Review the XML Schema and RELAX NG schemas for
XSLT 4.0 for compatibility
* Issue [53]#1240: $sequence-of-maps ? info()
* Issue [54]#1127: Binary resources
* Issue [55]#1045: Functions to manage namespace usage
* Issue [56]#1021: Extend `fn:doc`, `fn:collection` and
`fn:uri-collection` with options maps
* Issue [57]#1011: fn:transform() improvements
* Issue [58]#986: Numeric Comparisons
* Issue [59]#967: XPath Appendix I: Comparisons
* Issue [60]#748: Parse functions: consistency
* Issue [61]#714: Function annotations in XSLT
* Issue [62]#675: XSLT streaming rules for new constructs
* Issue [63]#407: XSLT-specific context properties used in function
items
* Issue [64]#366: Support xsl:use-package with xsl:package-location
* Issue [65]#272: Setting parameter values in xsl:use-package
1.6.5. To be triaged
The following issues need to be triaged.
* Issue [66]#1938: Invoking coerced methods
* Issue [67]#1935: doc-available() with invalid options
* Issue [68]#1934: Supporting RELAX NG validation
* Issue [69]#1920: Parse functions: determinism
* Issue [70]#1912: Error handling: `fn:throw`
* Issue [71]#1903: `fn:scan-left`, `fn:scan-right`: missing steps
* Issue [72]#1889: HTML serialization: `html-version` and `version`
parameters; allowed values
* Issue [73]#1885: Use the spcification grammar markup to define the
regular expression grammar in F&O
* Issue [74]#1871: Arrays and maps: consistency
* Issue [75]#1868: array:members() to include index position
* Issue [76]#1859: Question on `fn:chain` and `err:FOAP0001`
* Issue [77]#1852: fn:values-except: Return atomic values that occur
in A but not in B
* Issue [78]#1844: Drop mapping arrow operator
* Issue [79]#1795: XSLT templates: Matching values in a map by key
* Issue [80]#1787: Sorted maps revisited
* Issue [81]#1775: Navigation in JSON trees
* Issue [82]#1774: Nomenclature: relabelling
* Issue [83]#1736: Add option retain-order=false when constructing
maps
* Issue [84]#1718: Ordered Maps: positions in callback functions
* Issue [85]#1704: Ignore the byte order mark more
completely/globally
* Issue [86]#1697: Add documentary names to callback function
signatures
* Issue [87]#1661: QName arguments: also allow strings
* Issue [88]#1644: fn:elements-to-maps: Mixed Content
* Issue [89]#1618: Adaptive serialization: doubles
* Issue [90]#1591: Implausible filter expressions
* Issue [91]#1583: JSON: Parsing and serializing numbers, often
undesired E notation
* Issue [92]#1568: Define a Unicode case-insensitive collation
* Issue [93]#1528: Computed node constructors: observations
* Issue [94]#1484: Functions that expect a record type should make it
extensible
* Issue [95]#1479: Default element namespace in XQuery: interaction
of 'fixed' and '##any'
* Issue [96]#1459: Function properties and arities (editorial)
* Issue [97]#1416: Key-value pairs: built-in record type `pair`
* Issue [98]#1310: add fn:match-groups() function
* Issue [99]#1307: For symmetry, add functions array:scan-left and
array:scan-right
* Issue [100]#1175: XPath: Optional parameters in the definition of
an inline function
* Issue [101]#760: Serialize functions: consistency
* Issue [102]#641: Serialization fallback.
2. Technical agenda
2.1. Review of pull requests
I've put 1906 back on the top of the agenda because we seem to be
making good progress. I propose once again to time box this so we don't
spend the whole meeting discussing it.
2.1.1. PR #1906: 1797 elements-to-maps-conversion-plan function
See PR [103]#1906
We begin by reviewing comments by CG on the PR.
* CG: Item 12, there's a possibly out of date comment.
+ ... Item 13, would it be better to raise an error instead of
ignoring the type?
o ... MK: An error would be consistent.
ACTION: QT4CG-118-01: MK to make an incorrect type raise an error in
#1906
* CG: Item 14, should we drop the child attribute from list?
+ ... MK: I found the attribute useful for error detection.
+ ... MK: All errors in the plan raise the same error.
* CG: Item 15, what is the expected result for this query...(see
issue)
+ ... MK: The xsi:* attributes are ignored. It says that
somewhere.
+ ... MK: The plan should allow for skipping particular
attributes.
* CG: Item 16, The element-to-map-plan and element-to-map should
accept the same kinds of nodes
+ ... MK: Allowing a document node there means you can pass a
collection
+ ... MK: But it wouldn't do any harm to allow a document node.
But it's not a hardship to extract it.
There's a test case that the Query code works!
* JWL: What happens if the document node you pass to a plan is empty?
Consensus: you get back an empty map.
* JWL: I agree with CG, having the formal equivalent has made it much
easier to understand.
+ ... But that's not an XPath expression because it uses
grouping. It's XQuery.
* MK: Yes.
Some discussion of whether and how it could be done with XSLT.
Plan: MK will make these changes and then we'll assume it can be put on
the "accept without discussion list" for next week.
2.1.2. PR #1937: 1936 Mark attribute declarations as form=qualified
See PR [104]#1937
This is a very trivial collection to the schema for XSLT. Hat tip to
Priscilla.
Proposal: accept this PR.
Accepted.
(Following the meeting, it was discovered that the PR had been deleted.
Perhaps accidentally?)
2.1.3. PR #1933: 1271 fn:validate() function
See PR [105]#1933
* MK: I proposed this as a function to do XSD validation.
+ ... It's a pretty exact mirror of the validate expression in
XQuery.
+ ... It has options for using the schema location hints.
+ ... Partly, this makes the functionality available in XPath
and making it into a function makes it easier to use with the
function machinery we have in place.
* MK: It raised questions about how to do validation with RELAX NG
schemas or DTDs.
+ ... There are scoping questions. But I think RELAX NG
validation is more free standing.
* JWL: When I looked at this, I looked at xsi-schema-location and
thought maybe I could put a schema there. The name doesn't quite
ring correctly.
+ ... Is there an argument for a version where you specify the
schema?
* MK: I think a function that loads a schema and returns a function
that can be used to validate documents. But it raises questions
about how that schema interacts with the schema(s) in the static
context.
+ ... The other issue is, if it's going to return a document
with type annotations, those are effectively references into
that schema, so you have questions about what those references
are. I was trying to avoid those problems.
* CG: Would caching be interesting for XSD validation too?
* MK: The validate expression works against the schemas in the static
context, so caching isn't relevant.
* CG: Maybe the function validate-xsd?
Some discussion of the name. Perhaps validate-with-xsd?
* DN: I'm not a specialist in schema validation. I'd like to see
examples of what is being returned. I thought that in XQuery and
XSLT, there would be a way to specify that the input document
should be validated.
* MK: Validating the input document is very implementation defined at
the moment; it's defined by the invocation and happens before you
do the query.
+ ... You can validate result documents in XSLT with an
attribute.
+ ... In XQuery and XSLT, there are mechanisms for validating
intermediate values.
+ ... But those mechanisms aren't convenient in our function
mechanisms.
* DN: So what would one do with the nodes that is produced?
Some discussion of whether and how examples could be added here.
* DN: Am I correct that this function would be used mainly while
debugging?
* MK: No, I think it's more likely that you'd put validation into a
production pipeline.
+ ... A common use case is to do a little preprocessing before
you do validation.
* DN: Some notes about common usage scenarious might be good.
* WP: I think this is important and useful. I'm wondering why we
don't tell people to use XProc? What's the requirement here?
+ ... The three-tiered approach is valuable: a boolean, a
validation report, or errors.
* MK: There's a gap in the validate expression (and XSLT) that you
can't get diagnostic messages. We could enhance this.
Some discussion of XProc and the optionality of validation.
* WP: Maybe we should open it up further and do things to return
validation reports.
MK proposes to review the PR and resubmit it.
2.1.4. PR #1929: 1725 xsl:mode/@copy-namespaces
See PR [106]#1929
MK describes the PR.
Proposal: accept this PR.
Accepted.
2.1.5. PR #1928: 1844b Arrow Expressions
See PR [107]#1928
* MK: This started with a suggestion from CG to drop the mapping
arrow.
+ ... I looked at rewriting expressions and persuaded myself
that we still want the mapping arrow.
* MK: That left me with some other ideas that grew out of that
process.
+ ... This PR is entirely editorial.
* CG: In the past we've discussed three character operators and a
desire to get rid of them.
* MK: I prefer the one we've got.
* DN: Tangentially, speaking of operators with too many characters,
maybe we should note somewhere that produce more readable and
understandable expressions.
Proposal: accept this PR.
Accepted.
2.1.6. PR #1926: 1907 method lookup (disallow wildcard selection)
See PR [108]#1926
MK introduces the PR.
* MK: This makes the magic only apply to lookup expressions that are
NCName or StringLiteral.
* DN: We should have some examples of how to do methods in records.
ACTION: QT4CG-118-02: DN to open an issue about methods in records
Proposal: accept this PR.
Accepted.
2.1.7. PR #1922: 1921 Expand definition of version ranges in XSLT
See PR [109]#1922
* MK: This was raised by a third party.
+ ... It pointed out something that didn't work in Saxon,
because there weren't any tests, because the spec was pretty
unclear and needing interpretation.
+ ... It also adds some tests.
* MK: The change to the syntax is just for presentation.
* MK: The description of package versions is expanded, fleshing out
the rules.
Proposal: accept this PR.
Accepted.
3. Any other business
ACTION: QT4CG-118-03: NW to make sure compose/chain and binary are on
the agenda for next week
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/04-22.html#minutes
7. https://qt4cg.org/meeting/minutes/2025/04-22.html#new-actions
8. https://qt4cg.org/meeting/minutes/2025/04-22.html#administrivia
9. https://qt4cg.org/meeting/minutes/2025/04-22.html#roll-call
10. https://qt4cg.org/meeting/minutes/2025/04-22.html#agenda
11. https://qt4cg.org/meeting/minutes/2025/04-22.html#so-far
12. https://qt4cg.org/meeting/minutes/2025/04-22.html#approve-minutes
13. https://qt4cg.org/meeting/minutes/2025/04-22.html#next-meeting
14. https://qt4cg.org/meeting/minutes/2025/04-22.html#open-actions
15. https://qt4cg.org/meeting/minutes/2025/04-22.html#open-pull-requests
16. https://qt4cg.org/meeting/minutes/2025/04-22.html#merge-without-discussion
17. https://qt4cg.org/meeting/minutes/2025/04-22.html#close-without-action
18. https://qt4cg.org/meeting/minutes/2025/04-22.html#substantive
19. https://qt4cg.org/meeting/minutes/2025/04-22.html#required-40
20. https://qt4cg.org/meeting/minutes/2025/04-22.html#triage
21. https://qt4cg.org/meeting/minutes/2025/04-22.html#technical-agenda
22. https://qt4cg.org/meeting/minutes/2025/04-22.html#technical-prs
23. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1906
24. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1937
25. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1933
26. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1929
27. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1928
28. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1926
29. https://qt4cg.org/meeting/minutes/2025/04-22.html#pr-1922
30. https://qt4cg.org/meeting/minutes/2025/04-22.html#any-other-business
31. https://qt4cg.org/meeting/minutes/2025/04-22.html#adjourned
32. https://github.com/qt4cg/qtspecs/pull/1838#issuecomment-2682372207
33. https://qt4cg.org/meeting/agenda/2025/04-22.html
34. https://qt4cg.org/meeting/minutes/2025/04-15.html
35. https://github.com/qt4cg/qtspecs/pull/1838#issuecomment-2682372207
36. https://qt4cg.org/meeting/minutes/2025/04-22.html#technical-agenda
37. https://qt4cg.org/dashboard/#pr-1940
38. https://qt4cg.org/dashboard/#pr-1937
39. https://qt4cg.org/dashboard/#pr-1931
40. https://github.com/qt4cg/qtspecs/issues/910
41. https://qt4cg.org/dashboard/#pr-1937
42. https://qt4cg.org/dashboard/#pr-1933
43. https://qt4cg.org/dashboard/#pr-1929
44. https://qt4cg.org/dashboard/#pr-1928
45. https://qt4cg.org/dashboard/#pr-1926
46. https://qt4cg.org/dashboard/#pr-1922
47. https://qt4cg.org/dashboard/#pr-1906
48. https://qt4cg.org/dashboard/#pr-1894
49. https://qt4cg.org/dashboard/#pr-1883
50. https://qt4cg.org/dashboard/#pr-1587
51. https://github.com/qt4cg/qtspecs/issues/1777
52. https://github.com/qt4cg/qtspecs/issues/1584
53. https://github.com/qt4cg/qtspecs/issues/1240
54. https://github.com/qt4cg/qtspecs/issues/1127
55. https://github.com/qt4cg/qtspecs/issues/1045
56. https://github.com/qt4cg/qtspecs/issues/1021
57. https://github.com/qt4cg/qtspecs/issues/1011
58. https://github.com/qt4cg/qtspecs/issues/986
59. https://github.com/qt4cg/qtspecs/issues/967
60. https://github.com/qt4cg/qtspecs/issues/748
61. https://github.com/qt4cg/qtspecs/issues/714
62. https://github.com/qt4cg/qtspecs/issues/675
63. https://github.com/qt4cg/qtspecs/issues/407
64. https://github.com/qt4cg/qtspecs/issues/366
65. https://github.com/qt4cg/qtspecs/issues/272
66. https://github.com/qt4cg/qtspecs/issues/1938
67. https://github.com/qt4cg/qtspecs/issues/1935
68. https://github.com/qt4cg/qtspecs/issues/1934
69. https://github.com/qt4cg/qtspecs/issues/1920
70. https://github.com/qt4cg/qtspecs/issues/1912
71. https://github.com/qt4cg/qtspecs/issues/1903
72. https://github.com/qt4cg/qtspecs/issues/1889
73. https://github.com/qt4cg/qtspecs/issues/1885
74. https://github.com/qt4cg/qtspecs/issues/1871
75. https://github.com/qt4cg/qtspecs/issues/1868
76. https://github.com/qt4cg/qtspecs/issues/1859
77. https://github.com/qt4cg/qtspecs/issues/1852
78. https://github.com/qt4cg/qtspecs/issues/1844
79. https://github.com/qt4cg/qtspecs/issues/1795
80. https://github.com/qt4cg/qtspecs/issues/1787
81. https://github.com/qt4cg/qtspecs/issues/1775
82. https://github.com/qt4cg/qtspecs/issues/1774
83. https://github.com/qt4cg/qtspecs/issues/1736
84. https://github.com/qt4cg/qtspecs/issues/1718
85. https://github.com/qt4cg/qtspecs/issues/1704
86. https://github.com/qt4cg/qtspecs/issues/1697
87. https://github.com/qt4cg/qtspecs/issues/1661
88. https://github.com/qt4cg/qtspecs/issues/1644
89. https://github.com/qt4cg/qtspecs/issues/1618
90. https://github.com/qt4cg/qtspecs/issues/1591
91. https://github.com/qt4cg/qtspecs/issues/1583
92. https://github.com/qt4cg/qtspecs/issues/1568
93. https://github.com/qt4cg/qtspecs/issues/1528
94. https://github.com/qt4cg/qtspecs/issues/1484
95. https://github.com/qt4cg/qtspecs/issues/1479
96. https://github.com/qt4cg/qtspecs/issues/1459
97. https://github.com/qt4cg/qtspecs/issues/1416
98. https://github.com/qt4cg/qtspecs/issues/1310
99. https://github.com/qt4cg/qtspecs/issues/1307
100. https://github.com/qt4cg/qtspecs/issues/1175
101. https://github.com/qt4cg/qtspecs/issues/760
102. https://github.com/qt4cg/qtspecs/issues/641
103. https://qt4cg.org/dashboard/#pr-1906
104. https://qt4cg.org/dashboard/#pr-1937
105. https://qt4cg.org/dashboard/#pr-1933
106. https://qt4cg.org/dashboard/#pr-1929
107. https://qt4cg.org/dashboard/#pr-1928
108. https://qt4cg.org/dashboard/#pr-1926
109. https://qt4cg.org/dashboard/#pr-1922
Be seeing you,
norm
--
Norm Tovey-Walsh
Saxonica
Received on Tuesday, 22 April 2025 16:26:01 UTC