These are the open pull requests and current branches. Where possible, a summary of the changes between the pull request or branch and the latest drafts is provided with a DeltaXignia pipeline.
Pull requests in descending order
PR #2578: 2561 Explain and define methods and method calls
Pull request #2578 by michaelhkay.
Fix #2561
Changed files
- specifications/xquery-40/src/expressions.xml
- specifications/xquery-40/src/query-prolog.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0 (DeltaXignia diff)
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2577: 2575 Make xs:error available unconditionally
Pull request #2577 by michaelhkay.
Fix #2575
Changed files
- specifications/xpath-functions-40/src/xpath-functions.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0 (DeltaXignia diff)
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2574: 2550 Shadow attributes in RELAX NG grammar (alt)
Pull request #2574 by ndw.
Attempt to tidy up the RELAX NG grammar 1. Removed constraints on attributes vs. shadow attributes 2. Generally removed co-constraints except for simple, required attributes 3. Added a few more data types I’m thinking about trying to translate the XSD asserts into Schematron rules, but I guess that can be a separate PR if I make it work
Changed files
- specifications/xslt-40/src/schema-for-xslt40.rnc
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0 (DeltaXignia diff)
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2566: 1979 Records with type annotations
Pull request #2566 by michaelhkay.
First cut for review: the PR probably needs further passes before it is ready for acceptance. We introduce the idea of records, being maps that have a type annotation which is a specific record type. A map acquires the type annotation when it is coerced to the record type. A map that has a record type annotation (a "record") throws a type error if map:get() (or a lookup expression) requests a key that is not one of the declared field names for that type. The type error can be raised statically. map:put() applied to a record is constrained to produce a record with the same type annotation. (I've no objection to the "with" operator for this, but that can be done separately.) Optional fields in record types are dropped; in a record, there is no distinction between an absent field and a field whose value is the empty sequence. There is no longer any need for this distinction, and eliminating it simplifies things a lot. (But we will need to decide whether to treat the fields as present or absent when serialising to JSON). Fix #1979
Changed files
- specifications/grammar-40/xpath-grammar.xml
- specifications/image-sources/item-types.xml
- specifications/xpath-datamodel-40/src/xpath-datamodel.xml
- specifications/xpath-functions-40/src/function-catalog.xml
- specifications/xpath-functions-40/src/xpath-functions.xml
- specifications/xquery-40/src/expressions.xml
- specifications/xquery-40/src/query-prolog.xml
- specifications/xslt-40/src/element-catalog.xml
- specifications/xslt-40/src/xslt.xml
- specifications/xslt-xquery-serialization-40/src/xslt-xquery-serialization.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0 (DeltaXignia diff)
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2470: 1310 Functions fn:regex and ?matching-substrings
Pull request #2470 by michaelhkay.
Fix #1310 This proposal meets the requirement expressed in the cited issue, but goes some way beyond it. First, it proposes a new function fn:regex which effectively compiles a regular expression and returns a number of function items using that regular expression, so you can do for example ``` let $regex := regex("[A-Z][0-9]") return //e[$regex?matches(@att)] ``` to give imlementations a better chance of optimising repeated use of the same regex. Secondly, it proposes a new sub-function `regex()?matching-segments()` which returns similar information to `analyze-string()`, but as a map rather than as XML. The proposal needs a bit more editorial work (more notes and examples) but I'm interested at this stage to get feedback on whether the general direction is sound.
Changed files
- specifications/xpath-functions-40/src/function-catalog.xml
- specifications/xpath-functions-40/src/xpath-functions.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2350: 708 An alternative proposal for generators
Pull request #2350 by michaelhkay.
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.
Changed files
- specifications/xpath-functions-40/src/function-catalog.xml
- specifications/xpath-functions-40/src/xpath-functions.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2345: 2299 Expand pipeline to allow arrow expression in path expression
Pull request #2345 by ruv.
Fix #2299 Supersedes PR #2309 Allow an arrow expression in a path expression (and, by implication, in a simple map expression): ```xquery $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](https://github.com/qt4cg/qtspecs/issues/2299#issuecomment-3544885512).
Changed files
- specifications/grammar-40/xpath-grammar.xml
- specifications/xquery-40/src/expressions.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2247: 716 Deferred Evaluation in XPath - the f:generator record
Pull request #2247 by dnovatchev.
This PR introduces the notion of deferred evaluation and presents the tool to achieve this - the built-in named record type `f:generator`. - Two major use cases are presented. - The fields of `f:generator` are defined. - All system-provided methods of `f:generator` are defined. - Examples of using each of the methods of `f:generator` are provided. - The formal equivalents of each of the system-provided methods of `f:generator` are provided in a separate appendix. <img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/65d04952-794f-4a81-ae64-c96217a9812d" />
Changed files
- schema/xsl-query.dtd
- specifications/xpath-functions-40/src/function-catalog.xml
- specifications/xpath-functions-40/src/xpath-functions.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0 (DeltaXignia diff)
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2160: 2073 data model changes for JNodes and Sequences
Pull request #2160 by michaelhkay.
This is a first draft of a PR, giving the data model changes only, for a change to the JNode model affecting maps and arrays with sequence-valued entries. A sequence of length 2 or more now has children representing the items in the sequence. Although there is still an asymmetry between sequences of length 1 and longer sequences, it is more manageable than i the previous model.
Changed files
- specifications/xpath-datamodel-40/src/xpath-datamodel.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2071: 77c deep update
Pull request #2071 by michaelhkay.
Proposes a new fn:update function that can handle both JNodes and XNodes. (this is a branch on a branch, so I don't know how well the diff'ing will work; but look in F&O for the fn:update function)
Changed files
- specifications/grammar-40/xpath-grammar.xml
- specifications/image-sources/item-types.xml
- specifications/xpath-datamodel-40/src/xpath-datamodel.xml
- specifications/xpath-functions-40/src/function-catalog.xml
- specifications/xpath-functions-40/src/xpath-functions.xml
- specifications/xquery-40/src/expressions.xml
- specifications/xslt-xquery-serialization-40/src/xslt-xquery-serialization.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)
PR #2019: 1776: XSLT template rules for maps and array
Pull request #2019 by michaelhkay.
Currently work In progress, committed so that the draft can be reviewed. Changes in three main areas: - Pattern syntax: patterns such as `?item` and `?parent?item` are defined to match items in a map by their key - Built-in template rules for on-no-match="shallow-copy-all". Revisits the built in template rules for this scenario. - General revision of the processing model for xsl:apply-templates applied to a tree of maps and arrays.
Changed files
- specifications/grammar-40/xpath-grammar.xml
- specifications/xpath-functions-40/src/function-catalog.xml
- specifications/xslt-40/src/xslt.xml
- EXPath Binary Module 4.0 (DeltaXignia diff)
- EXPath File Module 4.0 (DeltaXignia diff)
- XPath 4.0 (DeltaXignia diff)
- XQuery and XPath Data Model 4.0 (DeltaXignia diff)
- XPath and XQuery Functions and Operators 4.0 (DeltaXignia diff)
- XQuery 4.0: An XML Query Language (DeltaXignia diff)
- XSL Transformations (XSLT) Version 4.0 (DeltaXignia diff)
- XSLT Streaming Version 4.0
- XSLT and XQuery Serialization 4.0 (DeltaXignia diff)