@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

Issue #2843 created #created-2843

16 Aug at 13:22:30 GMT
Functions available in XSLT

The static context for (a) xsl:evaluate and (b) static expressions does not include the EXPath bin and file libraries. These should be included if these optional features are supported.

Pull request #2842 created #created-2842

15 Aug at 10:57:42 GMT
2801 Align the output of matching-segments() and regex-groups()

Fix #2801

Pull request #2841 created #created-2841

15 Aug at 10:08:33 GMT
2838 rename decode-from-uri as decode-uri

Fix #2838

Pull request #2840 created #created-2840

12 Aug at 20:57:20 GMT
2825 Generalize fn:jtree to accept any value as input

Fix #2825

Pull request #2839 created #created-2839

12 Aug at 16:42:15 GMT
2836 Add fn:location function

Fix #2836

Adds a dm:location accessor in the data model and a corresponding fn:location function in F+O; a location is a four-part record containing system id, public id, line number, and column number.

Allows maintenance of location information to be requested in fn:doc, fn:parse-xml, etc.

Changes the diagnostics returned by xsd-validator to include a location record.

Issue #2748 closed #closed-2748

12 Aug at 10:19:26 GMT

CSV Serialization

Issue #2794 closed #closed-2794

12 Aug at 10:19:25 GMT

2748 CSV Serialization

Issue #2838 created #created-2838

11 Aug at 20:12:50 GMT
Rename decode-from-uri as decode-uri

It seems to me that the function "decode-from-uri" is a misnomer. It probably arose because of a desire for symmetry with "encode-for-uri". But the reason that function wasn't named encode-uri is because the input isn't a URI; the encoding is done as part of the process of producing a URI from a non-URI. The reverse process, however, operates on a URI. "Decode" as an English verb takes the thing being decoded as a direct object, not an indirect object, so the semantically and grammatically correct name is "decode-uri".

QT4 CG meeting 175 draft minutes #minutes-08-11

11 Aug at 16:45:00 GMT

Draft minutes published.

Issue #2811 closed #closed-2811

11 Aug at 16:33:36 GMT

fn:decode-from-uri: to +, or not to +

Issue #2812 closed #closed-2812

11 Aug at 16:33:35 GMT

2811 fn:decode-from-uri: to +, or not to +

Issue #2798 closed #closed-2798

11 Aug at 16:32:29 GMT

Handling of named captured groups by `fn:analyze-string`

Issue #2729 closed #closed-2729

11 Aug at 16:32:29 GMT

fn:replace: named capture groups

Issue #2793 closed #closed-2793

11 Aug at 16:32:28 GMT

2729 fn:replace: named groups (+other regex functions)

Issue #1962 closed #closed-1962

11 Aug at 16:29:35 GMT

fn:map-to-element

Issue #2707 closed #closed-2707

11 Aug at 16:29:34 GMT

1962 fn:map-to-element

Issue #2816 closed #closed-2816

11 Aug at 16:25:58 GMT

Add advice on use of indent-unit and newline serialization parameters

Issue #2817 closed #closed-2817

11 Aug at 16:25:57 GMT

2816 Advice for representing whitespace serialization params

QT4 CG meeting 176 draft agenda #agenda-08-18

11 Aug at 09:30:00 GMT

Draft agenda published.

QT4 CG meeting 175 draft agenda #agenda-08-10

10 Aug at 11:15:00 GMT

Draft agenda published.

Issue #2837 created #created-2837

07 Aug at 15:59:27 GMT
Editorial/non-normative issues with the XSD for XSLT

I have identified a bunch of small issues with the XSD for XSLT. I would be happy to fix these and create a pull request, but I wanted to document them first in case there's any discussion required.

  1. @main-module is missing from the XSD
  2. xsl:item-type is missing from the XSD
  3. @constructor is missing from the XSD
  4. @merge-when is missing from the XSD
  5. @component - the XSD is missing the values "item-type" and "record-type"
  6. For xsl:field, the XSD allows a @required attribute but the spec doesn't allow it (already mentioned as an "Editorial Note").
  7. xsl:record-type/@visibility - the XSD allows too many values, it should only be public/private
  8. xsl:copy-of should not allow mixed content but the XSD allows it. (This appears to be a carryover from previous versions of XSLT.)
  9. xsl:fork should not allow mixed content, should it?
  10. The XSD doesn't allow "##any" for the [xsl:]xpath-default-namespace attribute
  11. The XSD allows @json-node-output-method to have the values "json" and "adaptive" but they are not allowed by the spec
  12. xsl:merge-source is missing the assertion that @type and @validation mutually exclusive (present on other elements)
  13. The XSD allows an xsl:fallback child for xsl:mode, but the spec does not, should that be eliminated?
  14. The base type of xsl:map and xsl:map-entry be sequence-constructor-or-select instead of sequence-constructor-and-select.
  15. The type of xsl:when should be based on xsl:sequence-constructor-or-select instead of xsl:sequence-constructor.
  16. Since version is required on xsl:package, an assertion should be added enforcing that it exists (similar to other required attributes)
  17. xsl:record is in the XSD but not the spec? I supsect this part of the spec is in flux so would ignore this one for now?
  18. @default-validation should not have a default value in the XSD because XSD validation implies adding that attribute if it is not present. If it were added with the default value during XSD validation it could potentially override a non-default value in a parent element. This may be pedantic because it is unlikely someone would validate the XSLT with the XSD and then run the transformation with the PSVI of the XSLT, but I think it is worth adjusting.
  19. Similarly, the @override attribute on xsl:function should not have a default value because adding it during XSD validation could result in a value that conflicts with @override-extension-function, which would be a static error.
  20. The @schema-role has a default value of "yes" in the XSD but that should not be there.
  21. Missing default values. I'm of two minds about default values in XSD, but they are useful for documentation purposes and do exist in the current XSD for some attributes. However, there are a lot of missing ones. Presumably if the Element Syntax Summary in the spec lists a default value, it should be in the XSD?
  22. xsl:apply-templates/@select has the default value "child::node()" in the XSD which I don't think is technically wrong but is not officially a default in the spec. I assume it should be removed to match the spec.
  23. Similarly, xsl:character-map/@use-character-maps has a default of "" in the schema but not in the spec. I assume it should be removed to match the spec.
  24. The documentation for the type "nametest" says "a list of nametests". really it's just a single nametest.
  25. The documentation for the type "nametests" should say "EQName" instead of "QName".
  26. The documentation for the type EQNames lists two uses of the type, but there are others. Maybe the "where used" info should be left out of the documentation for ease of maintenance.
  27. The documentation for the type EQName-in-namespace should say "EQName" instead of "EQNames".
  28. The documentation of fixed-namespaces-type says "A sequence of tokens, each of which may be one of #default, an NCName, ..." but that should be "#standard" not "#default".
  29. The @normalization-form attribute could be more specifically defined. The XSD is sufficient for validation but not great for documentation.
  30. The XSD is mostly in alphabetical order but "document" comes before "decimal-format".

Issue #2836 created #created-2836

06 Aug at 22:52:16 GMT
fn:xsd-validator and line numbers

The fn:validator function envisages that it should be possible to validate a document supplied as an XDM document or element node, and that the result of the function should include error information with associated line numbers.

But line numbers on nodes are not a recognized property in the data model, and furthermore, there is no way to request the line number of a node.

I suggest that we

(a) In XDM, recognize location as an optional property of a node. Location is of the form record(entity-uri, line, column).

(b) In the doc() and document() and parse-xml() functions, provide an option to request maintenance of location information in the constructed tree.

(c) Provide a function fn:location(node()) to return the information if it is available.

Issue #2835 created #created-2835

03 Aug at 11:38:18 GMT
Special characters in item-separator

Given that we allow backslash-escaped whitespace characters in the indent-unit and line-ending serialization parameters, it seems odd not to allow them in item-separator. But doing so would be an incompatible change.

In most of the contexts where serialization parameters are specified, XML character references can be used to set their values. The main exception is in the $options parameter of the fn:serialize() function in pure XPath, where char('\t') can be used. Perhaps we should drop the ability to use backslash-escapes in indent-unit and line-ending?

Pull request #2834 created #created-2834

02 Aug at 21:21:12 GMT
2830 Clarify the effect of the line-ending serialization parameter

Fix #2830

Essentially editorial, though it makes some technical decisions on the interaction of parameters such as line-ending and item-separator which may be non-obvious.

Issue #2774 closed #closed-2774

02 Aug at 13:20:22 GMT

Semantics of A / B ? C

Issue #2788 closed #closed-2788

02 Aug at 13:20:21 GMT

2774 Reversion of PR 2747 which allowed `A/B?C`

Pull request #2833 created #created-2833

02 Aug at 13:17:29 GMT
2263 New named record types

Closes #2263

Various of the comments in the issue were outdated. Worth discussing:

  • Do we want record types for parameter types (specifically, fn:sort-by and array:sort-by)?
  • Do we want to keep the rule alive that “all built-in record types live in the fn namespace”? Otherwise, we could change fn:array-sort-key-record to array:sort-key-record.
  • I have skipped bin:infer-encoding as I didn’t know how to extend the record infrastructure to the EXPath modules.

Pull request #2832 created #created-2832

02 Aug at 12:26:05 GMT
2808 strip-space option: fn:doc vs. fn:parse-xml

Closes #2808

Pull request #2831 created #created-2831

02 Aug at 12:17:43 GMT
2809 fn:deep-equal, debug option: nondeterminism

Closes #2809

Issue #2830 created #created-2830

02 Aug at 10:54:50 GMT
line-ending=CRLF|CR

I don't think the new spec is entirely clear about where (in the "phases of serialization") substitution of NL by CR or CRLF takes place. It's not mentioned at all in the "phases of serialization", and for the XML output method (which is the only one I've studied so far) it is covered only by a (non-normative) Note in §5.1.7. The note makes clear that the injected CR characters are not subject to character mapping, but it's not explicit that the don't get escaped as 
 or equivalent. The phrase "the characters that the serializer would otherwise emit" suggests that end-of-line substitution happens immediately after indentation and before encoding (because that's the last stage at which the serializer is emitting characters rather than octets). But this begs the question of where substitution of a literal CR in content by 
 takes place. For the XML output method the rule is given in the long introductory section 5 ("A consequence of this rule is that certain characters must be output as character references") but it doesn't say when this happens: I think we need to clarify that it is part of phase 3(e).

Suggestion:

(a) clarify that substitution of CR by 
 is part of phase 3(e)

(b) introduce a new phase between (4) and (5) to handle substitution of line endings.

I haven't looked at how methods other than XML are affected.

See 5851 more statuses in yearly archives.