Skip to content

Commit 6808359

Browse files
authored
Merge pull request qt4cg#2441 from michaelhkay/2434-has-children-examples
2434 Fix inconsistencies with GNode tests in axis steps
2 parents 661d70d + 96c1da0 commit 6808359

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

specifications/grammar-40/xpath-grammar.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1946,6 +1946,7 @@ VersionDecl ::= "xquery" (("encoding" StringLiteral) | ("version" StringLiteral
19461946

19471947
<g:production name="TypeTest">
19481948
<g:choice>
1949+
<g:ref name="GNodeType"/>
19491950
<g:ref name="NodeKindTest"/>
19501951
<g:ref name="JNodeType"/>
19511952
</g:choice>

specifications/xpath-functions-40/src/function-catalog.xml

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14200,7 +14200,7 @@ fn:parse-QName("xmp:person")</eg></fos:expression>
1420014200

1420114201
<p>TODO: Better handling of the case where the parent is neither a map nor an array,
1420214202
for example where it is a sequence of several maps or several arrays. It's hard to
14203-
provide a better path for these when there is no AxisStep for selecting within
14203+
provide a better path for these when there is no <code>AxisStep</code> for selecting within
1420414204
such values.</p>
1420514205

1420614206

@@ -14222,8 +14222,8 @@ fn:parse-QName("xmp:person")</eg></fos:expression>
1422214222
class="DY" code="0002" type="type"/></p>
1422314223
</item>
1422414224
<item>
14225-
<p>If the context value is not an instance of the sequence type <code>node()?</code>, type error <xerrorref spec="XP" class="TY"
14226-
code="0004" type="type"/>.</p>
14225+
<p>If the context value is not an instance of the sequence type <code>gnode()?</code>,
14226+
type error <xerrorref spec="XP" class="TY" code="0004" type="type"/>.</p>
1422714227
</item></ulist>
1422814228

1422914229
<p>If the value of the <code>origin</code> option is a node that is not an ancestor
@@ -14567,11 +14567,11 @@ let $newi := $o/tool</eg>
1456714567
<fos:result>false()</fos:result>
1456814568
</fos:test>
1456914569
<fos:test>
14570-
<fos:expression>[1,2,3] => has-children()</fos:expression>
14570+
<fos:expression>jtree([1,2,3]) => has-children()</fos:expression>
1457114571
<fos:result>true()</fos:result>
1457214572
</fos:test>
1457314573
<fos:test>
14574-
<fos:expression>[] => has-children()</fos:expression>
14574+
<fos:expression>jtree([]) => has-children()</fos:expression>
1457514575
<fos:result>false()</fos:result>
1457614576
</fos:test>
1457714577

@@ -14741,7 +14741,7 @@ return count(distinct-ordered-nodes(
1474114741
<fos:result><code>"a"</code></fos:result>
1474214742
</fos:test>
1474314743
<fos:test>
14744-
<fos:expression><eg><![CDATA[[[[1], [2]], [[3], [4]], [[5], [6]]]//self::array(*)
14744+
<fos:expression><eg><![CDATA[[[[1], [2]], [[3], [4]], [[5], [6]]]//jnode(*, array(*))
1474514745
=> outermost() =!> array:size()]]></eg></fos:expression>
1474614746
<fos:result><code>3</code></fos:result>
1474714747
</fos:test>
@@ -14953,8 +14953,8 @@ return empty($break)
1495314953

1495414954
</fos:rules>
1495514955
<fos:equivalent style="xpath-expression">
14956-
if ($node intersect $node/parent::node()/child::node())
14957-
then $node/parent::node()/child::node()
14956+
if ($node intersect $node/parent::gnode()/child::gnode())
14957+
then $node/parent::gnode()/child::gnode()
1495814958
else $node
1495914959
</fos:equivalent>
1496014960
<fos:errors>
@@ -14967,8 +14967,8 @@ else $node
1496714967
class="DY" code="0002" type="type"/></p>
1496814968
</item>
1496914969
<item>
14970-
<p>If the context value is not an instance of the sequence type <code>node()?</code>, type error <xerrorref spec="XP" class="TY"
14971-
code="0004" type="type"/>.</p>
14970+
<p>If the context value is not an instance of the sequence type <code>gnode()?</code>,
14971+
type error <xerrorref spec="XP" class="TY" code="0004" type="type"/>.</p>
1497214972
</item>
1497314973
</ulist>
1497414974

@@ -14997,6 +14997,10 @@ else $node
1499714997
<fos:expression>siblings($e//@x) ! string()</fos:expression>
1499814998
<fos:result>"X"</fos:result>
1499914999
</fos:test>
15000+
<fos:test>
15001+
<fos:expression>[[1,2], [11,12], [13,14]]//jnode()[.='12'] => siblings() => sum()</fos:expression>
15002+
<fos:result>23</fos:result>
15003+
</fos:test>
1500015004
</fos:example>
1500115005
</fos:examples>
1500215006
<fos:changes>

0 commit comments

Comments
 (0)