xquery version "1.0";
declare function local:test($id as xs:string, $case as element(case), $expected as element(expected), $result as element(result)) as element(test) {
{
if (deep-equal($expected/node(), $result/node())) then
attribute ok {}
else (
attribute fail {},
$case,
$expected,
$result
)
}
};
let $xml :=
return
{
local:test("1",
($xml//p)[2],
p2
,
{ ($xml//p)[2] }
),
local:test("2",
$xml/(.//p)[2],
p2
,
{ $xml/(.//p)[2] }
),
local:test("3",
$xml//(p)[2],
p2
p4
p6
p8
,
{ $xml//(p)[2] }
),
local:test("4",
$xml//p[2],
p2
p4
p6
p8
,
{ $xml//p[2] }
),
local:test("5",
($xml/part//p)[2],
p2
,
{ ($xml/part//p)[2] }
),
local:test("6",
$xml/(part//p)[2],
p2
,
{ $xml/(part//p)[2] }
),
local:test("7",
$xml/part/(.//p)[2],
p2
p6
,
{ $xml/part/(.//p)[2] }
),
local:test("8",
$xml/part//(p)[2],
p2
p4
p6
p8
,
{ $xml/part//(p)[2] }
),
local:test("9",
$xml/part//p[2],
p2
p4
p6
p8
,
{ $xml/part//p[2] }
)
}
{
local:test("1",
($xml//p)[position() = 2],
p2
,
{ ($xml//p)[position() = 2] }
),
local:test("2",
$xml/(.//p)[position() = 2],
p2
,
{ $xml/(.//p)[position() = 2] }
),
local:test("3",
$xml//(p)[position() = 2],
p2
p4
p6
p8
,
{ $xml//(p)[position() = 2] }
),
local:test("4",
$xml//p[position() = 2],
p2
p4
p6
p8
,
{ $xml//p[position() = 2] }
),
local:test("5",
($xml/part//p)[position() = 2],
p2
,
{ ($xml/part//p)[position() = 2] }
),
local:test("6",
$xml/(part//p)[position() = 2],
p2
,
{ $xml/(part//p)[position() = 2] }
),
local:test("7",
$xml/part/(.//p)[position() = 2],
p2
p6
,
{ $xml/part/(.//p)[position() = 2] }
),
local:test("8",
$xml/part//(p)[position() = 2],
p2
p4
p6
p8
,
{ $xml/part//(p)[position() = 2] }
),
local:test("9",
$xml/part//p[position() = 2],
p2
p4
p6
p8
,
{ $xml/part//p[position() = 2] }
)
}
{
local:test("1",
($xml/descendant-or-self::node()/p)[2],
p2
,
{ ($xml/descendant-or-self::node()/p)[2] }
),
local:test("2",
$xml/(./descendant-or-self::node()/p)[2],
p2
,
{ $xml/(./descendant-or-self::node()/p)[2] }
),
local:test("3",
$xml/descendant-or-self::node()/(p)[2],
p2
p4
p6
p8
,
{ $xml/descendant-or-self::node()/(p)[2] }
),
local:test("4",
$xml/descendant-or-self::node()/p[2],
p2
p4
p6
p8
,
{ $xml/descendant-or-self::node()/p[2] }
),
local:test("5",
($xml/part/descendant-or-self::node()/p)[2],
p2
,
{ ($xml/part/descendant-or-self::node()/p)[2] }
),
local:test("6",
$xml/(part/descendant-or-self::node()/p)[2],
p2
,
{ $xml/(part/descendant-or-self::node()/p)[2] }
),
local:test("7",
$xml/part/(./descendant-or-self::node()/p)[2],
p2
p6
,
{ $xml/part/(./descendant-or-self::node()/p)[2] }
),
local:test("8",
$xml/part/descendant-or-self::node()/(p)[2],
p2
p4
p6
p8
,
{ $xml/part/descendant-or-self::node()/(p)[2] }
),
local:test("9",
$xml/part/descendant-or-self::node()/p[2],
p2
p4
p6
p8
,
{ $xml/part/descendant-or-self::node()/p[2] }
)
}
{
local:test("1",
($xml/descendant-or-self::node()/p)[position() = 2],
p2
,
{ ($xml/descendant-or-self::node()/p)[position() = 2] }
),
local:test("2",
$xml/(./descendant-or-self::node()/p)[position() = 2],
p2
,
{ $xml/(./descendant-or-self::node()/p)[position() = 2] }
),
local:test("3",
$xml/descendant-or-self::node()/(p)[position() = 2],
p2
p4
p6
p8
,
{ $xml/descendant-or-self::node()/(p)[position() = 2] }
),
local:test("4",
$xml/descendant-or-self::node()/p[position() = 2],
p2
p4
p6
p8
,
{ $xml/descendant-or-self::node()/p[position() = 2] }
),
local:test("5",
($xml/part/descendant-or-self::node()/p)[position() = 2],
p2
,
{ ($xml/part/descendant-or-self::node()/p)[position() = 2] }
),
local:test("6",
$xml/(part/descendant-or-self::node()/p)[position() = 2],
p2
,
{ $xml/(part/descendant-or-self::node()/p)[position() = 2] }
),
local:test("7",
$xml/part/(./descendant-or-self::node()/p)[position() = 2],
p2
p6
,
{ $xml/part/(./descendant-or-self::node()/p)[position() = 2] }
),
local:test("8",
$xml/part/descendant-or-self::node()/(p)[position() = 2],
p2
p4
p6
p8
,
{ $xml/part/descendant-or-self::node()/(p)[position() = 2] }
),
local:test("9",
$xml/part/descendant-or-self::node()/p[position() = 2],
p2
p4
p6
p8
,
{ $xml/part/descendant-or-self::node()/p[position() = 2] }
)
}
{
local:test("1",
($xml/descendant::p)[2],
p2
,
{ ($xml/descendant::p)[2] }
),
local:test("2",
$xml/(descendant::p)[2],
p2
,
{ $xml/(descendant::p)[2] }
),
local:test("3",
$xml/(descendant::p)[2],
p2
,
{ $xml/(descendant::p)[2] }
),
local:test("4",
$xml/descendant::p[2],
p2
,
{ $xml/descendant::p[2] }
),
local:test("5",
($xml/part/descendant::p)[2],
p2
,
{ ($xml/part/descendant::p)[2] }
),
local:test("6",
$xml/(part/descendant::p)[2],
p2
,
{ $xml/(part/descendant::p)[2] }
),
local:test("7",
$xml/part/(descendant::p)[2],
p2
p6
,
{ $xml/part/(descendant::p)[2] }
),
local:test("8",
$xml/part/(descendant::p)[2],
p2
p6
,
{ $xml/part/(descendant::p)[2] }
),
local:test("9",
$xml/part/descendant::p[2],
p2
p6
,
{ $xml/part/descendant::p[2] }
)
}
{
local:test("1",
($xml/descendant::p)[position() = 2],
p2
,
{ ($xml/descendant::p)[position() = 2] }
),
local:test("2",
$xml/(descendant::p)[position() = 2],
p2
,
{ $xml/(descendant::p)[position() = 2] }
),
local:test("3",
$xml/(descendant::p)[position() = 2],
p2
,
{ $xml/(descendant::p)[position() = 2] }
),
local:test("4",
$xml/descendant::p[position() = 2],
p2
,
{ $xml/descendant::p[position() = 2] }
),
local:test("5",
($xml/part/descendant::p)[position() = 2],
p2
,
{ ($xml/part/descendant::p)[position() = 2] }
),
local:test("6",
$xml/(part/descendant::p)[position() = 2],
p2
,
{ $xml/(part/descendant::p)[position() = 2] }
),
local:test("7",
$xml/part/(descendant::p)[position() = 2],
p2
p6
,
{ $xml/part/(descendant::p)[position() = 2] }
),
local:test("8",
$xml/part/(descendant::p)[position() = 2],
p2
p6
,
{ $xml/part/(descendant::p)[position() = 2] }
),
local:test("9",
$xml/part/descendant::p[position() = 2],
p2
p6
,
{ $xml/part/descendant::p[position() = 2] }
)
}