@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
Issue #2289 closed #closed-2289
2195 (partial) Editorial notes (incremental)
Issue #2259 closed #closed-2259
938 Canonical serialization
QT4 CG meeting 143 draft minutes #minutes-11-25
Draft minutes published.
Issue #2047 closed #closed-2047
external resource-accessing functions, available resources, and error codes
Issue #2213 closed #closed-2213
2047 External resources and security
Issue #2303 closed #closed-2303
2195 Fix some more simple editorial errors
Issue #2296 closed #closed-2296
2288 XSLT implicit document nodes
Issue #2304 closed #closed-2304
QT4CG-142-02: Add notes on gotchas for string-length and normalize-space
Issue #2287 closed #closed-2287
Ordered maps break JSON interoperability
Issue #2306 closed #closed-2306
QT4CG-141-01 Fix formal equivalent of array:for-each
Issue #2308 closed #closed-2308
QT4CG-140-02 Add note about binary input to parse-csv and parse-json
Pull request #2313 created #created-2313
2298 XQFO rules: definition of default values
@michaelhkay I have decided to create this PR, even if we are still discussing its necessity. I hope it clarifies where I see the need for unifications in the current presentation. In general, it follows the proposal that I developed in my thoughts in #2298. In particular, it fixes various small inconsistencies in the prose.
I have stumbled upon related editorial issues that I haven’t worked at yet: 1.6 Function calls is outdated, for example the fn:function-name (which could be confused with the actually existing function with the same name) should have an optional parameter. Next, the text talks about “two signatures of fn:string”; and it is not clear why the “zero or one values” and “zero or more values” cases are presented in more detail, whereas “one or more” is missing. The reason is probably simple: It seems to stem back to version 3.1.
Closes #2298
Issue #2291 closed #closed-2291
load-xquery-module: formalizing (loading-)parameters
Issue #2312 created #created-2312
Map/Array Filter: too much syntactic sugar?
Adopted from https://github.com/qt4cg/qtspecs/issues/2195#issuecomment-3426412436, and raised because of new user feedback:
Now that we have dropped map:pairs, the map filter expression is the only remaining that represents map entries as record(key, value).
For the sake of simplicity and usability, we could question if the alternative writings for both filtering maps and arrays are not sufficient:
let $map := { 0: 1, 1: 2, 2: 4, 3: 8 }
let $filter := fn($k, $v) { $k = $v - 1 }
return (
(: existing ways of filtering map entries :)
map:filter($map, $filter),
{ for key $k value $v in $map where $filter($k, $v) return { $k: $v } },
(: redundant? :)
$map?[$filter(?key, ?value)]
)
let $array := [ (), 1, (2, 3), (4, 5, 6) ]
let $filter := fn($m) { count($m) > 1 }
return (
(: existing ways of filtering array members :)
array:filter($array, $filter),
array:join(for member $m in $array where $filter($m) return [ $m ]),
(: redundant? :)
$array?[$filter(.)]
)
Issue #2311 created #created-2311
XSLT default priorities for patterns
The rules for default priorities for type patterns and predicate patterns do not follow the convention that defaulted priorities are always less than 1. The default of 1 in these cases should be reduced to 0.5.
Issue #2310 created #created-2310
Inconsistency in XPath description of // expansion
4.7.2 Relative Path Expressions, states that:
Each non-initial occurrence of // in a path expression is expanded as described in 4.7.7 Abbreviated Syntax, leaving a sequence of steps separated by /.
but as far as I can see, 4.7.7 Abbreviated Syntax doesn't currently have any specific mention of what the expansion actually is.
XPath 3.1, 3.3.5 Abbreviated Syntax does have a third list item describing the /descendant-or-self::node()/ expansion, but it seems to have disappeared in at least the current version of 4.
Pull request #2309 created #created-2309
Allow SimpleMapExpr after ArrowExpr
Fix #2299
Allow the form A => B() ! C and make it equivalent to ( A => B() ) ! C. Also, allow all operators from PostfixExpr in the same manner.
Issue #2305 closed #closed-2305
Syntax Highlighting
Issue #2307 closed #closed-2307
Remove the attempt to syntax highlight XSLT examples
Pull request #2308 created #created-2308
QT4CG-140-02 Add note about binary input to parse-csv and parse-json
Pull request #2307 created #created-2307
Remove the attempt to syntax highlight XSLT examples
Fix #2305
The result was buggy, causing errors in examples, and the highlighting wasn’t actually having any effect because the CSS had been lost.
Pull request #2306 created #created-2306
QT4CG-141-01 Fix formal equivalent of array:for-each
Need $member?value not $member
Issue #2305 created #created-2305
Syntax Highlighting
I'm seeing an example in the XSLT spec, section §17.3 that is incorrectly rendered:
<xsl:analyze-string select="'aLongPieceOfString'">regex="(?<=[a-z])(?=([A-Z]))">
Note the '>' before 'regex'.
Looking at the HTML, I see
<pre class="spectrum"><span class="es"><</span><span class="enxsl">xsl:analyze-string</span><span class="z"> </span><span class="atn">select</span><span class="atneq">=</span><span class="z">"</span><span class="op">'</span><span class="literal">aLongPieceOfString</span><span class="op">'</span><span class="z">"</span><span class="scx">></span><span class="txt">regex="(?</span><span class="es"><</span><span class="en">=[a-z])(?=([A-Z]))"</span><span class="scx">></span><span class="txt">
Now, in the XSLT 3.0 spec, examples like this were syntax highlighted, and it looks to me as if we're still putting the example through the syntax highlighter, but we've dropped the CSS that actually produces the highlighted rendition. And I suspect that in this case we're seeing a bug in the syntax highlighter.
If I recall correctly, the name "spectrum" refers to a syntax highlighting tool written by Phil Fearon, but I can't find any references to it on the web.
Since we're not taking advantage of the syntax highlighting, and since no-one has complained about its absence, and since it appears to have a bug, perhaps the best thing is to drop it from the processing pipeline.
Pull request #2304 created #created-2304
QT4CG-142-02: Add notes on gotchas for string-length and normalize-space
Pull request #2303 created #created-2303
2195 Fix some more simple editorial errors
Issue #2302 created #created-2302
Bad links in EXPath binary spec
Transferred from issue #2195 as it seems to be rather complex.
The EXPath binary spec is being published at location https://qt4cg.org/specifications/expath-binary-40/Overview.html but internal links generated from function markup elements are pointing to https://qt4cg.org/specifications/EXPath/binary-40/Overview.html
The incorrect URI is generated because of the variable at xmlspec-2016 line 723; the correct URI is also there, commented out.
But simply changing this variable doesn't work (which is presumably why it's commented out). This is because the incorrect URI also appears in other places. It's in the doc.public entity definition in the heading of the document itself, it's in /etc/BIN40, and it's in database.xml. I haven't managed to work out the process by which these references are generated.
The same factors apply equally to the EXPath file specification.
Issue #2285 closed #closed-2285
2198 Add pi-for-cdata parameter
Issue #2294 closed #closed-2294
Type element(E, T)
Pull request #2301 created #created-2301
2198 Add cdata attribute to xsl:text and xsl:value-of
Allow xsl:text and xsl:value-of to request serialization of the content as a CDATA section.
QT4 CG meeting 142 draft minutes #minutes-11-18
Draft minutes published.
See 4732 more statuses in yearly archives.