|
Implementations | ||||||||||||||||
Tests | BaseX 7.7 XQ30 |
EMC/xDB xDB_main_r2411365 XQ30 |
Saxon-EE 9.5.1.1 XP20 |
Saxon-EE 9.5.1.1 XQ10 |
Saxon-EE 9.5.1.1 XP30 |
Saxon-EE 9.5.1.1 XQ30 |
Saxon-EE 9.5.1.4 XQX30 (QT3 v1.1) |
XmlPrime 3.0.0.0 XP30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX30 (QT3 vCVS) |
XmlPrime 3.0.0.0 XP20 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQX10 (QT3 vCVS) |
XmlPrime 3.0.0.0 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ10 (QT3 vCVS) |
Zorba 2.9 XQ30 (QT3 vCVS) |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
app-UseCaseXMP | 12/12 | 12/12 | 0/0 | 12/12 | 0/0 | 12/12 | 12/12 | 0/0 | 12/12 | 12/12 | 0/0 | 12/12 | 12/12 | 12/12 | 12/12 | 3/15 |
xmp-queries-results-q1[+]
X xmp-queries-results-q1: <bib> { for $b in /bib/book where $b/publisher = "Addison-Wesley" and $b/@year > 1991 return <book year="{ $b/@year }">{ $b/title }</book> } </bib> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q2[+]
X xmp-queries-results-q2: <results> { for $b in /bib/book, $t in $b/title, $a in $b/author return <result> { $t } { $a } </result> } </results> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q3[+]
X xmp-queries-results-q3: <results> { for $b in /bib/book return <result> { $b/title } { $b/author } </result> } </results> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q4[+]
X xmp-queries-results-q4: <results> { let $a := //author for $last in distinct-values($a/last), $first in distinct-values($a[last=$last]/first) order by $last, $first return <result> <author> <last>{ $last }</last> <first>{ $first }</first> </author> { for $b in /bib/book where some $ba in $b/author satisfies ($ba/last = $last and $ba/first=$first) return $b/title } </result> } </results> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q5[+]
X xmp-queries-results-q5: <books-with-prices> { for $b in $bib//book, $a in $reviews//entry where $b/title = $a/title return <book-with-prices> { $b/title } <price-bstore2>{ $a/price/text() }</price-bstore2> <price-bstore1>{ $b/price/text() }</price-bstore1> </book-with-prices> } </books-with-prices> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q6[+]
X xmp-queries-results-q6: <bib> { for $b in //book where count($b/author) > 0 return <book> { $b/title } { for $a in $b/author[position()<=2] return $a } { if (count($b/author) > 2) then <et-al/> else () } </book> } </bib> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q7[+]
X xmp-queries-results-q7: <bib> { for $b in //book where $b/publisher = "Addison-Wesley" and $b/@year > 1991 order by exactly-one($b/title) return <book> { $b/@year } { $b/title } </book> } </bib> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q8[+]
X xmp-queries-results-q8: for $b in //book let $e := $b/*[contains(string(.), "Suciu") and ends-with(local-name(.), "or")] where exists($e) return <book> { $b/title } { $e } </book> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q9[+]
X xmp-queries-results-q9: <results> { for $t in //(chapter | section)/title where contains(exactly-one($t/text()), "XML") return $t } </results> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q10[+]
X xmp-queries-results-q10: <results> { let $doc := (/) for $t in distinct-values($doc//book/title) let $p := $doc//book[title = $t]/price return <minprice title="{ $t }"> <price>{ min($p) }</price> </minprice> } </results> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q11[+]
X xmp-queries-results-q11: <bib> { for $b in //book[author] return <book> { $b/title } { $b/author } </book> } { for $b in //book[editor] return <reference> { $b/title } {$b/editor/affiliation} </reference> } </bib> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass | |
xmp-queries-results-q12[+]
X xmp-queries-results-q12: <bib> { for $book1 in //book, $book2 in //book let $aut1 := for $a in $book1/author order by exactly-one($a/last), exactly-one($a/first) return $a let $aut2 := for $a in $book2/author order by exactly-one($a/last), exactly-one($a/first) return $a where $book1 << $book2 and not($book1/title = $book2/title) and deep-equal($aut1, $aut2) return <book-pair> { $book1/title } { $book2/title } </book-pair> } </bib> |
pass | pass | pass | n/a
notXP20 |
pass | n/a
notXP30 |
pass | n/a | pass | pass | n/a | pass | pass | pass | pass |