Repository navigation
Conversation
QT3 Test Results - Parser:
|
| Suite | Test file | Test case |
|---|---|---|
fn |
fn/avg.xml:K-SeqAVGFunc-31 |
|
fn |
fn/avg.xml:K-SeqAVGFunc-32 |
|
fn |
fn/avg.xml:K-SeqAVGFunc-34 |
|
fn |
fn/avg.xml:fn-avg-mix-args-029 |
|
fn |
fn/avg.xml:fn-avg-mix-args-030 |
|
fn |
fn/avg.xml:fn-avg-mix-args-031 |
|
fn |
fn/sum.xml:K-SeqSUMFunc-23 |
|
fn |
fn/sum.xml:K-SeqSUMFunc-24 |
|
fn |
fn/sum.xml:fn-sum-10 |
|
fn |
fn/sum.xml:fn-sum-9 |
|
prod |
prod/SwitchExpr.xml:switch-901 |
|
prod |
prod/SwitchExpr.xml:switch-902 |
Summary of passed tests for jsoniq
| Test Suite | Passing | Failing | Errors | Skipped | Missing features | Total |
|---|---|---|---|---|---|---|
app |
2056 | 27 | 69 | 5 | 5 | 2157 |
array |
208 | 0 | 1 | 0 | 0 | 209 |
fn |
10321 | 258 | 169 | 387 | 315 | 11135 |
map |
220 | 0 | 0 | 0 | 0 | 220 |
math |
149 | 0 | 0 | 0 | 0 | 149 |
misc |
765 | 34 | 20 | 52 | 18 | 871 |
op |
4351 | 3 | 12 | 0 | 0 | 4366 |
prod |
11507 | 326 | 166 | 208 | 7 | 12207 |
ser |
332 | 11 | 0 | 0 | 0 | 343 |
xs |
155 | 0 | 0 | 9 | 0 | 164 |
| Total | 30064 | 659 | 437 | 661 | 345 | 31821 |
Full analysis report: see analysis-jsoniq in artifacts.
QT3 Test Results - Parser:
|
| Suite | Test file | Test case |
|---|---|---|
fn |
fn/avg.xml:K-SeqAVGFunc-31 |
|
fn |
fn/avg.xml:K-SeqAVGFunc-32 |
|
fn |
fn/avg.xml:K-SeqAVGFunc-34 |
|
fn |
fn/avg.xml:fn-avg-mix-args-029 |
|
fn |
fn/avg.xml:fn-avg-mix-args-030 |
|
fn |
fn/avg.xml:fn-avg-mix-args-031 |
|
fn |
fn/sum.xml:K-SeqSUMFunc-23 |
|
fn |
fn/sum.xml:K-SeqSUMFunc-24 |
|
fn |
fn/sum.xml:fn-sum-10 |
|
fn |
fn/sum.xml:fn-sum-9 |
|
prod |
prod/SwitchExpr.xml:switch-901 |
|
prod |
prod/SwitchExpr.xml:switch-902 |
Summary of passed tests for xquery
| Test Suite | Passing | Failing | Errors | Skipped | Missing features | Total |
|---|---|---|---|---|---|---|
app |
2063 | 26 | 63 | 5 | 5 | 2157 |
array |
209 | 0 | 0 | 0 | 0 | 209 |
fn |
10343 | 237 | 168 | 387 | 315 | 11135 |
map |
220 | 0 | 0 | 0 | 0 | 220 |
math |
149 | 0 | 0 | 0 | 0 | 149 |
misc |
769 | 30 | 20 | 52 | 18 | 871 |
op |
4351 | 3 | 12 | 0 | 0 | 4366 |
prod |
11590 | 277 | 132 | 208 | 7 | 12207 |
ser |
343 | 0 | 0 | 0 | 0 | 343 |
xs |
155 | 0 | 0 | 9 | 0 | 164 |
| Total | 30192 | 573 | 395 | 661 | 345 | 31821 |
Full analysis report: see analysis-xquery in artifacts.
A step that selects nodes of several declarations widened them to element() or element(name), which dropped their schema types. Keep them as an inferred union instead, as comma expressions and conditionals do, and let steps from a union use the schema when every member is schema-typed.
Fill a reverse map when nameOf names an anonymous type, instead of scanning every named anonymous type on each lookup.
The exclusion depends on how Xerces stores ##other, as a not-list with the target namespace and no namespace.
CaiJimmy
force-pushed
the
jimmy/schema-static-types
branch
from
October 12, 2026 15:20
8f11125 to
8022463
Compare
CaiJimmy
force-pushed
the
jimmy/schema-path-steps
branch
from
October 12, 2026 15:20
53a09b9 to
e48d6a6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Child and attribute steps from a schema-typed element or document now infer the nodes that the schema declares, instead of
element()*orattribute()*.Based on #1889, which gives
validateresults and typed node tests their schema types.Examples
From
static-typing/schema-path-steps/, where$order := validate { <p:order>...</p:order> }(types fromPathSteps.xsd):$order/p:itemelement(p:item, p:Item)*p:special, can take its place$order/p:item/p:priceelement(p:price, xs:decimal)*sum(...)isxs:decimal$order/p:item/@idattribute(id, xs:integer)*$item/@noteattribute(note, xs:string)?$order/p:paidelement(p:paid, xs:boolean)?p:paidandp:due$order/p:customer/p:extraelement(p:extra, xs:integer)?p:Extendeddeclares it, which an instance may select withxsi:type$order/p:item/*(element(p:price, xs:decimal) | element(p:tag, xs:string))*$order/*/p:nameelement(p:name, xs:string)*$order/p:meta/*element()*xs:anywildcard may match any element from another namespace$library/l:library/l:bookelement(l:book, <anonymous>)*document-node(E)has one child, which matchesEA step that the schema rules out, such as
$order/p:missingor$order/p:meta/p:x(the wildcard is##other), is statically empty and raisesXPST0005, like other empty steps.How it works
XmlSchemaCatalog.getStepTyperesolves the context's schema type, including anonymous ones, and walks the content model of the type and of every type derived from it:minOccurs/maxOccursmultiply. The resulting bounds become the step's cardinality.sum($order/p:item/p:price)).If the context is a union, every member must be schema-typed, and the selections of the members are combined.
Where it falls back
The step keeps the previous inference when the schema does not describe every node it can select:
xs:anyTypecontext,@*, since instances also carry undeclaredxsi:attributes,p:*,*:name) and typed tests (element(n, T),schema-element(E)),schema-descendant-stepscovers for descendants.Anonymous schema types now display as
<anonymous>, for exampleelement(p:meta, <anonymous>), instead of their internal names.