- 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