@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 163 draft minutes #minutes-05-05

05 May at 16:45:00 GMT

Draft minutes published.

Issue #2595 closed #closed-2595

05 May at 16:27:18 GMT

DM edits on XML Schema data types

Issue #2605 closed #closed-2605

05 May at 16:24:09 GMT

`file:copy`, `file:move`: define behavior when target is inside source directory

Issue #2606 closed #closed-2606

05 May at 16:24:08 GMT

2605 file:copy, file:move: define behavior when target is inside source dir

Issue #2584 closed #closed-2584

05 May at 16:19:10 GMT

JNodes: legalize absolute path expressions

Issue #2610 closed #closed-2610

05 May at 16:19:09 GMT

2584 Absolute path expressions starting at map or array

Issue #2613 closed #closed-2613

05 May at 16:15:57 GMT

XSLT: result of xsl:array-member

Issue #2614 closed #closed-2614

05 May at 16:15:56 GMT

2613 make xsl:array-member create a JNode

Issue #2314 closed #closed-2314

05 May at 16:12:43 GMT

`fn:error`: return type `xs:error` ?

Issue #2607 closed #closed-2607

05 May at 16:12:42 GMT

2314 fn:error: return type xs:error

Issue #2604 closed #closed-2604

05 May at 16:09:53 GMT

Action QT4CG-160-01 Methods and Method Calls

Issue #2615 created #created-2615

05 May at 16:08:05 GMT
XSLT: should xsl:map-entry return a JNode?

Following on from issue #2613 (and PR #2614), should we make xsl:map-entry return a JNode?

This instruction is present in XSLT 3.0, and it is defined to return a single-entry map. The xsl:map instruction expects a sequence of maps as input, and it merges them. It would be easy enough to change xsl:map-entry to return a JNode, and xsl:map to accept that JNode, but there would be a backwards incompatibility for any application that uses the result of xsl:map-entry in any way other than to construct input to xsl:map.

There are in fact two ways we could change xsl:map-entry to return a JNode. We could return a JNode whose jvalue property is a single-entry map, or we could change it so that the jkey property is the relevant key and the jvalue property is the corresponding value.

We need to examine what the benefits of making this change would be, especially when it comes to doing "shallow-copy" template-based transformations of a tree of maps and arrays.

Issue #2312 closed #closed-2312

05 May at 16:05:49 GMT

Map/Array Filter: too much syntactic sugar?

Issue #2608 closed #closed-2608

05 May at 16:05:47 GMT

2312 Removal of Map/Array Filter (somewhat sigh)

QT4 CG meeting 163 draft agenda #agenda-05-05

04 May at 12:50:00 GMT

Draft agenda published.

Pull request #2614 created #created-2614

03 May at 09:59:25 GMT
2613 make xsl:array-member create a JNode

Fix #2613

Issue #2613 created #created-2613

03 May at 07:17:29 GMT
XSLT: result of xsl:array-member

xsl:array-member returns a "parcelled" value that is subsequently used by xsl:array to form a mamber of an array. The parcelled value is currently represented as a zero-arity function.

I propose to change this so the result is represented as a JNode.

The disadvantage of the current approach is that the representation used by xsl:array-member doesn't correspond to the representation used by any of the standard mechanisms used for decomposing an array into its members. So it's fine for constructing a brand-new array, but not for operations like adding or removing members to an existing array. This makes it hard to find a good way of transforming arrays using template rules.

With this change, we would be able to do something like

<xsl:variable name="$array" select="parse-json($cities)/*"/>
<xsl:variable name="$subarray" as="array(map(*))>
   <xsl:array>
      <xsl:sequence select="$array[?country='UK']"/>
      <xsl:array-member select="{'name': 'Douglas', 'country': 'Isle of Man'}"/>
   </xsl:array>
</xsl:variable>

to construct an array that combines members selected from an existing array with newly constructed members,

The basic changes are:

  • xsl:array-member returns a parentless JNode that encapsulates the selected value.
  • xsl:array takes a sequence of items. Each item becomes one member of the array. If the item is a JNode, it is unwrapped to use its jvalue property. The jkey and jparent and jposition properties are ignored.

This then raises the question of whether we should do the same for xsl:map and xsl:map-entry. Symmetry suggests we should. But there are a couple of complications: firstly, we have to think about backwards compatibility, since xsl:map-entry is present in XSLT 3.0. Secondly, the JNode produced by xsl:map-entry would have a key but no parent, which is a novelty in terms of the current data model, and we would need to reassure ourselves that this has no unintended consequences.

Issue #2612 created #created-2612

01 May at 06:52:05 GMT
`fn:char`, XML 1.1: support \b and \f

The JSON parser detects the backslash-escape sequences \b for backspace and \f for form feed. With the extension to XML 1.1, we should probably also allow these for fn:char.

Some more escape sequences exist for beep et al. (https://en.wikipedia.org/wiki/Escape_sequences_in_C), but they may raise more questions than giving answers.

Pull request #2611 created #created-2611

30 Apr at 17:05:57 GMT
2598 New function fn:regex

Fix #2598

Pull request #2610 created #created-2610

30 Apr at 16:31:10 GMT
2584 Absolute path expressions starting at map or array

Fix #2584

Pull request #2609 created #created-2609

30 Apr at 15:24:58 GMT
QT4CG-156-03 Revise text on JNode identity

I've tried to incorporate feedback from the discussion, though my notes and the official minutes fail to capture all the points that were made.

Pull request #2608 created #created-2608

30 Apr at 14:27:42 GMT
2312 Removal of Map/Array Filter (somewhat sigh)

Closes #2312

Pull request #2607 created #created-2607

30 Apr at 12:42:13 GMT
2314 fn:error: return type xs:error

Closes #2314

Pull request #2606 created #created-2606

30 Apr at 11:53:29 GMT
2605 file:copy, file:move: define behavior when target is inside source dir

Closes #2605

Issue #2605 created #created-2605

30 Apr at 11:47:48 GMT
`file:copy`, `file:move`: define behavior when target is inside source directory

The current spec for file:copy and file:move does not address the case where $source is a directory and $target is located inside it. A naive implementation of the recursive rules can enter an infinite loop or even corrupt the file system.

Example:

file:copy("/data/foo", "/data/foo/bar")
file:move("/data/foo", "/data/foo/bar")

Pull request #2604 created #created-2604

30 Apr at 11:10:24 GMT
Action QT4CG-160-01 Methods and Method Calls

I'm not quite sure what "markup error" the action was referring to, but I've proof-read the relevant section and fixed a couple of typos.

Pull request #2603 created #created-2603

30 Apr at 08:38:32 GMT
2602 EXPath file and binary modules as optional features

Fix #2602.

The EXPath file and binary modules become optional conformance features in XQuery and XSLT.

Interrogatives for these features are added to the system-property() and system-properties() functions.

Fulfils action QT4CG-158-02

Issue #2602 created #created-2602

29 Apr at 23:20:58 GMT
Clarify conformance status of bin and file libraries

I propose to define support for these libraries as "optional features" in the conformance rules for XQuery 4.0 and XSLT 4.0.

Pull request #2601 created #created-2601

29 Apr at 21:24:01 GMT
2568 Error code changes for dateTime functions

Replaces https://github.com/qt4cg/qtspecs/pull/2599 to fix #2568

Error code FODT0006 is retained but reserved only for reporting when the value of hours is 24. This is the only rule that applies to a valid combination of components, that diverges from the existing rules for the date/time constructors.

Issue #2599 closed #closed-2599

29 Apr at 20:37:06 GMT

2568 Error code changes for dateTime functions

See 5390 more statuses in yearly archives.