@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 147 draft minutes #minutes-01-06

06 Jan at 17:15:00 GMT

Draft minutes published.

Issue #407 closed #closed-407

06 Jan at 16:58:54 GMT

XSLT-specific context properties used in function items

Issue #2274 closed #closed-2274

06 Jan at 16:58:53 GMT

407 Function items capturing XSLT context components

Issue #1011 closed #closed-1011

06 Jan at 16:55:55 GMT

fn:transform() improvements

Issue #2348 closed #closed-2348

06 Jan at 16:55:54 GMT

1011 fn transform improvements

Issue #2339 closed #closed-2339

06 Jan at 16:52:33 GMT

Default priority of match="element(A|B)"

Issue #2335 closed #closed-2335

06 Jan at 16:52:32 GMT

Make `jnode()` like `element()`

Issue #2334 closed #closed-2334

06 Jan at 16:52:32 GMT

XSLT: Parenthesized subexpressions within Patterns

Issue #2297 closed #closed-2297

06 Jan at 16:52:32 GMT

XSLT pattern ambiguities with typed matches

Issue #2336 closed #closed-2336

06 Jan at 16:52:31 GMT

2334 Revise XSLT pattern syntax and semantics

Issue #2048 closed #closed-2048

06 Jan at 16:51:41 GMT

Untrusted execution, and security more generally

Pull request #2358 created #created-2358

05 Jan at 16:26:16 GMT
2357 Standardize on element() rather than element(*)

Fix #2357

Issue #2357 created #created-2357

05 Jan at 16:12:28 GMT
element() vs element(*) in function signatures

We use element(*) and element() interchangeably in function signatures. I propose we standardise on the simpler form, element().

Ditto attribute().

Issue #2356 created #created-2356

05 Jan at 15:34:47 GMT
Clarification on scope of variables in xsl:for-each-group/(@split-when|@merge-when)

A user experimenting with xsl:for-each-group/@split-when with my 4->3 source-code transformer, inferred that the variable $group was available within the sequence constructor of the grouping instruction.

(Unfortunately due to an error in my transformer code $group was within scope in the sequence constructor, though with the wrong value ;-) - this has since been corrected.)

A close and detailed reading of the spec shows that $group and $next are implied as only in scope for the evaluation of the @split-when expression. Might I suggest that there is a small note emphasising this is the case? Similar clarification may be worthwhile for @merge-when too.

QT4 CG meeting 147 draft agenda #agenda-01-06

05 Jan at 12:00:00 GMT

Draft agenda published.

Issue #2355 created #created-2355

31 Dec at 13:21:54 GMT
bin:infer-encoding error conditions

The spec says

If no effective encoding could be chosen, an error is raised.

It's not clear what error is raised.

Under Error conditions, it says

[[bin:invalid-encoding] is raised if $encoding is invalid for the given input.

Does this mean that the function must ensure that the input can be successfully decoded using the returned encoding? This seems wasteful, since decode-string() is going to repeat this test. If it doesn't mean this, what does it mean?

Issue #2276 closed #closed-2276

22 Dec at 13:16:07 GMT

XSLT extensibility rules are unnecessarily strict

Issue #2354 created #created-2354

21 Dec at 20:42:38 GMT
`fn:append`

It is trivial to append items to a sequence, but it is a bit counterintuitive to do so the functional way, for example within chains:

(1, 3, 5)
=> fn { ., 7, 9 }()
=> string-join(',')

I propose adding a simple fn:append function, as counterpart of array:append:

(1, 3, 5)
=> append((7, 9))
=> string-join(',')

It is easier to prepend items: we already have fn:insert-before (and array:insert-before).

Issue #2353 created #created-2353

17 Dec at 18:20:56 GMT
Markup problem in rendering grammar productions in HTML

there's also some kind of markup problem that means the links within the grammar don't always work properly.

Originally posted by @michaelhkay in https://github.com/qt4cg/qtspecs/issues/2345#issuecomment-3661848071

The problem is that some local links are incorrect (don't work), and some items don't have links.

For example, in 4.1 Namespace Declarations, in the line "declare" "default" "element" "namespace" URILiteral,

The html source code for "URILiteral" is:

<a href="#doc-xpath40-DefaultElementNamespaceDecl-URILiteral doc-xpath40-NamespaceDecl-URILiteral">URILiteral</a>

(note a space in the fragment identifier in href)

The code for the first occurrence of URILiteral at the left side is:

<a id="doc-xpath40-DefaultElementNamespaceDecl-URILiteral"></a>
<code><a href="#prod-xpath40-URILiteral">URILiteral</a></code>

(seems correct)

And the code for the second occurrence of URILiteral at the left side is:

<a id="doc-xpath40-NamespaceDecl-URILiteral"></a>
<code>URILiteral</code>

(one anchor is missing, is this intentional?)

The XML source is:

         <scrap role="xpath">
            <prodrecap ref="DefaultElementNamespaceDecl"/>
            <prodrecap ref="NamespaceDecl"/>
         </scrap>

Issue #2352 created #created-2352

17 Dec at 13:58:04 GMT
Trusted execution: Questions

I am trying to understand the exact implications of the trusted execution mode that we have recently introduced. The spec says:

2.3 External Resources and Security

[Definition: The static context includes a boolean property called trusted that determines whether external resources are available.] This may take the following values:

  • false: No external resources are available other than resources explicitly made available by the caller through some trusted implementation-defined mechanism.

In the interests of security, the default for these options is false.

How will the rules be interpreted by Saxon? For example,

  1. What is meant by »external resources«? Does it refer to remote resources (https://abc.de/fgh.xml) or also to local files?
  2. How would the behavior change if the default is changed to true?
  3. What could be done to allow or disallow access to local files?

Issue #2351 created #created-2351

17 Dec at 13:22:13 GMT
Current Drafts: What will we keep, what may be dropped?

As our current specifications are still in the draft stage, we cannot guarantee that any added or changed features will be part of the final specification. However, as 4.0 features are increasingly used in production code, we should try to revert shaky candidates sooner rather than later.

We can collect possible candidates in this issue:

  1. fn:sequence-join has just been renamed to fn:insert-separator (#2329)
  2. Do we need syntactic sugar for filtering maps and arrays? #2312
  3. We have recently dropped map:pairs and map:of-pairs. Do we still need array:members and array:of-members? If yes, should we define a record type for record(value)?

Pull request #2350 created #created-2350

16 Dec at 20:53:37 GMT
708 An alternative proposal for generators

This proposal has two ingredients

(a) a single function generate-sequence() that produces a sequence of states from an initial state and a function that computes one state from the previous state

(b) a definition of pipelining (aka lazy evaluation) and (currently incomplete) rules requiring certain operations to have a pipelined implementation.

Issue #2327 closed #closed-2327

16 Dec at 17:38:24 GMT

Name of sequence-join() function

Issue #2278 closed #closed-2278

16 Dec at 17:26:15 GMT

bin:decode-string() revisited

Issue #2324 closed #closed-2324

16 Dec at 17:26:14 GMT

2278 bin:infer-encoding, bin:decode-string

QT4 CG meeting 146 draft minutes #minutes-12-16

16 Dec at 17:25:00 GMT

Draft minutes published.

Issue #2329 closed #closed-2329

16 Dec at 17:13:11 GMT

2327 Rename sequence-join as intersperse

Issue #2283 closed #closed-2283

16 Dec at 17:12:33 GMT

2276 Relax XSLT rules on Extension Attributes

Issue #2322 closed #closed-2322

16 Dec at 17:10:44 GMT

Relax the rules for simplified stylesheets

Issue #2323 closed #closed-2323

16 Dec at 17:10:43 GMT

2322 Generalize simplified stylesheets

See 4829 more statuses in yearly archives.