summaryrefslogtreecommitdiffstats
path: root/libxml2/result/XPath
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2016-10-19 18:28:08 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2016-10-19 18:28:08 (GMT)
commit7f402e480a04b974617c04142993d3919457d342 (patch)
treea39cf901d49b9767df3fe076ebf8a06c92277995 /libxml2/result/XPath
parent818fd731f62993dc8aa5d07b82e1d1b2c04aae7d (diff)
parent6c75f0dc676d73c4cbcdca5a9cf05c6797a2ac0b (diff)
downloadblt-7f402e480a04b974617c04142993d3919457d342.zip
blt-7f402e480a04b974617c04142993d3919457d342.tar.gz
blt-7f402e480a04b974617c04142993d3919457d342.tar.bz2
Merge commit '6c75f0dc676d73c4cbcdca5a9cf05c6797a2ac0b' as 'libxml2'
Diffstat (limited to 'libxml2/result/XPath')
-rw-r--r--libxml2/result/XPath/expr/base28
-rw-r--r--libxml2/result/XPath/expr/compare184
-rw-r--r--libxml2/result/XPath/expr/equality104
-rw-r--r--libxml2/result/XPath/expr/floats244
-rw-r--r--libxml2/result/XPath/expr/functions100
-rw-r--r--libxml2/result/XPath/expr/strings136
-rw-r--r--libxml2/result/XPath/tests/chaptersbase125
-rw-r--r--libxml2/result/XPath/tests/chaptersprefol100
-rw-r--r--libxml2/result/XPath/tests/idsimple33
-rw-r--r--libxml2/result/XPath/tests/langsimple60
-rw-r--r--libxml2/result/XPath/tests/mixedpat101
-rw-r--r--libxml2/result/XPath/tests/nodespat94
-rw-r--r--libxml2/result/XPath/tests/nssimple24
-rw-r--r--libxml2/result/XPath/tests/simpleabbr81
-rw-r--r--libxml2/result/XPath/tests/simplebase127
-rw-r--r--libxml2/result/XPath/tests/usr1check12
-rw-r--r--libxml2/result/XPath/tests/vidbase42
-rw-r--r--libxml2/result/XPath/xptr/chapterschildseq53
-rw-r--r--libxml2/result/XPath/xptr/chaptersparts44
-rw-r--r--libxml2/result/XPath/xptr/chaptersrange64
-rw-r--r--libxml2/result/XPath/xptr/strpoint75
-rw-r--r--libxml2/result/XPath/xptr/strrange96
-rw-r--r--libxml2/result/XPath/xptr/strrange264
-rw-r--r--libxml2/result/XPath/xptr/strrange348
-rw-r--r--libxml2/result/XPath/xptr/vidbase19
-rw-r--r--libxml2/result/XPath/xptr/vidchildseq36
-rw-r--r--libxml2/result/XPath/xptr/vidparts27
27 files changed, 2121 insertions, 0 deletions
diff --git a/libxml2/result/XPath/expr/base b/libxml2/result/XPath/expr/base
new file mode 100644
index 0000000..e04346f
--- /dev/null
+++ b/libxml2/result/XPath/expr/base
@@ -0,0 +1,28 @@
+
+========================
+Expression: 1
+Object is a number : 1
+
+========================
+Expression: 1+2
+Object is a number : 3
+
+========================
+Expression: 2*3
+Object is a number : 6
+
+========================
+Expression: 1+2*3+4
+Object is a number : 11
+
+========================
+Expression: (1+2)*(3+4)
+Object is a number : 21
+
+========================
+Expression: 1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1
+Object is a number : 21
+
+========================
+Expression: self::-name
+Object is empty (NULL)
diff --git a/libxml2/result/XPath/expr/compare b/libxml2/result/XPath/expr/compare
new file mode 100644
index 0000000..21a88d0
--- /dev/null
+++ b/libxml2/result/XPath/expr/compare
@@ -0,0 +1,184 @@
+
+========================
+Expression: 0<0
+Object is a Boolean : false
+
+========================
+Expression: 0<=0
+Object is a Boolean : true
+
+========================
+Expression: 0>0
+Object is a Boolean : false
+
+========================
+Expression: 0>=0
+Object is a Boolean : true
+
+========================
+Expression: 0<1
+Object is a Boolean : true
+
+========================
+Expression: 0<=1
+Object is a Boolean : true
+
+========================
+Expression: 0>1
+Object is a Boolean : false
+
+========================
+Expression: 0>=1
+Object is a Boolean : false
+
+========================
+Expression: 1<0
+Object is a Boolean : false
+
+========================
+Expression: 1<=0
+Object is a Boolean : false
+
+========================
+Expression: 1>0
+Object is a Boolean : true
+
+========================
+Expression: 1>=0
+Object is a Boolean : true
+
+========================
+Expression: 1<1
+Object is a Boolean : false
+
+========================
+Expression: 1<=1
+Object is a Boolean : true
+
+========================
+Expression: 1>1
+Object is a Boolean : false
+
+========================
+Expression: 1>=1
+Object is a Boolean : true
+
+========================
+Expression: '0'<1
+Object is a Boolean : true
+
+========================
+Expression: '0'<=1
+Object is a Boolean : true
+
+========================
+Expression: '0'>1
+Object is a Boolean : false
+
+========================
+Expression: '0'>=1
+Object is a Boolean : false
+
+========================
+Expression: 0<'1.2'
+Object is a Boolean : true
+
+========================
+Expression: 0<='1.2'
+Object is a Boolean : true
+
+========================
+Expression: 0>'1.2'
+Object is a Boolean : false
+
+========================
+Expression: 0>='1.2'
+Object is a Boolean : false
+
+========================
+Expression: 0<'-0.2'
+Object is a Boolean : false
+
+========================
+Expression: 0<='-0.2'
+Object is a Boolean : false
+
+========================
+Expression: 0>'-0.2'
+Object is a Boolean : true
+
+========================
+Expression: 0>='-0.2'
+Object is a Boolean : true
+
+========================
+Expression: false()<1
+Object is a Boolean : true
+
+========================
+Expression: false()<=1
+Object is a Boolean : true
+
+========================
+Expression: 0>true()
+Object is a Boolean : false
+
+========================
+Expression: 0>=true()
+Object is a Boolean : false
+
+========================
+Expression: 'a' > 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' > 'b'
+Object is a Boolean : false
+
+========================
+Expression: 'b' > 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' < 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' < 'b'
+Object is a Boolean : false
+
+========================
+Expression: 'b' < 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' >= 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' >= 'b'
+Object is a Boolean : false
+
+========================
+Expression: 'b' >= 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' <= 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' <= 'b'
+Object is a Boolean : false
+
+========================
+Expression: 'b' <= 'a'
+Object is a Boolean : false
+
+========================
+Expression: 'a' > '0.0'
+Object is a Boolean : false
+
+========================
+Expression: 'a' < '0.0'
+Object is a Boolean : false
diff --git a/libxml2/result/XPath/expr/equality b/libxml2/result/XPath/expr/equality
new file mode 100644
index 0000000..44b4c22
--- /dev/null
+++ b/libxml2/result/XPath/expr/equality
@@ -0,0 +1,104 @@
+
+========================
+Expression: 1=1
+Object is a Boolean : true
+
+========================
+Expression: 1!=1
+Object is a Boolean : false
+
+========================
+Expression: 1=0
+Object is a Boolean : false
+
+========================
+Expression: 1!=0
+Object is a Boolean : true
+
+========================
+Expression: true()=true()
+Object is a Boolean : true
+
+========================
+Expression: true()!=true()
+Object is a Boolean : false
+
+========================
+Expression: true()=false()
+Object is a Boolean : false
+
+========================
+Expression: false()!=true()
+Object is a Boolean : true
+
+========================
+Expression: 'test'='test'
+Object is a Boolean : true
+
+========================
+Expression: 'test'!='test'
+Object is a Boolean : false
+
+========================
+Expression: 'test2'='test'
+Object is a Boolean : false
+
+========================
+Expression: 'test2'!='test'
+Object is a Boolean : true
+
+========================
+Expression: false()=0
+Object is a Boolean : true
+
+========================
+Expression: false()!=0
+Object is a Boolean : false
+
+========================
+Expression: false()=1
+Object is a Boolean : false
+
+========================
+Expression: false()!=1
+Object is a Boolean : true
+
+========================
+Expression: 0=true()
+Object is a Boolean : false
+
+========================
+Expression: 0!=true()
+Object is a Boolean : true
+
+========================
+Expression: 1=true()
+Object is a Boolean : true
+
+========================
+Expression: 1!=true()
+Object is a Boolean : false
+
+========================
+Expression: true()='test'
+Object is a Boolean : true
+
+========================
+Expression: false()='test'
+Object is a Boolean : false
+
+========================
+Expression: 'test'!=true()
+Object is a Boolean : false
+
+========================
+Expression: 'test'!=false()
+Object is a Boolean : true
+
+========================
+Expression: 'a'=0.0
+Object is a Boolean : false
+
+========================
+Expression: 'a'!=0.0
+Object is a Boolean : true
diff --git a/libxml2/result/XPath/expr/floats b/libxml2/result/XPath/expr/floats
new file mode 100644
index 0000000..b6255ce
--- /dev/null
+++ b/libxml2/result/XPath/expr/floats
@@ -0,0 +1,244 @@
+
+========================
+Expression: 1
+Object is a number : 1
+
+========================
+Expression: 123
+Object is a number : 123
+
+========================
+Expression: 1.23
+Object is a number : 1.23
+
+========================
+Expression: 0.123
+Object is a number : 0.123
+
+========================
+Expression: 4.
+Object is a number : 4
+
+========================
+Expression: .4
+Object is a number : 0.4
+
+========================
+Expression: 1.23e3
+Object is a number : 1230
+
+========================
+Expression: 1.23e-3
+Object is a number : 0.00123
+
+========================
+Expression: 1 div 0
+Object is a number : Infinity
+
+========================
+Expression: -1 div 0
+Object is a number : -Infinity
+
+========================
+Expression: 0 div 0
+Object is a number : NaN
+
+========================
+Expression: 1 div -0
+Object is a number : -Infinity
+
+========================
+Expression: (1 div 0) > 0
+Object is a Boolean : true
+
+========================
+Expression: (1 div 0) < 0
+Object is a Boolean : false
+
+========================
+Expression: (-1 div 0) > 0
+Object is a Boolean : false
+
+========================
+Expression: (-1 div 0) < 0
+Object is a Boolean : true
+
+========================
+Expression: (0 div 0) > 0
+Object is a Boolean : false
+
+========================
+Expression: (0 div 0) < 0
+Object is a Boolean : false
+
+========================
+Expression: (1 div -0) > 0
+Object is a Boolean : false
+
+========================
+Expression: (1 div -0) < 0
+Object is a Boolean : true
+
+========================
+Expression: 0 div 0 = 0 div 0
+Object is a Boolean : false
+
+========================
+Expression: 0 div 0 != 0 div 0
+Object is a Boolean : true
+
+========================
+Expression: 0 div 0 > 0 div 0
+Object is a Boolean : false
+
+========================
+Expression: 0 div 0 < 0 div 0
+Object is a Boolean : false
+
+========================
+Expression: 0 div 0 >= 0 div 0
+Object is a Boolean : false
+
+========================
+Expression: 0 div 0 <= 0 div 0
+Object is a Boolean : false
+
+========================
+Expression: 1 div 0 = -1 div 0
+Object is a Boolean : false
+
+========================
+Expression: 1 div 0 != -1 div 0
+Object is a Boolean : true
+
+========================
+Expression: 1 div 0 > -1 div 0
+Object is a Boolean : true
+
+========================
+Expression: 1 div 0 < -1 div 0
+Object is a Boolean : false
+
+========================
+Expression: 1 div 0 >= -1 div 0
+Object is a Boolean : true
+
+========================
+Expression: 1 div 0 <= -1 div 0
+Object is a Boolean : false
+
+========================
+Expression: 1 div 0 = 1 div 0
+Object is a Boolean : true
+
+========================
+Expression: 1 div 0 != 1 div 0
+Object is a Boolean : false
+
+========================
+Expression: 1 div 0 > 1 div 0
+Object is a Boolean : false
+
+========================
+Expression: 1 div 0 < 1 div 0
+Object is a Boolean : false
+
+========================
+Expression: 1 div 0 >= -1 div 0
+Object is a Boolean : true
+
+========================
+Expression: 1 div 0 <= -1 div 0
+Object is a Boolean : false
+
+========================
+Expression: -2 div 0 = -1 div 0
+Object is a Boolean : true
+
+========================
+Expression: 1 div floor(0.1)
+Object is a number : Infinity
+
+========================
+Expression: 1 div floor(-0.1)
+Object is a number : -1
+
+========================
+Expression: 1 div floor(-0)
+Object is a number : -Infinity
+
+========================
+Expression: 1 div floor(0)
+Object is a number : Infinity
+
+========================
+Expression: 1 div ceiling(0.1)
+Object is a number : 1
+
+========================
+Expression: 1 div ceiling(-0.1)
+Object is a number : -Infinity
+
+========================
+Expression: 1 div ceiling(-0)
+Object is a number : -Infinity
+
+========================
+Expression: 1 div ceiling(0)
+Object is a number : Infinity
+
+========================
+Expression: 1 div round(0.1)
+Object is a number : Infinity
+
+========================
+Expression: 1 div round(-0.1)
+Object is a number : -Infinity
+
+========================
+Expression: 1 div round(-0)
+Object is a number : -Infinity
+
+========================
+Expression: 1 div round(0)
+Object is a number : Infinity
+
+========================
+Expression: 1 div number('f')
+Object is a number : NaN
+
+========================
+Expression: number('f') div 1
+Object is a number : NaN
+
+========================
+Expression: 1 div (1 div 0)
+Object is a number : 0
+
+========================
+Expression: (1 div 0) div 1
+Object is a number : Infinity
+
+========================
+Expression: -(1 div 0) div 1
+Object is a number : -Infinity
+
+========================
+Expression: 5 mod 2
+Object is a number : 1
+
+========================
+Expression: 5 mod -2
+Object is a number : 1
+
+========================
+Expression: -5 mod 2
+Object is a number : -1
+
+========================
+Expression: -5 mod -2
+Object is a number : -1
+
+========================
+Expression: 8 mod 3 = 2
+Object is a Boolean : true
diff --git a/libxml2/result/XPath/expr/functions b/libxml2/result/XPath/expr/functions
new file mode 100644
index 0000000..10cc27e
--- /dev/null
+++ b/libxml2/result/XPath/expr/functions
@@ -0,0 +1,100 @@
+
+========================
+Expression: true()
+Object is a Boolean : true
+
+========================
+Expression: false()
+Object is a Boolean : false
+
+========================
+Expression: number("1.5")
+Object is a number : 1.5
+
+========================
+Expression: number('abc')
+Object is a number : NaN
+
+========================
+Expression: -number('abc')
+Object is a number : NaN
+
+========================
+Expression: floor(0.1)
+Object is a number : 0
+
+========================
+Expression: floor(-0.1)
+Object is a number : -1
+
+========================
+Expression: floor(-0)
+Object is a number : 0
+
+========================
+Expression: floor(0)
+Object is a number : 0
+
+========================
+Expression: floor(5.2)
+Object is a number : 5
+
+========================
+Expression: floor(-5.2)
+Object is a number : -6
+
+========================
+Expression: ceiling(0.1)
+Object is a number : 1
+
+========================
+Expression: ceiling(-0.1)
+Object is a number : 0
+
+========================
+Expression: ceiling(-0)
+Object is a number : 0
+
+========================
+Expression: ceiling(0)
+Object is a number : 0
+
+========================
+Expression: ceiling(5.2)
+Object is a number : 6
+
+========================
+Expression: ceiling(-5.2)
+Object is a number : -5
+
+========================
+Expression: round(0.1)
+Object is a number : 0
+
+========================
+Expression: round(5.2)
+Object is a number : 5
+
+========================
+Expression: round(5.5)
+Object is a number : 6
+
+========================
+Expression: round(5.6)
+Object is a number : 6
+
+========================
+Expression: round(-0.1)
+Object is a number : 0
+
+========================
+Expression: round(-5.2)
+Object is a number : -5
+
+========================
+Expression: round(-5.5)
+Object is a number : -5
+
+========================
+Expression: round(-5.6)
+Object is a number : -6
diff --git a/libxml2/result/XPath/expr/strings b/libxml2/result/XPath/expr/strings
new file mode 100644
index 0000000..fad7048
--- /dev/null
+++ b/libxml2/result/XPath/expr/strings
@@ -0,0 +1,136 @@
+
+========================
+Expression: string(5)
+Object is a string : 5
+
+========================
+Expression: string(0.5)
+Object is a string : 0.5
+
+========================
+Expression: string(-0.5)
+Object is a string : -0.5
+
+========================
+Expression: string(true())
+Object is a string : true
+
+========================
+Expression: string(false())
+Object is a string : false
+
+========================
+Expression: concat("titi","toto")
+Object is a string : tititoto
+
+========================
+Expression: concat("titi","toto","tata")
+Object is a string : tititototata
+
+========================
+Expression: concat("titi",'toto')
+Object is a string : tititoto
+
+========================
+Expression: concat("titi",'toto',"tata","last")
+Object is a string : tititototatalast
+
+========================
+Expression: starts-with("tititoto","titi")
+Object is a Boolean : true
+
+========================
+Expression: starts-with("tititoto","to")
+Object is a Boolean : false
+
+========================
+Expression: contains("tititototata","titi")
+Object is a Boolean : true
+
+========================
+Expression: contains("tititototata","toto")
+Object is a Boolean : true
+
+========================
+Expression: contains("tititototata","tata")
+Object is a Boolean : true
+
+========================
+Expression: contains("tititototata","tita")
+Object is a Boolean : false
+
+========================
+Expression: substring("12345",2,3)
+Object is a string : 234
+
+========================
+Expression: substring("12345",2)
+Object is a string : 2345
+
+========================
+Expression: substring("12345",-4)
+Object is a string : 12345
+
+========================
+Expression: substring("12345",3.4)
+Object is a string : 345
+
+========================
+Expression: substring("12345",3.6)
+Object is a string : 45
+
+========================
+Expression: substring("12345",1.5,2.6)
+Object is a string : 234
+
+========================
+Expression: substring("12345",2.2,2.2)
+Object is a string : 23
+
+========================
+Expression: substring("12345",0,3)
+Object is a string : 12
+
+========================
+Expression: substring("12345",-8,10)
+Object is a string : 1
+
+========================
+Expression: substring("12345",4,-10)
+Object is a string :
+
+========================
+Expression: substring("12345",0 div 0, 3)
+Object is a string :
+
+========================
+Expression: substring("12345",1, 0 div 0)
+Object is a string :
+
+========================
+Expression: substring("12345",1 div 0, 3)
+Object is a string :
+
+========================
+Expression: substring("12345",3,-1 div 0)
+Object is a string :
+
+========================
+Expression: substring("12345",-42, 1 div 0)
+Object is a string : 12345
+
+========================
+Expression: substring("12345",-1 div 0, 1 div 0)
+Object is a string :
+
+========================
+Expression: substring("12345",-1 div 0,5)
+Object is a string :
+
+========================
+Expression: string-length("")
+Object is a number : 0
+
+========================
+Expression: string-length("titi")
+Object is a number : 4
diff --git a/libxml2/result/XPath/tests/chaptersbase b/libxml2/result/XPath/tests/chaptersbase
new file mode 100644
index 0000000..e023bf0
--- /dev/null
+++ b/libxml2/result/XPath/tests/chaptersbase
@@ -0,0 +1,125 @@
+
+========================
+Expression: /child::EXAMPLE
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
+Expression: /child::*
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
+Expression: /child::EXAMPLE/child::head
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT head
+
+========================
+Expression: /child::EXAMPLE/child::*
+Object is a Node Set :
+Set contains 6 nodes:
+1 ELEMENT head
+2 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+3 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+4 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter3
+5 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter4
+6 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter5
+
+========================
+Expression: /child::EXAMPLE/child::head/child::title
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT title
+
+========================
+Expression: /child::EXAMPLE/child::head/child::title/child::text()
+Object is a Node Set :
+Set contains 1 nodes:
+1 TEXT
+ content=Welcome to Gnome
+
+========================
+Expression: /child::EXAMPLE/child::head/node()
+Object is a Node Set :
+Set contains 3 nodes:
+1 TEXT
+ content=
+2 ELEMENT title
+3 TEXT
+ content=
+
+========================
+Expression: /descendant::title
+Object is a Node Set :
+Set contains 6 nodes:
+1 ELEMENT title
+2 ELEMENT title
+3 ELEMENT title
+4 ELEMENT title
+5 ELEMENT title
+6 ELEMENT title
+
+========================
+Expression: /descendant::p/ancestor::chapter
+Object is a Node Set :
+Set contains 5 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+2 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+3 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter3
+4 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter4
+5 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter5
+
+========================
+Expression: //p[1]
+Object is a Node Set :
+Set contains 5 nodes:
+1 ELEMENT p
+2 ELEMENT p
+3 ELEMENT p
+4 ELEMENT p
+5 ELEMENT p
diff --git a/libxml2/result/XPath/tests/chaptersprefol b/libxml2/result/XPath/tests/chaptersprefol
new file mode 100644
index 0000000..a12c937
--- /dev/null
+++ b/libxml2/result/XPath/tests/chaptersprefol
@@ -0,0 +1,100 @@
+
+========================
+Expression: /following::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /preceding::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/preceding::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/following::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/child::chapter[3]/preceding::*
+Object is a Node Set :
+Set contains 10 nodes:
+1 ELEMENT head
+2 ELEMENT title
+3 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+4 ELEMENT title
+5 ELEMENT p
+6 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+7 ELEMENT p
+8 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+9 ELEMENT title
+10 ELEMENT p
+
+========================
+Expression: /child::EXAMPLE/child::chapter[3]/following::*
+Object is a Node Set :
+Set contains 6 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter4
+2 ELEMENT title
+3 ELEMENT p
+4 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter5
+5 ELEMENT title
+6 ELEMENT p
+
+========================
+Expression: /child::EXAMPLE/child::chapter[1]/image/preceding::*
+Object is a Node Set :
+Set contains 4 nodes:
+1 ELEMENT head
+2 ELEMENT title
+3 ELEMENT title
+4 ELEMENT p
+
+========================
+Expression: /child::EXAMPLE/child::chapter[1]/image/following::*
+Object is a Node Set :
+Set contains 13 nodes:
+1 ELEMENT p
+2 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+3 ELEMENT title
+4 ELEMENT p
+5 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter3
+6 ELEMENT title
+7 ELEMENT p
+8 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter4
+9 ELEMENT title
+10 ELEMENT p
+11 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter5
+12 ELEMENT title
+13 ELEMENT p
diff --git a/libxml2/result/XPath/tests/idsimple b/libxml2/result/XPath/tests/idsimple
new file mode 100644
index 0000000..891b52e
--- /dev/null
+++ b/libxml2/result/XPath/tests/idsimple
@@ -0,0 +1,33 @@
+
+========================
+Expression: //*[@id="root"]
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE id
+ TEXT
+ content=root
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
+Expression: //*[@id="chapter2"]
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+
+========================
+Expression: //*[@id="chapter5"]
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter5
diff --git a/libxml2/result/XPath/tests/langsimple b/libxml2/result/XPath/tests/langsimple
new file mode 100644
index 0000000..d8d7afd
--- /dev/null
+++ b/libxml2/result/XPath/tests/langsimple
@@ -0,0 +1,60 @@
+
+========================
+Expression: //*[lang('en')]
+Object is a Node Set :
+Set contains 9 nodes:
+1 ELEMENT b
+ ATTRIBUTE lang
+ TEXT
+ content=en
+2 ELEMENT x
+3 ELEMENT x
+4 ELEMENT para
+ ATTRIBUTE lang
+ TEXT
+ content=en
+5 ELEMENT div
+ ATTRIBUTE lang
+ TEXT
+ content=en
+6 ELEMENT para
+7 ELEMENT para
+ ATTRIBUTE lang
+ TEXT
+ content=EN
+8 ELEMENT para
+ ATTRIBUTE lang
+ TEXT
+ content=en-us
+9 ELEMENT para
+ ATTRIBUTE lang
+ TEXT
+ content=EN-US
+
+========================
+Expression: //*[lang('en-us')]
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT para
+ ATTRIBUTE lang
+ TEXT
+ content=en-us
+2 ELEMENT para
+ ATTRIBUTE lang
+ TEXT
+ content=EN-US
+
+========================
+Expression: //*[lang('en-gb')]
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: //*[lang('fr')]
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: //*[lang('')]
+Object is a Node Set :
+Set contains 0 nodes:
diff --git a/libxml2/result/XPath/tests/mixedpat b/libxml2/result/XPath/tests/mixedpat
new file mode 100644
index 0000000..3be0c49
--- /dev/null
+++ b/libxml2/result/XPath/tests/mixedpat
@@ -0,0 +1,101 @@
+
+========================
+Expression: s
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=root
+
+========================
+Expression: s|p1/s
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=root
+2 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p1
+
+========================
+Expression: s|/root/p1/s
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=root
+2 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p1
+
+========================
+Expression: /root/p1/s|s
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=root
+2 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p1
+
+========================
+Expression: //s
+Object is a Node Set :
+Set contains 3 nodes:
+1 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=root
+2 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p1
+3 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p2
+
+========================
+Expression: //s|p1
+Object is a Node Set :
+Set contains 4 nodes:
+1 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=root
+2 ELEMENT p1
+3 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p1
+4 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p2
+
+========================
+Expression: p1|//s
+Object is a Node Set :
+Set contains 4 nodes:
+1 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=root
+2 ELEMENT p1
+3 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p1
+4 ELEMENT s
+ ATTRIBUTE p
+ TEXT
+ content=p2
diff --git a/libxml2/result/XPath/tests/nodespat b/libxml2/result/XPath/tests/nodespat
new file mode 100644
index 0000000..1efd87f
--- /dev/null
+++ b/libxml2/result/XPath/tests/nodespat
@@ -0,0 +1,94 @@
+
+========================
+Expression: /.
+Object is a Node Set :
+Set contains 1 nodes:
+1 /
+
+========================
+Expression: //.
+Object is a Node Set :
+Set contains 12 nodes:
+1 /
+2 ELEMENT root
+3 ELEMENT foo
+4 TEXT
+ content=txt
+5 COMMENT
+ content=hello
+6 CDATA_SECTION
+ content=data
+7 PI target
+ content=data
+8 ELEMENT bar
+9 TEXT
+ content=txt
+10 COMMENT
+ content=hello
+11 CDATA_SECTION
+ content=data
+12 PI target
+ content=data
+
+========================
+Expression: /root//.
+Object is a Node Set :
+Set contains 11 nodes:
+1 ELEMENT root
+2 ELEMENT foo
+3 TEXT
+ content=txt
+4 COMMENT
+ content=hello
+5 CDATA_SECTION
+ content=data
+6 PI target
+ content=data
+7 ELEMENT bar
+8 TEXT
+ content=txt
+9 COMMENT
+ content=hello
+10 CDATA_SECTION
+ content=data
+11 PI target
+ content=data
+
+========================
+Expression: //.//./././/.
+Object is a Node Set :
+Set contains 12 nodes:
+1 /
+2 ELEMENT root
+3 ELEMENT foo
+4 TEXT
+ content=txt
+5 COMMENT
+ content=hello
+6 CDATA_SECTION
+ content=data
+7 PI target
+ content=data
+8 ELEMENT bar
+9 TEXT
+ content=txt
+10 COMMENT
+ content=hello
+11 CDATA_SECTION
+ content=data
+12 PI target
+ content=data
+
+========================
+Expression: /root//././/bar//.
+Object is a Node Set :
+Set contains 5 nodes:
+1 ELEMENT bar
+2 TEXT
+ content=txt
+3 COMMENT
+ content=hello
+4 CDATA_SECTION
+ content=data
+5 PI target
+ content=data
diff --git a/libxml2/result/XPath/tests/nssimple b/libxml2/result/XPath/tests/nssimple
new file mode 100644
index 0000000..8f0dd0e
--- /dev/null
+++ b/libxml2/result/XPath/tests/nssimple
@@ -0,0 +1,24 @@
+
+========================
+Expression: /doc/elem/namespace::node()/..
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT elem
+ namespace ns2 href=nsuri2
+
+========================
+Expression: /doc/elem/namespace::*/self::node()[true()]
+Object is a Node Set :
+Set contains 3 nodes:
+1 namespace xml href=http://www.w3.org/XML/1998/namespace
+2 namespace ns1 href=nsuri1
+3 namespace ns2 href=nsuri2
+
+========================
+Expression: //*[namespace::ns1]
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT doc
+ namespace ns1 href=nsuri1
+2 ELEMENT elem
+ namespace ns2 href=nsuri2
diff --git a/libxml2/result/XPath/tests/simpleabbr b/libxml2/result/XPath/tests/simpleabbr
new file mode 100644
index 0000000..85da41a
--- /dev/null
+++ b/libxml2/result/XPath/tests/simpleabbr
@@ -0,0 +1,81 @@
+
+========================
+Expression: /EXAMPLE
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
+Expression: /EXAMPLE/head
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT head
+
+========================
+Expression: /EXAMPLE/chapter[1]
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+
+========================
+Expression: //p
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT p
+2 ELEMENT p
+
+========================
+Expression: //chapter/image
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: //p/text()
+Object is a Node Set :
+Set contains 2 nodes:
+1 TEXT
+ content=bla bla bla ...
+2 TEXT
+ content=...
+
+========================
+Expression: //p/text()[position()=1]
+Object is a Node Set :
+Set contains 2 nodes:
+1 TEXT
+ content=bla bla bla ...
+2 TEXT
+ content=...
+
+========================
+Expression: //p/text()[position()=last()]
+Object is a Node Set :
+Set contains 2 nodes:
+1 TEXT
+ content=bla bla bla ...
+2 TEXT
+ content=...
+
+========================
+Expression: (//p/text())[position()=1]
+Object is a Node Set :
+Set contains 1 nodes:
+1 TEXT
+ content=bla bla bla ...
+
+========================
+Expression: (//p/text())[position()=last()]
+Object is a Node Set :
+Set contains 1 nodes:
+1 TEXT
+ content=...
diff --git a/libxml2/result/XPath/tests/simplebase b/libxml2/result/XPath/tests/simplebase
new file mode 100644
index 0000000..3c32d17
--- /dev/null
+++ b/libxml2/result/XPath/tests/simplebase
@@ -0,0 +1,127 @@
+
+========================
+Expression: /child::*
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
+Expression: /child::EXAMPLE
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
+Expression: /child::EXAMPLE/child::head
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT head
+
+========================
+Expression: /child::EXAMPLE/child::*
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT head
+2 ELEMENT chapter
+
+========================
+Expression: /child::EXAMPLE/child::head/child::title
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT title
+
+========================
+Expression: /child::EXAMPLE/child::head/child::title/child::text()
+Object is a Node Set :
+Set contains 1 nodes:
+1 TEXT
+ content=Welcome to Gnome
+
+========================
+Expression: /child::EXAMPLE/child::head/node()
+Object is a Node Set :
+Set contains 3 nodes:
+1 TEXT
+ content=
+2 ELEMENT title
+3 TEXT
+ content=
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/self::node()
+Object is a Node Set :
+Set contains 1 nodes:
+1 ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/self::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/descendant-or-self::node()
+Object is a Node Set :
+Set contains 1 nodes:
+1 ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/descendant-or-self::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/ancestor-or-self::node()
+Object is a Node Set :
+Set contains 3 nodes:
+1 /
+2 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+3 ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/ancestor-or-self::*
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
+Expression: /descendant::title
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT title
+2 ELEMENT title
+
+========================
+Expression: /descendant::p/ancestor::chapter
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
diff --git a/libxml2/result/XPath/tests/usr1check b/libxml2/result/XPath/tests/usr1check
new file mode 100644
index 0000000..0308991
--- /dev/null
+++ b/libxml2/result/XPath/tests/usr1check
@@ -0,0 +1,12 @@
+
+========================
+Expression: //ITEM[1]
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT ITEM
+ ATTRIBUTE monto
+ TEXT
+ content=50.12
+ ATTRIBUTE divisa
+ TEXT
+ content=DOL
diff --git a/libxml2/result/XPath/tests/vidbase b/libxml2/result/XPath/tests/vidbase
new file mode 100644
index 0000000..3c7b62f
--- /dev/null
+++ b/libxml2/result/XPath/tests/vidbase
@@ -0,0 +1,42 @@
+
+========================
+Expression: id('chapter1')
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+
+========================
+Expression: id('chapter3')
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter3
+
+========================
+Expression: id('chapter1')/p
+Object is a Node Set :
+Set contains 4 nodes:
+1 ELEMENT p
+2 ELEMENT p
+3 ELEMENT p
+4 ELEMENT p
+
+========================
+Expression: id('chapter1')//p
+Object is a Node Set :
+Set contains 4 nodes:
+1 ELEMENT p
+2 ELEMENT p
+3 ELEMENT p
+4 ELEMENT p
+
+========================
+Expression: id('chapter1')/p[1]
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT p
diff --git a/libxml2/result/XPath/xptr/chapterschildseq b/libxml2/result/XPath/xptr/chapterschildseq
new file mode 100644
index 0000000..396bcac
--- /dev/null
+++ b/libxml2/result/XPath/xptr/chapterschildseq
@@ -0,0 +1,53 @@
+
+========================
+Expression: /1/2/3
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: element(/1/2/3)
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: element(foo)element(/1/2/3)
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: element(/1/2/3)element(foo)
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: chapter1/3
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: element(chapter1/3)
+Object is empty (NULL)
+
+========================
+Expression: element(foo)element(chapter1/3)
+Object is empty (NULL)
+
+========================
+Expression: element(chapter1/3)element(foo)
+Object is empty (NULL)
diff --git a/libxml2/result/XPath/xptr/chaptersparts b/libxml2/result/XPath/xptr/chaptersparts
new file mode 100644
index 0000000..70b561b
--- /dev/null
+++ b/libxml2/result/XPath/xptr/chaptersparts
@@ -0,0 +1,44 @@
+
+========================
+Expression: xpointer(//chapitre[2])
+Object is empty (NULL)
+
+========================
+Expression: xpointer(//chapter[2])
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+
+========================
+Expression: xpointer(//chapitre[2])xpointer(//chapter[2])
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+
+========================
+Expression: xpointer(id("chapter1"))
+Object is empty (NULL)
+
+========================
+Expression: xpointer(//*[@id="chapter1"])
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+
+========================
+Expression: xpointer(id("chapter1"))xpointer(//*[@id="chapter1"])
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
diff --git a/libxml2/result/XPath/xptr/chaptersrange b/libxml2/result/XPath/xptr/chaptersrange
new file mode 100644
index 0000000..c1b9cde
--- /dev/null
+++ b/libxml2/result/XPath/xptr/chaptersrange
@@ -0,0 +1,64 @@
+
+========================
+Expression: xpointer(//chapter[position() = 2]/range-to(following::chapter[1]))
+Object is a Location Set:
+1 : Object is a range :
+ From node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+ To node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter3
+
+
+========================
+Expression: xpointer(//chapter[position() <= 2]/range-to(following::chapter[1]))
+Object is a Location Set:
+1 : Object is a range :
+ From node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+ To node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+
+2 : Object is a range :
+ From node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+ To node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter3
+
+
+========================
+Expression: xpointer(//chapter[position() = last()]/range-to(following::chapter[1]))
+Object is empty (NULL)
+
+========================
+Expression: xpointer(//chapter[position() = 3]/range-to(/.//chapter[position() = 1]))
+Object is a Location Set:
+1 : Object is a range :
+ From node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+ To node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter3
+
diff --git a/libxml2/result/XPath/xptr/strpoint b/libxml2/result/XPath/xptr/strpoint
new file mode 100644
index 0000000..d6ecab3
--- /dev/null
+++ b/libxml2/result/XPath/xptr/strpoint
@@ -0,0 +1,75 @@
+
+========================
+Expression: xpointer(start-point(string-range(//p,'multiple')))
+Object is a Location Set:
+1 : Object is a point : index 1 in node TEXT
+ content=multiple tests
+
+
+========================
+Expression: xpointer(end-point(string-range(//p,'multiple')))
+Object is a Location Set:
+1 : Object is a point : index 8 in node TEXT
+ content=multiple tests
+
+
+========================
+Expression: xpointer(start-point(string-range(//p,'test')))
+Object is a Location Set:
+1 : Object is a point : index 10 in node TEXT
+ content=a simple test
+
+2 : Object is a point : index 10 in node TEXT
+ content=multiple tests
+
+3 : Object is a point : index 7 in node TEXT
+ content=anced test
+
+
+========================
+Expression: xpointer(end-point(string-range(//p,'test')))
+Object is a Location Set:
+1 : Object is a point : index 13 in node TEXT
+ content=a simple test
+
+2 : Object is a point : index 13 in node TEXT
+ content=multiple tests
+
+3 : Object is a point : index 10 in node TEXT
+ content=anced test
+
+
+========================
+Expression: xpointer(start-point(string-range(//*,'multiple',1,0)))
+Object is a Location Set:
+1 : Object is a point : index 1 in node TEXT
+ content=multiple tests
+
+
+========================
+Expression: xpointer(end-point(string-range(//*,'multiple',1,0)))
+Object is a Location Set:
+1 : Object is a point : index 1 in node TEXT
+ content=multiple tests
+
+
+========================
+Expression: xpointer(start-point(string-range(//*,'multiple',1,1)))
+Object is a Location Set:
+1 : Object is a point : index 1 in node TEXT
+ content=multiple tests
+
+
+========================
+Expression: xpointer(end-point(string-range(//*,'multiple',1,1)))
+Object is a Location Set:
+1 : Object is a point : index 2 in node TEXT
+ content=multiple tests
+
+
+========================
+Expression: xpointer(start-point(string-range(//p,'test'))[1])
+Object is a Location Set:
+1 : Object is a point : index 10 in node TEXT
+ content=a simple test
+
diff --git a/libxml2/result/XPath/xptr/strrange b/libxml2/result/XPath/xptr/strrange
new file mode 100644
index 0000000..c14ed91
--- /dev/null
+++ b/libxml2/result/XPath/xptr/strrange
@@ -0,0 +1,96 @@
+
+========================
+Expression: xpointer(string-range(//p, 'simple'))
+Object is a Location Set:
+1 : Object is a range :
+ From index 3 in node
+ TEXT
+ content=a simple test
+ To index 8 in node
+ TEXT
+ content=a simple test
+
+
+========================
+Expression: xpointer(string-range(//p, 'test'))
+Object is a Location Set:
+1 : Object is a range :
+ From index 10 in node
+ TEXT
+ content=a simple test
+ To index 13 in node
+ TEXT
+ content=a simple test
+
+2 : Object is a range :
+ From index 10 in node
+ TEXT
+ content=multiple tests
+ To index 13 in node
+ TEXT
+ content=multiple tests
+
+3 : Object is a range :
+ From index 7 in node
+ TEXT
+ content=anced test
+ To index 10 in node
+ TEXT
+ content=anced test
+
+
+========================
+Expression: xpointer(string-range(//p, 'difficult'))
+Object is a Location Set:
+1 : Object is a range :
+ From index 3 in node
+ TEXT
+ content=a diff
+ To index 4 in node
+ TEXT
+ content=cult one
+
+
+========================
+Expression: xpointer(string-range(//p, 'spanning'))
+Object is a Location Set:
+1 : Object is a range :
+ From index 3 in node
+ TEXT
+ content=a span
+ To index 3 in node
+ TEXT
+ content=ing one
+
+
+========================
+Expression: xpointer(string-range(//p, 'unbalanced'))
+Object is a Location Set:
+1 : Object is a range :
+ From index 8 in node
+ TEXT
+ content=and an unbal
+ To index 5 in node
+ TEXT
+ content=anced test
+
+
+========================
+Expression: xpointer(string-range(//seq, ''))
+Object is a Location Set:
+1 : Object is a collapsed range :
+ index 1 in node
+ TEXT
+ content=123
+2 : Object is a collapsed range :
+ index 2 in node
+ TEXT
+ content=123
+3 : Object is a collapsed range :
+ index 3 in node
+ TEXT
+ content=123
+4 : Object is a collapsed range :
+ index 4 in node
+ TEXT
+ content=123
diff --git a/libxml2/result/XPath/xptr/strrange2 b/libxml2/result/XPath/xptr/strrange2
new file mode 100644
index 0000000..ea6ee45
--- /dev/null
+++ b/libxml2/result/XPath/xptr/strrange2
@@ -0,0 +1,64 @@
+
+========================
+Expression: xpointer(string-range(//p, 'test', 2))
+Object is a Location Set:
+1 : Object is a range :
+ From index 11 in node
+ TEXT
+ content=a simple test
+ To index 13 in node
+ TEXT
+ content=a simple test
+
+2 : Object is a range :
+ From index 11 in node
+ TEXT
+ content=multiple tests
+ To index 13 in node
+ TEXT
+ content=multiple tests
+
+3 : Object is a range :
+ From index 8 in node
+ TEXT
+ content=anced test
+ To index 10 in node
+ TEXT
+ content=anced test
+
+
+========================
+Expression: xpointer(string-range(//p, 'test', 2, 2))
+Object is a Location Set:
+1 : Object is a range :
+ From index 11 in node
+ TEXT
+ content=a simple test
+ To index 12 in node
+ TEXT
+ content=a simple test
+
+2 : Object is a range :
+ From index 11 in node
+ TEXT
+ content=multiple tests
+ To index 12 in node
+ TEXT
+ content=multiple tests
+
+3 : Object is a range :
+ From index 8 in node
+ TEXT
+ content=anced test
+ To index 9 in node
+ TEXT
+ content=anced test
+
+
+========================
+Expression: xpointer(string-range(//p, 'difficult', 1, 0))
+Object is a Location Set:
+1 : Object is a collapsed range :
+ index 3 in node
+ TEXT
+ content=a diff
diff --git a/libxml2/result/XPath/xptr/strrange3 b/libxml2/result/XPath/xptr/strrange3
new file mode 100644
index 0000000..6d3114a
--- /dev/null
+++ b/libxml2/result/XPath/xptr/strrange3
@@ -0,0 +1,48 @@
+
+========================
+Expression: xpointer(string-range(//p, 'test', 1, 0))
+Object is a Location Set:
+1 : Object is a collapsed range :
+ index 10 in node
+ TEXT
+ content=a simple test
+2 : Object is a collapsed range :
+ index 10 in node
+ TEXT
+ content=multiple tests
+3 : Object is a collapsed range :
+ index 7 in node
+ TEXT
+ content=anced test
+
+========================
+Expression: xpointer(string-range(//*, 'test', 1, 0))
+Object is a Location Set:
+1 : Object is a collapsed range :
+ index 10 in node
+ TEXT
+ content=a simple test
+2 : Object is a collapsed range :
+ index 10 in node
+ TEXT
+ content=multiple tests
+3 : Object is a collapsed range :
+ index 7 in node
+ TEXT
+ content=anced test
+
+========================
+Expression: xpointer(string-range(//p, 'test', 1, 0)[2])
+Object is a Location Set:
+1 : Object is a collapsed range :
+ index 10 in node
+ TEXT
+ content=multiple tests
+
+========================
+Expression: xpointer(string-range(//*, 'test', 1, 0)[2])
+Object is a Location Set:
+1 : Object is a collapsed range :
+ index 10 in node
+ TEXT
+ content=multiple tests
diff --git a/libxml2/result/XPath/xptr/vidbase b/libxml2/result/XPath/xptr/vidbase
new file mode 100644
index 0000000..8b9e92d
--- /dev/null
+++ b/libxml2/result/XPath/xptr/vidbase
@@ -0,0 +1,19 @@
+
+========================
+Expression: xpointer(id('chapter1')/p)
+Object is a Node Set :
+Set contains 4 nodes:
+1 ELEMENT p
+2 ELEMENT p
+3 ELEMENT p
+4 ELEMENT p
+
+========================
+Expression: xpointer(id('chapter1')/p[1]/range-to(following-sibling::p[2]))
+Object is a Location Set:
+1 : Object is a range :
+ From node
+ ELEMENT p
+ To node
+ ELEMENT p
+
diff --git a/libxml2/result/XPath/xptr/vidchildseq b/libxml2/result/XPath/xptr/vidchildseq
new file mode 100644
index 0000000..eb8c5f7
--- /dev/null
+++ b/libxml2/result/XPath/xptr/vidchildseq
@@ -0,0 +1,36 @@
+
+========================
+Expression: /1/2/3
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: element(/1/2/3)
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: chapter1/3
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
+
+========================
+Expression: element(chapter1/3)
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT image
+ ATTRIBUTE href
+ TEXT
+ content=linus.gif
diff --git a/libxml2/result/XPath/xptr/vidparts b/libxml2/result/XPath/xptr/vidparts
new file mode 100644
index 0000000..bd5bd3c
--- /dev/null
+++ b/libxml2/result/XPath/xptr/vidparts
@@ -0,0 +1,27 @@
+
+========================
+Expression: xpointer(id("chapter1"))
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+
+========================
+Expression: xpointer(//*[@id="chapter1"])
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1
+
+========================
+Expression: xpointer(id("chapter1"))xpointer(//*[@id="chapter1"])
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter1