Add back testing files, lost in previous commit
authorkim <kim@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Mon, 2 Mar 2009 00:37:16 +0000 (00:37 +0000)
committerkim <kim@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Mon, 2 Mar 2009 00:37:16 +0000 (00:37 +0000)
git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/xpathcomp@192 3cdefd35-fc62-479d-8e8d-bae585ffb9ca

158 files changed:
tests/show.sh [new file with mode: 0755]
tests/xpath-pt/xpath/A1.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/A2.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/A3.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/A4.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/A5.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/A6.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/A7.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/A8.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B1.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B10.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B2.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B3.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B4.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B5.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B6.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B7.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B8.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/B9.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/C1.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/C2.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/C3.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/C4.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/C5.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/C6.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/C7.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/D1.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/D2.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/D3.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/D4.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/D5.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E1.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E2.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E3.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E4.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E5.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E6.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E7.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/E8.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q1.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q11.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q16.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q17.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q18.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q19.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q2.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q3.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q4.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q5.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q6.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q7.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q8.xpl [new file with mode: 0644]
tests/xpath-pt/xpath/Q9.xpl [new file with mode: 0644]
tests/xpath-pt/xquery/A1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/A2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/A3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/A4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/A5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/A6.xql [new file with mode: 0644]
tests/xpath-pt/xquery/A7.xql [new file with mode: 0644]
tests/xpath-pt/xquery/A8.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B10.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B13-0.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B13-1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B13-2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B13-3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B13-4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B13-5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B6.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B7.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B8.xql [new file with mode: 0644]
tests/xpath-pt/xquery/B9.xql [new file with mode: 0644]
tests/xpath-pt/xquery/C1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/C2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/C3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/C4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/C5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/C6.xql [new file with mode: 0644]
tests/xpath-pt/xquery/C7.xql [new file with mode: 0644]
tests/xpath-pt/xquery/D1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/D2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/D3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/D4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/D5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E6.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E7.xql [new file with mode: 0644]
tests/xpath-pt/xquery/E8.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F6.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F7.xql [new file with mode: 0644]
tests/xpath-pt/xquery/F8.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q1.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q11.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q16.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q17.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q18.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q19.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q2.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q3.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q4.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q5.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q6.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q7.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q8.xql [new file with mode: 0644]
tests/xpath-pt/xquery/Q9.xql [new file with mode: 0644]
tests/xpath-pt/xslt/A1.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/A2.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/A3.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/A4.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/A5.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/A6.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/A7.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/A8.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B1.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B10.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B2.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B3.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B4.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B5.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B6.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B7.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B8.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/B9.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/C1.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/C2.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/C3.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/C4.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/C5.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/C6.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/C7.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/D1.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/D2.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/D3.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/D4.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/D5.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E1.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E2.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E3.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E4.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E5.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E6.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E7.xsl [new file with mode: 0644]
tests/xpath-pt/xslt/E8.xsl [new file with mode: 0644]
tests/xpathmark.sh [new file with mode: 0755]

diff --git a/tests/show.sh b/tests/show.sh
new file mode 100755 (executable)
index 0000000..581b084
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+echo Result for query "$1"
+cat xpath-pt/xpath/"$1".xpl
+echo
+echo
+cat results/"$1".saxon
+echo
+echo --------------------------------------------------------
+echo
+cat results/"$1".sxsi
diff --git a/tests/xpath-pt/xpath/A1.xpl b/tests/xpath-pt/xpath/A1.xpl
new file mode 100644 (file)
index 0000000..1829e5c
--- /dev/null
@@ -0,0 +1 @@
+/site/closed_auctions/closed_auction/annotation/description/text/keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/A2.xpl b/tests/xpath-pt/xpath/A2.xpl
new file mode 100644 (file)
index 0000000..77b3a7a
--- /dev/null
@@ -0,0 +1 @@
+//closed_auction//keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/A3.xpl b/tests/xpath-pt/xpath/A3.xpl
new file mode 100644 (file)
index 0000000..e0c9f76
--- /dev/null
@@ -0,0 +1 @@
+/site/closed_auctions/closed_auction//keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/A4.xpl b/tests/xpath-pt/xpath/A4.xpl
new file mode 100644 (file)
index 0000000..a4bb406
--- /dev/null
@@ -0,0 +1 @@
+/site/closed_auctions/closed_auction[annotation/description/text/keyword]/date
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/A5.xpl b/tests/xpath-pt/xpath/A5.xpl
new file mode 100644 (file)
index 0000000..f9c2a1d
--- /dev/null
@@ -0,0 +1 @@
+/site/closed_auctions/closed_auction[descendant::keyword]/date
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/A6.xpl b/tests/xpath-pt/xpath/A6.xpl
new file mode 100644 (file)
index 0000000..d171b85
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person[profile/gender and profile/age]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/A7.xpl b/tests/xpath-pt/xpath/A7.xpl
new file mode 100644 (file)
index 0000000..9ec33b6
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person[phone or homepage]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/A8.xpl b/tests/xpath-pt/xpath/A8.xpl
new file mode 100644 (file)
index 0000000..71c1125
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person[address and (phone or homepage) and (creditcard or profile)]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B1.xpl b/tests/xpath-pt/xpath/B1.xpl
new file mode 100644 (file)
index 0000000..b746c87
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[parent::namerica or parent::samerica]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B10.xpl b/tests/xpath-pt/xpath/B10.xpl
new file mode 100644 (file)
index 0000000..c718b76
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B2.xpl b/tests/xpath-pt/xpath/B2.xpl
new file mode 100644 (file)
index 0000000..a2c4ea9
--- /dev/null
@@ -0,0 +1 @@
+//keyword/ancestor::listitem/text/keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B3.xpl b/tests/xpath-pt/xpath/B3.xpl
new file mode 100644 (file)
index 0000000..3461866
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction/bidder[following-sibling::bidder]
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B4.xpl b/tests/xpath-pt/xpath/B4.xpl
new file mode 100644 (file)
index 0000000..369086c
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction/bidder[preceding-sibling::bidder]
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B5.xpl b/tests/xpath-pt/xpath/B5.xpl
new file mode 100644 (file)
index 0000000..9c36ad6
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[following::item]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B6.xpl b/tests/xpath-pt/xpath/B6.xpl
new file mode 100644 (file)
index 0000000..ecae27f
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[preceding::item]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B7.xpl b/tests/xpath-pt/xpath/B7.xpl
new file mode 100644 (file)
index 0000000..282cf30
--- /dev/null
@@ -0,0 +1 @@
+//person[profile/@income]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B8.xpl b/tests/xpath-pt/xpath/B8.xpl
new file mode 100644 (file)
index 0000000..5c20aaf
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/B9.xpl b/tests/xpath-pt/xpath/B9.xpl
new file mode 100644 (file)
index 0000000..c3672a1
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/C1.xpl b/tests/xpath-pt/xpath/C1.xpl
new file mode 100644 (file)
index 0000000..0e847a1
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person[profile/age >= 18 and profile/@income < 10000 and address/city != 'Dallas']/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/C2.xpl b/tests/xpath-pt/xpath/C2.xpl
new file mode 100644 (file)
index 0000000..253feb3
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[bidder/increase = current]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/C3.xpl b/tests/xpath-pt/xpath/C3.xpl
new file mode 100644 (file)
index 0000000..58f220a
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person[profile/@income = /site/open_auctions/open_auction/current]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/C4.xpl b/tests/xpath-pt/xpath/C4.xpl
new file mode 100644 (file)
index 0000000..5c33655
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person[watches/watch/id(@open_auction)/seller/@person = @id]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/C5.xpl b/tests/xpath-pt/xpath/C5.xpl
new file mode 100644 (file)
index 0000000..03e7006
--- /dev/null
@@ -0,0 +1 @@
+id('person0')/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/C6.xpl b/tests/xpath-pt/xpath/C6.xpl
new file mode 100644 (file)
index 0000000..25e2ceb
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person/watches/watch/id(@open_auction)/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/C7.xpl b/tests/xpath-pt/xpath/C7.xpl
new file mode 100644 (file)
index 0000000..a25622a
--- /dev/null
@@ -0,0 +1 @@
+/site/people/person[watches/watch/id(@open_auction)/itemref/id(@item)/parent::australian]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/D1.xpl b/tests/xpath-pt/xpath/D1.xpl
new file mode 100644 (file)
index 0000000..5a7a01b
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[(count(bidder) mod 2) = 0]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/D2.xpl b/tests/xpath-pt/xpath/D2.xpl
new file mode 100644 (file)
index 0000000..ae115be
--- /dev/null
@@ -0,0 +1 @@
+count(//text) + count(//bold) + count(//emph) + count(//keyword)
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/D3.xpl b/tests/xpath-pt/xpath/D3.xpl
new file mode 100644 (file)
index 0000000..73b00b6
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[sum(bidder/increase) > 10 * initial]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/D4.xpl b/tests/xpath-pt/xpath/D4.xpl
new file mode 100644 (file)
index 0000000..9dd6b5d
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[sum(bidder/increase) != (current - initial)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/D5.xpl b/tests/xpath-pt/xpath/D5.xpl
new file mode 100644 (file)
index 0000000..eae25b6
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[bidder and (sum(bidder/increase) div count(bidder)) > 2 * initial]/interval"
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E1.xpl b/tests/xpath-pt/xpath/E1.xpl
new file mode 100644 (file)
index 0000000..74e1692
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction[number(bidder[1]/increase) < number(bidder[floor((last() + 1) div 2)]/increase) and number(bidder[floor((last() + 1) div 2)]/increase) < number(bidder[last()]/increase)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E2.xpl b/tests/xpath-pt/xpath/E2.xpl
new file mode 100644 (file)
index 0000000..342cc79
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/europe/item/description/descendant::keyword[last()]
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E3.xpl b/tests/xpath-pt/xpath/E3.xpl
new file mode 100644 (file)
index 0000000..7221800
--- /dev/null
@@ -0,0 +1 @@
+//keyword/ancestor::listitem[1]/text/keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E4.xpl b/tests/xpath-pt/xpath/E4.xpl
new file mode 100644 (file)
index 0000000..638038f
--- /dev/null
@@ -0,0 +1 @@
+/site/open_auctions/open_auction/bidder[number(preceding-sibling::bidder[1]/increase) <= number(increase) and number(increase) <= number(following-sibling::bidder[1]/increase)]
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E5.xpl b/tests/xpath-pt/xpath/E5.xpl
new file mode 100644 (file)
index 0000000..0c039d9
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[preceding::item[100] and following::item[100]]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E6.xpl b/tests/xpath-pt/xpath/E6.xpl
new file mode 100644 (file)
index 0000000..60cf142
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[contains(description, name)]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E7.xpl b/tests/xpath-pt/xpath/E7.xpl
new file mode 100644 (file)
index 0000000..655fe12
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[contains(substring-before(description, 'eros'), 'passion') and contains(substring-after(description, 'eros'), 'dangerous')]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/E8.xpl b/tests/xpath-pt/xpath/E8.xpl
new file mode 100644 (file)
index 0000000..cdd955a
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[string-length(translate(normalize-space(description),' ','')) > 10000]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xpath/Q1.xpl b/tests/xpath-pt/xpath/Q1.xpl
new file mode 100644 (file)
index 0000000..41d6187
--- /dev/null
@@ -0,0 +1 @@
+/site/regions
diff --git a/tests/xpath-pt/xpath/Q11.xpl b/tests/xpath-pt/xpath/Q11.xpl
new file mode 100644 (file)
index 0000000..beebf4b
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[mailbox/mail/from]/mailbox/mail
diff --git a/tests/xpath-pt/xpath/Q16.xpl b/tests/xpath-pt/xpath/Q16.xpl
new file mode 100644 (file)
index 0000000..e9a2ab5
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item[mailbox/mail/from]//keyword
diff --git a/tests/xpath-pt/xpath/Q17.xpl b/tests/xpath-pt/xpath/Q17.xpl
new file mode 100644 (file)
index 0000000..5836d57
--- /dev/null
@@ -0,0 +1 @@
+/descendant-or-self::keyword/ancestor::listitem/parent::parlist
diff --git a/tests/xpath-pt/xpath/Q18.xpl b/tests/xpath-pt/xpath/Q18.xpl
new file mode 100644 (file)
index 0000000..efe21fb
--- /dev/null
@@ -0,0 +1 @@
+//keyword/ancestor::listitem
diff --git a/tests/xpath-pt/xpath/Q19.xpl b/tests/xpath-pt/xpath/Q19.xpl
new file mode 100644 (file)
index 0000000..d118727
--- /dev/null
@@ -0,0 +1 @@
+//keyword/ancestor-or-self::mail
diff --git a/tests/xpath-pt/xpath/Q2.xpl b/tests/xpath-pt/xpath/Q2.xpl
new file mode 100644 (file)
index 0000000..5939c4f
--- /dev/null
@@ -0,0 +1 @@
+/site/closed_auctions
diff --git a/tests/xpath-pt/xpath/Q3.xpl b/tests/xpath-pt/xpath/Q3.xpl
new file mode 100644 (file)
index 0000000..31b4a03
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/europe/item/mailbox/mail/text/keyword
diff --git a/tests/xpath-pt/xpath/Q4.xpl b/tests/xpath-pt/xpath/Q4.xpl
new file mode 100644 (file)
index 0000000..a57872b
--- /dev/null
@@ -0,0 +1 @@
+/site/closed_auctions/closed_auction/annotation/description/parlist/listitem
diff --git a/tests/xpath-pt/xpath/Q5.xpl b/tests/xpath-pt/xpath/Q5.xpl
new file mode 100644 (file)
index 0000000..1e5beb4
--- /dev/null
@@ -0,0 +1 @@
+/site/closed_auctions/closed_auction/annotation/description/parlist/listitem/parlist/listitem/*//keyword
diff --git a/tests/xpath-pt/xpath/Q6.xpl b/tests/xpath-pt/xpath/Q6.xpl
new file mode 100644 (file)
index 0000000..e844f1c
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item
diff --git a/tests/xpath-pt/xpath/Q7.xpl b/tests/xpath-pt/xpath/Q7.xpl
new file mode 100644 (file)
index 0000000..835eddc
--- /dev/null
@@ -0,0 +1 @@
+/descendant-or-self::listitem/descendant-or-self::keyword
diff --git a/tests/xpath-pt/xpath/Q8.xpl b/tests/xpath-pt/xpath/Q8.xpl
new file mode 100644 (file)
index 0000000..81770a9
--- /dev/null
@@ -0,0 +1 @@
+/site/regions/*/item//keyword
diff --git a/tests/xpath-pt/xpath/Q9.xpl b/tests/xpath-pt/xpath/Q9.xpl
new file mode 100644 (file)
index 0000000..3dd19bc
--- /dev/null
@@ -0,0 +1 @@
+/site/people[address and (name or homepage)]
diff --git a/tests/xpath-pt/xquery/A1.xql b/tests/xpath-pt/xquery/A1.xql
new file mode 100644 (file)
index 0000000..fdac058
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/closed_auctions/closed_auction/annotation/description/text/keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/A2.xql b/tests/xpath-pt/xquery/A2.xql
new file mode 100644 (file)
index 0000000..334cab0
--- /dev/null
@@ -0,0 +1 @@
+doc()//closed_auction//keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/A3.xql b/tests/xpath-pt/xquery/A3.xql
new file mode 100644 (file)
index 0000000..fac2306
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/closed_auctions/closed_auction//keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/A4.xql b/tests/xpath-pt/xquery/A4.xql
new file mode 100644 (file)
index 0000000..c0e2229
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/closed_auctions/closed_auction[annotation/description/text/keyword]/date
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/A5.xql b/tests/xpath-pt/xquery/A5.xql
new file mode 100644 (file)
index 0000000..cae6e25
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/closed_auctions/closed_auction[descendant::keyword]/date
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/A6.xql b/tests/xpath-pt/xquery/A6.xql
new file mode 100644 (file)
index 0000000..7d44167
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[profile/gender and profile/age]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/A7.xql b/tests/xpath-pt/xquery/A7.xql
new file mode 100644 (file)
index 0000000..da4d4de
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[phone or homepage]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/A8.xql b/tests/xpath-pt/xquery/A8.xql
new file mode 100644 (file)
index 0000000..c5171a7
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[address and (phone or homepage) and (creditcard or profile)]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B1.xql b/tests/xpath-pt/xquery/B1.xql
new file mode 100644 (file)
index 0000000..999b411
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[parent::namerica or parent::samerica]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B10.xql b/tests/xpath-pt/xquery/B10.xql
new file mode 100644 (file)
index 0000000..fe31724
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B13-0.xql b/tests/xpath-pt/xquery/B13-0.xql
new file mode 100644 (file)
index 0000000..7d2b1df
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B13-1.xql b/tests/xpath-pt/xquery/B13-1.xql
new file mode 100644 (file)
index 0000000..35fd2c3
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::parlist/descendant::keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B13-2.xql b/tests/xpath-pt/xquery/B13-2.xql
new file mode 100644 (file)
index 0000000..33930ed
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B13-3.xql b/tests/xpath-pt/xquery/B13-3.xql
new file mode 100644 (file)
index 0000000..e873e16
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B13-4.xql b/tests/xpath-pt/xquery/B13-4.xql
new file mode 100644 (file)
index 0000000..ec6a4f8
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B13-5.xql b/tests/xpath-pt/xquery/B13-5.xql
new file mode 100644 (file)
index 0000000..5710fa4
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B2.xql b/tests/xpath-pt/xquery/B2.xql
new file mode 100644 (file)
index 0000000..3abbe68
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::listitem/text/keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B3.xql b/tests/xpath-pt/xquery/B3.xql
new file mode 100644 (file)
index 0000000..e9170ba
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction/bidder[following-sibling::bidder]
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B4.xql b/tests/xpath-pt/xquery/B4.xql
new file mode 100644 (file)
index 0000000..a7ab2ba
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction/bidder[preceding-sibling::bidder]
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B5.xql b/tests/xpath-pt/xquery/B5.xql
new file mode 100644 (file)
index 0000000..f9e3f95
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[following::item]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B6.xql b/tests/xpath-pt/xquery/B6.xql
new file mode 100644 (file)
index 0000000..3eaad84
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[preceding::item]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B7.xql b/tests/xpath-pt/xquery/B7.xql
new file mode 100644 (file)
index 0000000..09281da
--- /dev/null
@@ -0,0 +1 @@
+doc()//person[profile/@income]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B8.xql b/tests/xpath-pt/xquery/B8.xql
new file mode 100644 (file)
index 0000000..020451d
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/B9.xql b/tests/xpath-pt/xquery/B9.xql
new file mode 100644 (file)
index 0000000..386dd0c
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/C1.xql b/tests/xpath-pt/xquery/C1.xql
new file mode 100644 (file)
index 0000000..05e8e79
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[profile/age >= 18 and profile/@income < 10000 and address/city != 'Dallas']/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/C2.xql b/tests/xpath-pt/xquery/C2.xql
new file mode 100644 (file)
index 0000000..4a45eb2
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[bidder/increase = current]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/C3.xql b/tests/xpath-pt/xquery/C3.xql
new file mode 100644 (file)
index 0000000..7e1f699
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[profile/@income = /site/open_auctions/open_auction/current]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/C4.xql b/tests/xpath-pt/xquery/C4.xql
new file mode 100644 (file)
index 0000000..037705a
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[watches/watch/id(@open_auction)/seller/@person = @id]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/C5.xql b/tests/xpath-pt/xquery/C5.xql
new file mode 100644 (file)
index 0000000..b17cfb4
--- /dev/null
@@ -0,0 +1 @@
+doc()/id('person0')/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/C6.xql b/tests/xpath-pt/xquery/C6.xql
new file mode 100644 (file)
index 0000000..2021732
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person/watches/watch/id(@open_auction)/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/C7.xql b/tests/xpath-pt/xquery/C7.xql
new file mode 100644 (file)
index 0000000..87ccaaa
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[watches/watch/id(@open_auction)/itemref/id(@item)/parent::australian]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/D1.xql b/tests/xpath-pt/xquery/D1.xql
new file mode 100644 (file)
index 0000000..4cf8ed5
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[(count(bidder) mod 2) = 0]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/D2.xql b/tests/xpath-pt/xquery/D2.xql
new file mode 100644 (file)
index 0000000..c73b1a6
--- /dev/null
@@ -0,0 +1 @@
+doc()/(count(//text) + count(//bold) + count(//emph) + count(//keyword))
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/D3.xql b/tests/xpath-pt/xquery/D3.xql
new file mode 100644 (file)
index 0000000..06a2458
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[sum(bidder/increase) > 10 * initial]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/D4.xql b/tests/xpath-pt/xquery/D4.xql
new file mode 100644 (file)
index 0000000..06b9ad3
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[sum(bidder/increase) != (current - initial)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/D5.xql b/tests/xpath-pt/xquery/D5.xql
new file mode 100644 (file)
index 0000000..221d2dd
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[bidder and (sum(bidder/increase) div count(bidder)) > 2 * initial]/interval"
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E1.xql b/tests/xpath-pt/xquery/E1.xql
new file mode 100644 (file)
index 0000000..8d198f0
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction[number(bidder[1]/increase) < number(bidder[floor((last() + 1) div 2)]/increase) and number(bidder[floor((last() + 1) div 2)]/increase) < number(bidder[last()]/increase)]/interval
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E2.xql b/tests/xpath-pt/xquery/E2.xql
new file mode 100644 (file)
index 0000000..e8f3847
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/europe/item/description/descendant::keyword[last()]
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E3.xql b/tests/xpath-pt/xquery/E3.xql
new file mode 100644 (file)
index 0000000..110566f
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::listitem[1]/text/keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E4.xql b/tests/xpath-pt/xquery/E4.xql
new file mode 100644 (file)
index 0000000..9a76632
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/open_auctions/open_auction/bidder[number(preceding-sibling::bidder[1]/increase) <= number(increase) and number(increase) <= number(following-sibling::bidder[1]/increase)]
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E5.xql b/tests/xpath-pt/xquery/E5.xql
new file mode 100644 (file)
index 0000000..98ba273
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[preceding::item[100] and following::item[100]]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E6.xql b/tests/xpath-pt/xquery/E6.xql
new file mode 100644 (file)
index 0000000..993ab11
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[contains(description, name)]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E7.xql b/tests/xpath-pt/xquery/E7.xql
new file mode 100644 (file)
index 0000000..a517aaa
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[contains(substring-before(description, 'eros'), 'passion') and contains(substring-after(description, 'eros'), 'dangerous')]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/E8.xql b/tests/xpath-pt/xquery/E8.xql
new file mode 100644 (file)
index 0000000..5d4414b
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[string-length(translate(normalize-space(description),' ','')) > 10000]/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/F1.xql b/tests/xpath-pt/xquery/F1.xql
new file mode 100644 (file)
index 0000000..25bf8a4
--- /dev/null
@@ -0,0 +1,15 @@
+declare namespace fun = 'have.more.fun';
+
+declare function fun:closure($input as node()*, $result as node()*) as node()*
+{
+   let $current := $input/following-sibling::bidder[position()=1 and number(increase) <= 10]
+   let $new := $current except $result 
+   let $all := ($result,$new) 
+   return
+      if(exists($new)) 
+      then ($new, fun:closure($new,$all))
+      else ()
+};
+
+doc()//bidder[number(increase) <= 10 and (following-sibling::bidder[position()=1 and number(increase) > 10] or fun:closure(.,())/following-sibling::bidder[position()=1 and number(increase) > 10])]
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/F2.xql b/tests/xpath-pt/xquery/F2.xql
new file mode 100644 (file)
index 0000000..e143a68
--- /dev/null
@@ -0,0 +1,15 @@
+declare namespace fun = 'have.more.fun';
+
+declare function fun:closure($input as node()*, $result as node()*) as node()*
+{
+   let $current := $input/preceding-sibling::bidder[position()=1 and number(increase) <= 10]
+   let $new := $current except $result 
+   let $all := ($result,$new) 
+   return
+      if(exists($new)) 
+      then ($new, fun:closure($new,$all))
+      else ()
+};
+
+doc()//bidder[number(increase) <= 10 and (preceding-sibling::bidder[position()=1 and number(increase) > 10] or fun:closure(.,())/preceding-sibling::bidder[position()=1 and number(increase) > 10])]
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/F3.xql b/tests/xpath-pt/xquery/F3.xql
new file mode 100644 (file)
index 0000000..802e132
--- /dev/null
@@ -0,0 +1,15 @@
+declare namespace fun = 'have.more.fun';
+
+declare function fun:closure($input as node()*, $result as node()*) as node()*
+{
+   let $current := $input/parlist/listitem/parlist/listitem
+   let $new := $current except $result 
+   let $all := ($result,$new) 
+   return
+      if(exists($new)) 
+      then ($new, fun:closure($new,$all))
+      else ()
+};
+
+doc()//listitem[text/keyword or fun:closure(.,())/text/keyword]/text/keyword
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/F4.xql b/tests/xpath-pt/xquery/F4.xql
new file mode 100644 (file)
index 0000000..f1ceaac
--- /dev/null
@@ -0,0 +1,15 @@
+declare namespace fun = 'have.more.fun';
+
+declare function fun:closure($input as node()*, $result as node()*) as node()*
+{
+   let $current := $input/seller/id(@person)/watches/watch/id(@open_auction)
+   let $new := $current except $result 
+   let $all := ($result,$new) 
+   return
+      if(exists($new)) 
+      then ($new, fun:closure($new,$all))
+      else ()
+};
+
+doc()/site/open_auctions/open_auction[position() <= 5]/fun:closure(.,())/interval
diff --git a/tests/xpath-pt/xquery/F5.xql b/tests/xpath-pt/xquery/F5.xql
new file mode 100644 (file)
index 0000000..f5f5df7
--- /dev/null
@@ -0,0 +1,15 @@
+declare namespace fun = 'have.more.fun';
+
+declare function fun:closure($input as node()*, $result as node()*) as node()*
+{
+   let $current := $input/watches/watch/id(@open_auction)/bidder/personref/id(@person)
+   let $new := $current except $result 
+   let $all := ($result,$new) 
+   return
+      if(exists($new)) 
+      then ($new, fun:closure($new,$all))
+      else ()
+};
+
+doc()/site/people/person[position() <= 5]/fun:closure(.,())/name
diff --git a/tests/xpath-pt/xquery/F6.xql b/tests/xpath-pt/xquery/F6.xql
new file mode 100644 (file)
index 0000000..3d4f392
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people/person[1]/idref(@id)/..
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/F7.xql b/tests/xpath-pt/xquery/F7.xql
new file mode 100644 (file)
index 0000000..efc13b2
--- /dev/null
@@ -0,0 +1,15 @@
+declare namespace fun = 'have.more.fun';
+
+declare function fun:closure($input as node()*, $result as node()*) as node()*
+{
+   let $current := ($input | doc()//edge[@from = $input]/@to)
+   let $new := $current except $result 
+   let $all := ($result,$new) 
+   return
+      if(exists($new)) 
+      then ($new, fun:closure($new,$all))
+      else ()
+};
+
+doc()//category[@id="category0"]/@id/fun:closure(.,())/id(.)/name
\ No newline at end of file
diff --git a/tests/xpath-pt/xquery/F8.xql b/tests/xpath-pt/xquery/F8.xql
new file mode 100644 (file)
index 0000000..990f1a2
--- /dev/null
@@ -0,0 +1,15 @@
+declare namespace fun = 'have.more.fun';
+
+declare function fun:closure($input as node()*, $result as node()*) as node()*
+{
+   let $current := $input/idref(.)[name() = "from"]/../@to
+   let $new := $current except $result 
+   let $all := ($result,$new) 
+   return
+      if(exists($new)) 
+      then ($new, fun:closure($new,$all))
+      else ()
+};
+
+doc()//category[@id="category0"]/@id/fun:closure(.,())/id(.)/name
diff --git a/tests/xpath-pt/xquery/Q1.xql b/tests/xpath-pt/xquery/Q1.xql
new file mode 100644 (file)
index 0000000..c5687f0
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions
diff --git a/tests/xpath-pt/xquery/Q11.xql b/tests/xpath-pt/xquery/Q11.xql
new file mode 100644 (file)
index 0000000..ead28a7
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[mailbox/mail/from]/mailbox/mail
diff --git a/tests/xpath-pt/xquery/Q16.xql b/tests/xpath-pt/xquery/Q16.xql
new file mode 100644 (file)
index 0000000..1a25c73
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item[mailbox/mail/from]//keyword
diff --git a/tests/xpath-pt/xquery/Q17.xql b/tests/xpath-pt/xquery/Q17.xql
new file mode 100644 (file)
index 0000000..2a814e7
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::listitem/parent::parlist
diff --git a/tests/xpath-pt/xquery/Q18.xql b/tests/xpath-pt/xquery/Q18.xql
new file mode 100644 (file)
index 0000000..9a4a276
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor::listitem
diff --git a/tests/xpath-pt/xquery/Q19.xql b/tests/xpath-pt/xquery/Q19.xql
new file mode 100644 (file)
index 0000000..dcc69fe
--- /dev/null
@@ -0,0 +1 @@
+doc()//keyword/ancestor-or-self::mail
diff --git a/tests/xpath-pt/xquery/Q2.xql b/tests/xpath-pt/xquery/Q2.xql
new file mode 100644 (file)
index 0000000..b4e3275
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/closed_auctions
diff --git a/tests/xpath-pt/xquery/Q3.xql b/tests/xpath-pt/xquery/Q3.xql
new file mode 100644 (file)
index 0000000..1f3a704
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/europe/item/mailbox/mail/text/keyword
diff --git a/tests/xpath-pt/xquery/Q4.xql b/tests/xpath-pt/xquery/Q4.xql
new file mode 100644 (file)
index 0000000..3a23458
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/closed_auctions/close_auction/annotation/description/parlist/listitem
diff --git a/tests/xpath-pt/xquery/Q5.xql b/tests/xpath-pt/xquery/Q5.xql
new file mode 100644 (file)
index 0000000..633cfc8
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/closed_auctions/close_auction/annotation/description/parlist/listitem/parlist/listitem/*//keyword
diff --git a/tests/xpath-pt/xquery/Q6.xql b/tests/xpath-pt/xquery/Q6.xql
new file mode 100644 (file)
index 0000000..e746593
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item
diff --git a/tests/xpath-pt/xquery/Q7.xql b/tests/xpath-pt/xquery/Q7.xql
new file mode 100644 (file)
index 0000000..4ffd41a
--- /dev/null
@@ -0,0 +1 @@
+doc()/descendant-or-self::listitem/descendant-or-self::keyword
diff --git a/tests/xpath-pt/xquery/Q8.xql b/tests/xpath-pt/xquery/Q8.xql
new file mode 100644 (file)
index 0000000..cff91bb
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/regions/*/item//keyword
diff --git a/tests/xpath-pt/xquery/Q9.xql b/tests/xpath-pt/xquery/Q9.xql
new file mode 100644 (file)
index 0000000..97823bf
--- /dev/null
@@ -0,0 +1 @@
+doc()/site/people[address and (name or homepage)]
diff --git a/tests/xpath-pt/xslt/A1.xsl b/tests/xpath-pt/xslt/A1.xsl
new file mode 100644 (file)
index 0000000..ceefed4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/closed_auctions/closed_auction/annotation/description/text/keyword"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/A2.xsl b/tests/xpath-pt/xslt/A2.xsl
new file mode 100644 (file)
index 0000000..9d91238
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="//closed_auction//keyword"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/A3.xsl b/tests/xpath-pt/xslt/A3.xsl
new file mode 100644 (file)
index 0000000..62f8294
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/closed_auctions/closed_auction//keyword"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/A4.xsl b/tests/xpath-pt/xslt/A4.xsl
new file mode 100644 (file)
index 0000000..b59d45f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/closed_auctions/closed_auction[annotation/description/text/keyword]/date"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/A5.xsl b/tests/xpath-pt/xslt/A5.xsl
new file mode 100644 (file)
index 0000000..a059ed0
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/closed_auctions/closed_auction[descendant::keyword]/date"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/A6.xsl b/tests/xpath-pt/xslt/A6.xsl
new file mode 100644 (file)
index 0000000..6106d13
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person[profile/gender and profile/age]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/A7.xsl b/tests/xpath-pt/xslt/A7.xsl
new file mode 100644 (file)
index 0000000..fb2e8c1
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person[phone or homepage]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/A8.xsl b/tests/xpath-pt/xslt/A8.xsl
new file mode 100644 (file)
index 0000000..12e2127
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person[address and (phone or homepage) and (creditcard or profile)]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B1.xsl b/tests/xpath-pt/xslt/B1.xsl
new file mode 100644 (file)
index 0000000..4a82e48
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/regions/*/item[parent::namerica or parent::samerica]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B10.xsl b/tests/xpath-pt/xslt/B10.xsl
new file mode 100644 (file)
index 0000000..41f997a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B2.xsl b/tests/xpath-pt/xslt/B2.xsl
new file mode 100644 (file)
index 0000000..667b329
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="//keyword/ancestor::listitem/text/keyword"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B3.xsl b/tests/xpath-pt/xslt/B3.xsl
new file mode 100644 (file)
index 0000000..14d6efe
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction/bidder[following-sibling::bidder]"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B4.xsl b/tests/xpath-pt/xslt/B4.xsl
new file mode 100644 (file)
index 0000000..d8cb3b6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction/bidder[preceding-sibling::bidder]"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B5.xsl b/tests/xpath-pt/xslt/B5.xsl
new file mode 100644 (file)
index 0000000..a5051f2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/regions/*/item[following::item]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B6.xsl b/tests/xpath-pt/xslt/B6.xsl
new file mode 100644 (file)
index 0000000..3ed4eef
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/regions/*/item[preceding::item]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B7.xsl b/tests/xpath-pt/xslt/B7.xsl
new file mode 100644 (file)
index 0000000..4e09197
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="//person[profile/@income]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B8.xsl b/tests/xpath-pt/xslt/B8.xsl
new file mode 100644 (file)
index 0000000..5066235
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/B9.xsl b/tests/xpath-pt/xslt/B9.xsl
new file mode 100644 (file)
index 0000000..89347d5
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/C1.xsl b/tests/xpath-pt/xslt/C1.xsl
new file mode 100644 (file)
index 0000000..40e2587
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person[profile/age &gt;= 18 and profile/@income &lt; 10000 and address/city != 'Dallas']/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/C2.xsl b/tests/xpath-pt/xslt/C2.xsl
new file mode 100644 (file)
index 0000000..c598cd4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[bidder/increase = current]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/C3.xsl b/tests/xpath-pt/xslt/C3.xsl
new file mode 100644 (file)
index 0000000..40df9d4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person[profile/@income = /site/open_auctions/open_auction/current]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/C4.xsl b/tests/xpath-pt/xslt/C4.xsl
new file mode 100644 (file)
index 0000000..5158642
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person[watches/watch/id(@open_auction)/seller/@person = @id]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/C5.xsl b/tests/xpath-pt/xslt/C5.xsl
new file mode 100644 (file)
index 0000000..5606079
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="id('person0')/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/C6.xsl b/tests/xpath-pt/xslt/C6.xsl
new file mode 100644 (file)
index 0000000..56d1468
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person/watches/watch/id(@open_auction)/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/C7.xsl b/tests/xpath-pt/xslt/C7.xsl
new file mode 100644 (file)
index 0000000..0ae5a58
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/people/person[watches/watch/id(@open_auction)/itemref/id(@item)/parent::australian]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/D1.xsl b/tests/xpath-pt/xslt/D1.xsl
new file mode 100644 (file)
index 0000000..78e629f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[(count(bidder) mod 2) = 0]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/D2.xsl b/tests/xpath-pt/xslt/D2.xsl
new file mode 100644 (file)
index 0000000..e35b626
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="count(//text) + count(//bold) + count(//emph) + count(//keyword)"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/D3.xsl b/tests/xpath-pt/xslt/D3.xsl
new file mode 100644 (file)
index 0000000..00c3416
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[sum(bidder/increase) > 10 * initial]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/D4.xsl b/tests/xpath-pt/xslt/D4.xsl
new file mode 100644 (file)
index 0000000..3eacec1
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[sum(bidder/increase) != (current - initial)]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/D5.xsl b/tests/xpath-pt/xslt/D5.xsl
new file mode 100644 (file)
index 0000000..c4ca39e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[bidder and (sum(bidder/increase) div count(bidder)) > 2 * initial]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E1.xsl b/tests/xpath-pt/xslt/E1.xsl
new file mode 100644 (file)
index 0000000..0db5a6b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction[number(bidder[1]/increase) &lt; number(bidder[floor((last() + 1) div 2)]/increase) and number(bidder[floor((last() + 1) div 2)]/increase) &lt; number(bidder[last()]/increase)]/interval"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E2.xsl b/tests/xpath-pt/xslt/E2.xsl
new file mode 100644 (file)
index 0000000..00684b2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/regions/europe/item/description/descendant::keyword[last()]"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E3.xsl b/tests/xpath-pt/xslt/E3.xsl
new file mode 100644 (file)
index 0000000..75b5b3e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="//keyword/ancestor::listitem[1]/text/keyword"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E4.xsl b/tests/xpath-pt/xslt/E4.xsl
new file mode 100644 (file)
index 0000000..94b3761
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/open_auctions/open_auction/bidder[number(preceding-sibling::bidder[1]/increase) &lt;= number(increase) and number(increase) &lt;= number(following-sibling::bidder[1]/increase)]"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E5.xsl b/tests/xpath-pt/xslt/E5.xsl
new file mode 100644 (file)
index 0000000..ce063ef
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/regions/*/item[preceding::item[100] and following::item[100]]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E6.xsl b/tests/xpath-pt/xslt/E6.xsl
new file mode 100644 (file)
index 0000000..b2eeb71
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/regions/*/item[contains(description, name)]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E7.xsl b/tests/xpath-pt/xslt/E7.xsl
new file mode 100644 (file)
index 0000000..93fd240
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="site/regions/*/item[contains(substring-before(description, 'eros'), 'passion') and contains(substring-after(description, 'eros'), 'dangerous')]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpath-pt/xslt/E8.xsl b/tests/xpath-pt/xslt/E8.xsl
new file mode 100644 (file)
index 0000000..20959d2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:copy-of select="/site/regions/*/item[string-length(translate(normalize-space(description),' ','')) > 10000]/name"/>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/xpathmark.sh b/tests/xpathmark.sh
new file mode 100755 (executable)
index 0000000..e786b8f
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+DISPLAY=0
+case "$1" in
+    [A-Z])
+       SERIE="$1";;
+    [A-Z][0-9]*)
+       DISPLAY=1
+       SERIE="$1";;
+    *)
+       SERIE="";;
+esac
+
+
+for i in xpath-pt/xpath/$SERIE*
+do
+querybase=`basename "$i" .xpl`
+query=`cat $i`
+
+xqueryorig="xpath-pt/xquery/$querybase".xql
+cat $xqueryorig | sed -e "s/doc()/doc(\"xmark_tiny.xml\")/g" >tmp.xql
+../main xmark_tiny.xml "$query" results/"$querybase".sxsi 
+saxonb-xquery -o:results/"$querybase".saxon tmp.xql 
+echo >> results/"$querybase".saxon
+diff -w results/"$querybase".sxsi results/"$querybase".saxon >/dev/null || echo $querybase gives different results
+done
+
+if [ "$DISPLAY" = "1" ]
+then 
+./show.sh "$SERIE"
+fi
+