@qt4cg statuses

This page displays recent status updates about the QT4CG project.

The are also captured in an RSS feed.

By year: 2025, 2024, 2023, 2022, 2021, 2020

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

Issue #2341 closed #closed-2341

16 Dec at 17:08:42 GMT

JSON Canonical Serialization

Issue #2342 closed #closed-2342

16 Dec at 17:08:41 GMT

2341 Canonical JSON serialization

Issue #2282 closed #closed-2282

16 Dec at 17:07:53 GMT

2278 Add function bin:infer-encoding; simplify bin:decode-string

Issue #2343 closed #closed-2343

16 Dec at 17:06:21 GMT

format-integer() says nothing about negative numbers

Issue #2346 closed #closed-2346

16 Dec at 17:06:20 GMT

2343 Add examples of format-integer with negative numbers

Issue #2340 closed #closed-2340

16 Dec at 17:03:21 GMT

fn:compare: dateTime types, absent components

Issue #2347 closed #closed-2347

16 Dec at 17:03:20 GMT

2340 Add a note explaining 1972-01-01

Issue #2349 created #created-2349

16 Dec at 16:47:56 GMT
Revert `array:join`

Due to fn:sequence-join being re-renamed (#2329), I suggest reverting array:join and dropping the $separator parameter.

Pull request #2348 created #created-2348

16 Dec at 13:26:51 GMT
1011 fn transform improvements

Fix #1011

I dropped the idea of adding options for validating the source document prior to transformation -- it got too complicated.

Pull request #2347 created #created-2347

16 Dec at 10:29:56 GMT
2340 Add a note explaining 1972-01-01

Explains briefly why 1972-01-01 was chosen

Fix #2340

Pull request #2346 created #created-2346

16 Dec at 10:10:12 GMT
2343 Add examples of format-integer with negative numbers

Fix #2343

Issue #2309 closed #closed-2309

15 Dec at 16:31:08 GMT

2299 Allow SimpleMapExpr after ArrowExpr

Pull request #2345 created #created-2345

15 Dec at 16:00:43 GMT
2299 Expand pipeline to allow arrow expression in path expression

Fix #2299 Supersedes PR #2309

Allow an arrow expression in a path expression (and, by implication, in a simple map expression):

$x => B() / foo ! bar => C() ! baz / quz

This implementation does not change the relative precedence of / and !.


In this implementation we divide UnaryExpr to SignedUnaryExpr (always with a leading unary sign) and UnsignedUnaryExpr (always without a leading unary sign). And the new feature is supported only in the latter case, since in the former case we cannot avoid ambiguity:

  • an expression - aaa => B() / ccc => D() can be parsed both:
    • as (- aaa ) => B() / ccc => D()
    • and as - ( aaa => B() / ccc ) => D()
    • because aaa => B() is the left-hand side operand of /; see also a comment.

Issue #2344 created #created-2344

15 Dec at 14:46:28 GMT
HTML Serialization: Processing Instructions

I was surprised to find the following rule in the serialiation spec for the html method:

The HTML output method must terminate processing instructions with > rather than ?>. It is a serialization error [err:SERE0015] to use the HTML output method when > appears within a processing instruction in input tree.

I could not find equivalent rules in other HTML specs. For example, the DOM Parsing and Serialization says in 3.2.1.7 XML serializing a ProcessingInstruction node:

Let markup be the concatenation of the following, in the order listed:

  1. "<?" (U+003C LESS-THAN SIGN, U+003F QUESTION MARK);
  2. The value of node's target;
  3. " " (U+0020 SPACE);
  4. The value of node's data;
  5. "?>" (U+003F QUESTION MARK, U+003E GREATER-THAN SIGN).

Are there specific reasons for omitting the last question mark?

Next, what about whitespace if the value is missing? The test Serialization-xhtml-58 implies that the space character should be discarded if the xhtml output method is used. Does this also apply to html, or is it up to the implementation?

Issue #2343 created #created-2343

15 Dec at 12:29:08 GMT
format-integer() says nothing about negative numbers

The spec for format-integer says nothing about how to format negative integers. None of the examples are negative. There are test cases that do the obvious thing by prepending a minus sign. But it's not necessarily obvious what the right answer is with a radix other than ten, or with a format such as a or i or w.

I propose that we specify using a leading - regardless of the format and regardless of the radix. If the user wants "minus one" it's easy enough to get it programmatically.

(I was actually looking for a way to force a leading + sign. There's no such mechanism, and I'm not proposing to add it.)

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

15 Dec at 11:30:00 GMT

Draft agenda published.

Pull request #2342 created #created-2342

12 Dec at 12:35:01 GMT
2341 Canonical JSON serialization

Expands the rules and notes regarding canonical JSON serialization

Fix #2341

Issue #2341 created #created-2341

12 Dec at 08:51:57 GMT
JSON Canonical Serialization

Our specification says:

The [serializer] must serialize the normalized sequence according to [[RFC8785]].

RFC8785, however, states that the input to serialization is constrained to conform to I‑JSON [[RFC7493]; we say nothing about how you get from a "normalized sequence" to an I-JSON instance.

And in any case, the JSON output method does not perform sequence normalization, so it's not even clear that there is a normalized sequence to start with. What we actually start with is an arbitrary XDM value.

Many of the answers as to how we get from an arbitrary XDM value to an I-JSON instance are implicit in the introductory section of chapter 9, but extracting the answers requires a lot of reading between the lines.

The main gap in practice is the handling of numerics.

In fact, there's a gap here between the two RFCs. RFC 8785 tells us precisely how to serialize an IEEE 754 (xs:double) value, but I-JSON is a profile of JSON, and therefore represents numbers as a string representation. Neither specification seems to give precise rules for getting from the string representation to the IEEE 754 value. This need not concern us too much, because we're typically starting from an xs:double. But we do need to say what happens if you start with a numeric value other than an xs:double.

Issue #2340 created #created-2340

11 Dec at 16:08:09 GMT
fn:compare: dateTime types, absent components

The current rules say:

Any absent components, other than the timezone, are substituted with the corresponding components of the (arbitrary) xs:dateTime value 1972-01-01T00:00:00 to produce an xs:dateTime value.

Was it meant to be the UNIX time 1970-01-01T00:00:00? If it is arbitrary, is there a particular reason that we propose a specific constant in the spec?

Issue #2339 created #created-2339

11 Dec at 00:20:45 GMT
Default priority of match="element(A|B)"

We don't give a specific rule for the default priority of an element or attribute test containing a NameTestUnion. It therefore defaults to +0.5, which isn't particularly clever as element(A|B) is less specific than element(A).

I think the priority of element(A|B) should be the same as the equivalent pattern element(A) | element(B), namely 0 (zero).

Issue #2216 closed #closed-2216

10 Dec at 16:26:20 GMT

Make all data types ordered

Issue #2338 created #created-2338

10 Dec at 11:53:35 GMT
Nomenclature: node(), gnode(), jnode(), xnode()

In the grammar, consider

  • changing node() to mean "any GNode, that is, an XNode or JNode"
  • dropping the syntax gnode()
  • introducing xnode() to mean "any XNode".

In the specification prose, consider replacing node by XNode throughout (where this is the intended meaning).

Issue #938 closed #closed-938

09 Dec at 21:04:49 GMT

Canonical serialization

QT4 CG meeting 145 draft minutes #minutes-12-09

09 Dec at 17:25:00 GMT

Draft minutes published.

Issue #2332 closed #closed-2332

09 Dec at 17:10:54 GMT

2195 Misc XSLT editorial fixes

See 4804 more statuses in yearly archives.