QT4 CG Meeting 023 Minutes 2023-02-21
Table of Contents
Minutes
Approved at meeting 024 on 28 February 2023.
Summary of new and continuing actions [0/10]
[ ]
QT4CG-002-10: BTW to coordinate some ideas about improving diversity in the group[ ]
QT4CG-016-08: RD to clarify how namespace comparisons are performed.[ ]
QT4CG-021-03: RD to changemust
towill
in DOM notes about lowercase[ ]
QT4CG-021-04: RD to revise and move the note about unrecognized entities[ ]
QT4CG-023-01: NW to review the stylesheets for functions across XPath and XSLT[ ]
QT4CG-023-02: MK to write a PR to dropxsl:function-library
from the spec.[ ]
QT4CG-023-03: MK to start a new thread for discussion function namespace flexibility[ ]
QT4CG-023-04: MK to review and develop a proposal for separating element and type default namespaces[ ]
QT4CG-023-05: NW to put record types on an agenda.[ ]
QT4CG-023-06: MK to revisit and make a PR for asequence-type
attribute onxsl:mode
1. Administrivia
1.1. Roll call [7/14]
Regrets: BTW, CG, EP
[ ]
Anthony (Tony) Bufort (AB)[X]
Reece Dunn (RD)[X]
Sasha Firsov (SF)[ ]
Christian Grün (CG)[X]
Joel Kalvesmaki (JK) [:13-][X]
Michael Kay (MK)[X]
John Lumley (JL)[X]
Dimitre Novatchev (DN)[ ]
Ed Porter (EP)[ ]
Liam Quin (LQ)[ ]
Adam Retter[ ]
C. M. Sperberg-McQueen (MSM) [:06-][ ]
Bethan Tovey-Walsh (BTW)[X]
Norm Tovey-Walsh (NW). Scribe. Chair.
1.2. Accept the agenda
MK proposes specifically to review PRs 362, 353, and 354.
Proposal: Accept the agenda as amended.
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 scheduled for Tuesday, 28 February 2023.
No regrets heard.
1.5. Review of open action items [2/6]
[ ]
QT4CG-002-10: BTW to coordinate some ideas about improving diversity in the group[ ]
QT4CG-016-08: RD to clarify how namespace comparisons are performed.[X]
QT4CG-021-01: NW to raise a PR addressing the points in issue #307[X]
QT4CG-021-02: NW to check for deprecated URI features and add options for them infn:build-uri
andfn:parse-uri
[ ]
QT4CG-021-03: RD to changemust
towill
in DOM notes about lowercase[ ]
QT4CG-021-04: RD to revise and move the note about unrecognized entities
2. Technical Agenda
2.1. Open PRs related to XSLT
2.1.1. PR #362, Drop obsolete note in XSLT regarding for-each-group/@array
See pull request #362.
MK leads discussion.
- MK: A trivial note that’s no longer applicable.
Proposal: accept this PR.
Accepted.
2.1.2. PR #354, Combine multiple signatures of XSLT functions to use defaults
See pull request #354.
MK leads discussion.
- MK: We did a pass over the standard XPath functions to combine signatures. I did the same to the XSLT functions.
ACTION QT4CG-023-01: NW to review the stylesheets for functions across XPath and XSLT
Proposal: accept this PR.
Accepted.
2.1.3. PR #353, issue #109 xsl note
See pull request #353 and issue #109.
MK leads discussion.
- MK: My preferred solution is
xsl:note
, stripped out at the same time as comments and PIs.- … There’s also a change here for a main-module attribute to document the location of the main module,
- JL: If the module is reusable, that could be wrong
- MK: Yes.
- MK: The whitespace stripping code has been restructured a bit.
- … It was in the wrong place.
- JL: When preprocessing, is there still a mechanism to get to the original stylesheet?
- MK: Using the document function with a same-document reference has always been a bit weird. I think there’s room for implementors to do both.
- DN: I think this is good.
- JL: Is there an argument for an attribute version of this one?
- … I tend to put an attribute on a param, for example, to document an element.
- NW: I’d put an
xsl:note
inside the parameter - SF: Lots of languages have documentation capabilities. We should create a namespace for documentation and add it to the language.
- MK: We could do that.
- DN: Maybe we can go too deeply, but we should think about what we could document.
- NW: These are XML documents. If you want to build a comprehensive documentation system on tp of them you can.
- MK: If we wanted to go further, we’d start by looking at third party vocabularies.
- JK: Oxygen has one, I have one.
- SF: That would be a reference implementation.
- NW: What about calling it
xsl:documentation
as a parallel with XML Schema and XProc? - MK: I prefer shorter names.
- NW: Okay.
Proposal: Accept this PR?
Accepted.
2.2. Review of appendixes J.1.1 and J.1.2.
We’ll review the items in J.1.1. and J.1.2. with an eye towards categorizing them as:
- already agreed by the CG
- needs discussion and agreement
- OK to rubber-stamp without detailed review
- probably best withdrawn for reconsideration.
MK leads the review of J.1.1 and J.1.2 based on his email.
- Errata agreed against XSLT 3.0 have been applied.
These were agreed by the old WG before it disbanded and should not need further review
- Support for XPath 4.0 and Functions and Operators 4.0 is required. This notably means that support for XDM arrays is now required.
Hopefully uncontroversial.
- The
xsl:if
instruction acquires attributes then and else.
Accepted 8 Nov 2022 subject to action ACTION QT4CG-010-02
- The
xsl:when
andxsl:otherwise
elements can be evaluated using a select expression rather than a contained sequence constructor.
Accepted 8 Nov 2022
- A new
xsl:switch
instruction is introduced.
Accepted 8 Nov 2022
- The
xsl:item-type
declaration allows names to be given to item types, which can then be referenced by name. This is particularly useful with record types, introduced in XPath 4.0.
Needs WG review; affects XQuery and XPath also
- MK: repeating the types all the time is tedious
- … Should it be purely a macro, or does it have some semantics such as self-reference: how far should we go?
- … What are the scope rules? It should be another component that you can use and export, etc.
- JL: At any level?
- MK: I’ve only put at the top level.
- … Shouldn’t be subject to import precedence.
- NW: I think this is a really good idea, but what about XPath?
- RD: There’s an equivalent declare-item-type in XQuery
- … Issues: self-referencing, some grammar irregularities with item-type(name)
- MK: There are lots of loose ends.
- DN: I have mentioned elsewhere, this is a step forward, but it’s just a lexical convention. We could go further and make types into real objects in the language. Maybe we should do this, but also continue to think about making a type object.
- MK: It would be nice if types were objects were types in the language, but it’s not going to be easy to do.
General agreement to continue this work.
- A new
xsl:function-library
declaration is introduced, allowing functions from multiple different namespaces to be called without using a namespace prefix.
MK proposes to withdraw this, the complexity probably exceeds the benefit
- MK: I don’t think this proposal is very satisfying.
- … One thing we can’t do is an object-oriented approach. That’s too big a change.
- RD: One of the suggestions I made in one of DN’s propsals was when importing
to be able to override the definitipn. So if you have conflicts, you can make the
imported function a new function and then you have to fix it with
typeswitch
yourself. - MK: Yes, something like that would help.
- JL: Like
xsl:original
? - MK: Maybe.
- DN: I think there was a good proposal near the beginning of the issue. I think CG is becoming more convinced that it’s useful. If we introduce types as an object, that’s where we can store the information. Sorry if I overreacted to the question about closing some issues. The problem still exists even if you close the issue
- MK: Yes. I think I wanted to close the threads so we can start fresh. Plus, the default is always the status quo. If there isn’t a proposal that stands a good chance of getting approval, then we always fall back in the status quo,
ACTION QT4CG-023-02: MK to write a PR to drop xsl:function-library
from the spec.
ACTION QT4CG-023-03: MK to start a new thread for discussion function namespace flexibility
- The default namespace for element names and the default
namespace for types can now be different, allowing built-in types
to be referenced in unprefixed form (
as="integer"
).
Needs WG review. The main motivation was to allow more flexibility for unprefixed names in paths, e.g. matching by local name only.
- MK: Splitting these makes it possible to have more flexibility in
matching from source documents. If most stylesheets aren’t schema-aware, why
not let users drop the
xs:
prefix. - RD: I’ve applied this change to my XQuery plugin and I’m happy with this change.
- JL: Is there a possibility when you do
as="integer"
, what would happen if you had a record type namedinteger
- MK: We could, maybe should, reserve bare names for atomic types.
- … The other thing in this area that I’ve found attractive is allowing the option of an unprefixed name to match only the local name.
- … A practical reality is that you find different namespaces with the same local names.
- RD: HTML allows something like this. I’ve made some proposals along these lines for similar reasons.
ACTION QT4CG-023-04: MK to review and develop a proposal for separating element and type default namespaces
- New instructions
xsl:array
andxsl:array-member
allow the construction of arrays.
Needs WG review (and probably revision).
- MK: Need more infrastructure work in XPath before we can do this. There are separate proposals for wider group review.
- The instructions
xsl:for-each
,xsl:iterate
, andxsl:for-each-group
have attributesarray
andmap
which can be used in place of the select attribute to allow iteration over arrays or maps rather than sequences.
We've already dropped this (see below). But it remains an issue.
Same disposition as item 9.
- New pattern syntax (type(T), record(N, M, N)) allows matching of items by item type. Needs WG review.
ACTION QT4CG-023-05: NW to put record types on an agenda.
- The
xsl:mode
declaration acquires an attributeas="sequence-type"
which declares the return type of all template rules in that mode.
Discussed 8 Nov 2022, no conclusion recorded.
ACTION QT4CG-023-06: MK to revisit and make a PR for a sequence-type
attribute on xsl:mode
[ We were running out of time at this point, switching more broadly to next steps. ]
- MK: I think we should agree that what’s in the spec is accepted unless an issue is raised.
No disagreement heard.
3. Any other business
None heard.