@qt4cg statuses
This page displays recent status updates about the QT4CG project.
The are also captured in an RSS feed.
By year: 2026, 2025, 2024, 2023, 2022, 2021, 2020
QT4 CG meeting 151 draft agenda #agenda-02-03
Draft agenda published.
Issue #2431 closed #closed-2431
Patch grammar explorer
Issue #2432 created #created-2432
Constructor Functions: conversions
The specification says in [22.1 Constructor functions for XML Schema built-in atomic types](https://qt4cg.org/specifications/xpath-functions-40/Overview.html#constructor-functions-for-xsd-types)…
If the value passed to a constructor is not in the lexical space of the datatype to be constructed, and cannot be converted to a value in the value space of the datatype under the rules in this specification, then an dynamic error is raised [err:FORG0001].
…but it is not clear which rules in the specification are meant.
Specifically, I think we should clarify whether query like the following one are supposed to return an error or a duration:
xs:anyURI('P2000Y') => xs:yearMonthDuration()
Pull request #2431 created #created-2431
Patch grammar explorer
On all pages: Improve display of Headlines with slightly smaller font-size.
On rule detail pages: The Name of the Grammar is now visible in the back button of the ribbon instead of the H1 which only displays the rule name.
On the right hand side:
- Fix complement character class display.
- Sequence and choice items now are indented if they do not fit on one line
- occurrence indicators always stick to the item they belong to
- use spans to group items and mark any character that is displayed
- dashes in character ranges and the pipes in choices are now also recognized as part of EBNF syntax
- literals are never wrapped into the next line
Pull request #2430 created #created-2430
Updates to schema for xslt
Updates the schema for XSLT 4.0:
- Adds
canonicaltoxsl:outputandxsl:result-document - Adds
xsl:package-locationto content model ofxsl:use-package.
Pull request #2429 created #created-2429
Feature/2026 01 28 draft review
I'm suggesting two minor changes following my reading of the most recent draft specs.
Pull request #2428 created #created-2428
2422 Drop XSLT section on embedded stylesheet modules
This doesn't actually abolish the feature, it just de-emphasises it. AFAIK, no-one actually uses it.
Issue #2427 created #created-2427
Node construction in XPath
There was pushback on issue #573 which proposed a set of functions for constructing nodes, on the grounds that for XQuery users, this was unnecessary duplication.
A possible alternative is to add a subset of the XQuery syntax for node construction to XPath: specifically, computed node constructors, which are relatively free of hassles such as dependence on the namespace context, boundary space rules, etc.
Specifically we could add computed constructors:
ComputedConstructor::=CompDocConstructor
| CompElemConstructor
| CompAttrConstructor
| CompNamespaceConstructor
| CompTextConstructor
| CompCommentConstructor
| CompPIConstructorCompDocConstructor::="document" EnclosedExpr
CompElemConstructor::="element" CompNodeName EnclosedContentExpr
CompAttrConstructor::="attribute" CompNodeName EnclosedExpr
CompNamespaceConstructor::="namespace" CompNodeNCName EnclosedExpr
CompTextConstructor::="text" EnclosedExpr
CompCommentConstructor::="comment" EnclosedExpr
CompPIConstructor::="processing-instruction" CompNodeNCName EnclosedExpr
with the restriction that CompNodeName / CompNodeNCName are either expressions in curly braces, or use the new XQuery 4.0 form with a leading "#".
It is of course trivial to define a function library on top of this if someone wants the extra flexibility:
let $new-element := fn($name, $content) { element {$name} {$content} }
etc
(Incidentally, EnclosedContentExpr serves no useful purpose as it's identical to EnclosedExpr.)
We could common up the rules for "constructing simple content" and "constructing complex content" at the same time, putting them in XPath where both XQuery and XSLT can refer to them. I believe they are identical except for (a) error codes, (b) with duplicate attribute names, XQuery throws an error while XSLT takes the last.
Pull request #2426 created #created-2426
2408 editorial omnibus
Fixes nearly everything in #2408
Issue #2424 closed #closed-2424
More Explorer tweaks
Issue #2425 created #created-2425
Permanent diffs for PRs
Since we link to pull requests in the spec and in test cases, I wonder whether it would be possible to publish a permanent diff showing the effect of each PR?
Essentially, the idea would be to take the HTML diff as we currently publish it, and reduce it to those sections of the specs that actually contain changes.
I would find this very useful, for example, when a PR has been accepted but is still marked with "Tests needed" - it's not easy at present to see retrospectively what tests might be required. It would also be useful, of course, when implementing the PR. But I think that all readers of the specs might find this beneficial.
Pull request #2424 created #created-2424
More Explorer tweaks
Building on the awesome work from @ndw I just tweaked the grammar explorer layout a little more
- layout works better on bigger and smaller screens
- consistent navigation between all screens with back button alwasy on the navigation at the top
- consistent sizes, paddings, colors set by CSS variables
- output as html5 which fixes small issues with whitespace in inline elements
- additional, minor layout improvmements
Before
After
Pull request #2423 created #created-2423
2421 document XSLT incompatibility with simplified stylesheets
Fix #2421
Issue #2422 created #created-2422
XSLT: drop 3.11 Embedded Stylesheet Modules
XSLT Section 3.11 describes embedded stylesheet modules - a stylesheet rooted at an element node which is not the outermost element of a document. There are no real conformance requirements associated with this feature and it isn't widely used. I proposed we drop the section, while retaining the statement in §3.5 that a stylesheet module can be "all or part" of an XML document.
Issue #2421 created #created-2421
XSLT edge case incompatibility with simplified stylesheet
Simplified stylesheets have changed so that the implicit template rule now does match="." rather than match="/".
This creates a theoretical incompatibility when
(a) the stylesheet is invoked supplying a node other than a document node as the input. It will now execute the (only) template rule, previously it would execute the built-in template for the node kind
(b) the simplified stylesheet module is included/imported into another stylesheet. This is a highly unlikely scenario, but it is tested by test case include-0601.
The incompatibility should be documented.
Issue #2420 closed #closed-2420
Explorer tweaks
Pull request #2420 created #created-2420
Explorer tweaks
h/t @line-o
Plus a few other tweaks.
Pull request #2419 created #created-2419
2292 XSLT document() function: options parameter
Fix #2292
Issue #2414 closed #closed-2414
Diff markup issues
Pull request #2418 created #created-2418
2399b Add rules and advice for JSON output of special numerics
Fix #2399
Issue #2417 closed #closed-2417
2399 Add rules/advice for JSON output of special xs:double values
Pull request #2417 created #created-2417
2399 Add rules/advice for JSON output of special xs:double values
Fix #2399
Pull request #2416 created #created-2416
2406 Add fn:parts-of-dateTime and fn:build-dateTime functions
Fix #2406
Issue #2415 closed #closed-2415
Publish the grammar explorer pages
Pull request #2415 created #created-2415
Publish the grammar explorer pages
Issue #2414 created #created-2414
Diff markup issues
There seem to be two consistent errors in the diff markup that appears in PRs on the dashboard:
- When an inline
<code>element is modified, the diff version shows the old code as deleted (red background), but does not show the new code.
For example:
- When a grammar entry is modified, the text gets duplicated.
For example:
Pull request #2413 created #created-2413
2365 Drop extensible record types
This PR drops the concept of extensible record types, replacing it with a rule that coercion to a record type drops any map entries that are not defined by the record type. In effect this means that a record type used when declaring a function parameter is implicitly extensible.
The benefits of the proposal are:
- It simplifies the spec, especially rules on type subsumption and on generation of implicit constructor functions
- It avoids the need to declare pairs of record types, one extensible and one not.
- It avoids all the awkward decisions about whether record types used in core functions should be extensible or not.
The rules for type patterns in XSLT are changed to invoke coercion.
Fix #1484 Fix #2365
Pull request #2412 created #created-2412
2395 2396 Add missing "new in 4.0" entries
Fix #2395 Fix #2396
Pull request #2411 created #created-2411
2397 add to F&O list of functions defined in XSLT
Fix #2397
Pull request #2410 created #created-2410
2398 Fix fn:highest to match fn:lowest
Fix #2398
See 4970 more statuses in yearly archives.