@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 179 draft agenda #agenda-09-08
Draft agenda published.
Pull request #2892 created #created-2892
2891 Oxford comma: inconsistencies
90% XQuery, 10% human eyes
Closes #2891
Issue #2585 closed #closed-2585
Limits (editorial)
Issue #2615 closed #closed-2615
XSLT: should xsl:map-entry return a JNode?
Issue #2891 created #created-2891
Oxford comma: inconsistencies
(PR is coming)
Issue #2888 closed #closed-2888
Function equivalence: comparing the captured context
Pull request #2890 created #created-2890
2872 Refine supports-dtd option
Splits the supports-dtd option into supports-dtd-validation and supports-dtd-attribute-typing on the grounds that some commonly used XML parsers (for example the Microsoft .NET parser) support one and not the other.
Pull request #2889 created #created-2889
2887 Fix bad JSON example
Fix #2887
Issue #2888 created #created-2888
Function equivalence: comparing the captured context
The current equivalence rules require a processor to work out which components of the captured focus a function body can actually observe. This can become fairly expensive and will only be required for edge cases, like function items that capture different focuses yet always return the same result. An example:
1 ! fn:last#0
2 ! fn:last#0
I believe that comparing the captured focus as a whole makes the rules simpler. A processor will still be allowed to recognize those cases.
Issue #2887 created #created-2887
The xsl:iterate Instruction - Example contains invalid JSON data
XSLT Specification 7.2 The xsl:iterate Instruction - Example
The example data contains lines like this:
{ "date": "2008-09-01", credit: 12.00 },
Saxon 13.0 produces this when using the data: FOJS0001 Invalid JSON input on line 2: Property name must be a string literal (found <UNQUOTED_STRING>
Invalid JSON input on line 2: Property name must be a string literal (found <UNQUOTED_STRING>
Should I raise an issue with Saxonica about the missing closing ) in the error?
Pull request #2886 created #created-2886
1459 Function properties and arities
Summary of the most important changes:
- I have removed the explicit listing of the default function properties both in the code as well as in the rendered representation (deterministic, context-independent, focus-independent); they are stated once in a new sectin §1.5.4.
- The arity prose has been changed to a single sentence naming the omitted argument, for example: “If
$nodeis absent, this function is context-dependent and focus-dependent.” - Various wrong statements were fixed (
fn:format-integer,fn:format-number,fn:civil-timezone, fn:contains-subsequence,fn:load-xquery-module,fn:in-scope-prefixes`, and others). - Functions like
fn:transformnow name the component they depend on.
Closes #1459
Issue #1920 closed #closed-1920
(Non)determinism of operations that generate functions
Pull request #2885 created #created-2885
2849 xs:integer vs. restricted subtypes
In this PR, numeric specific subtypes are changed back to the general xs:integer (see #2849 for the rationale).
It also fixes an inconsistency in the CSV rules…
parsed-csv-structure-record?column-index was map(xs:string, xs:integer) with the prose “column positions (as 1-based positive integers)”, while ?get in the same record type uses xs:positiveInteger.
…and it now allows users to also supply negative input for fn:unix-dateTime (similarly: “If the value is out of range …”).
Issue #2884 created #created-2884
Further issues with the schema for XSLT
Transferred from #2837
Thanks very much for these changes! Of course I have a few small comments:
To answer your question, the constructor attribute was (and is) missing from the xsl:record-type element. Sorry I wasn't more specific. xsl:item-type allows mixed content, but I don't think it should. xsl:item-type has an assertion requiring the "as" attribute, but the spec says it's optional. The shadow attribute "_main_module" has two underscores, but it should be "_main-module" with an underscore then a hyphen. (This is a new one) xsl:merge-key is in the substitution group for xsl:instruction but I don't think it should be. Looks like I'm not able to reopen this issue...please let me know if you'd like me to create a new issue.
Thanks again!
Issue #2338 closed #closed-2338
Nomenclature: node(), gnode(), jnode(), xnode()
Issue #2795 closed #closed-2795
2338 Nomenclature: node(), gnode(), xnode()
Issue #2740 closed #closed-2740
Built-in records, constructor functions: optional fields
Issue #2768 closed #closed-2768
2740 Drop constructor functions from built-in records
QT4 CG meeting 178 draft minutes #minutes-09-01
Draft minutes published.
Issue #2352 closed #closed-2352
Trusted execution: questions and observations
Issue #2796 closed #closed-2796
2352 Trusted execution: clarifications
Issue #2827 closed #closed-2827
Editorial Notes (August 2026 edition)
Issue #2877 closed #closed-2877
2827 Editorial Notes (August 2026 edition)
Issue #2871 closed #closed-2871
2813 [XSLT] Reorganise sections 25 and 26
Issue #2837 closed #closed-2837
Editorial/non-normative issues with the XSD for XSLT
Issue #2870 closed #closed-2870
2837 Corrections to schema for XSLT 4.0
Issue #2863 closed #closed-2863
Records: drop outdated `extensible` and `required` attributes
Issue #2865 closed #closed-2865
Updated: 2863 Records: drop outdated extensible and required attributes
Issue #2880 closed #closed-2880
Some XSLT proofreading errors
Issue #2883 created #created-2883
parse-xml: strip-space=conditional
As we provide the option parse-xml: strip-space=conditional I think we should make it work consistently with the same option on fn:doc and fn:document - it should strip whitespace according to the XSLT strip-space/preserve-space declarations.
The default should remain "none" to preserve backwards compatibility.
See 5973 more statuses in yearly archives.