improved the script accordingly to the XInclude regression tests updates

* check-xinclude-test-suite.py: improved the script accordingly
  to the XInclude regression tests updates
* xpointer.c: Implemented XPointer element() Scheme W3C PR of 13
  November 2002
* result/XPath/xptr/chapterschildseq result/XPath/xptr/vidchildseq
  test/XPath/xptr/chapterschildseq test/XPath/xptr/vidchildseq:
  augmented the Xpointer testsuite for the element() scheme
Daniel
diff --git a/check-xinclude-test-suite.py b/check-xinclude-test-suite.py
index 6a1d3ca..8324abd 100755
--- a/check-xinclude-test-suite.py
+++ b/check-xinclude-test-suite.py
@@ -9,11 +9,14 @@
 #
 # the testsuite description
 #
-CONF="xinclude-test-suite/testdescr.xml"
+DIR="xinclude-test-suite"
+CONF="testdescr.xml"
 LOG="check-xinclude-test-suite.log"
 
 log = open(LOG, "w")
 
+os.chdir(DIR)
+
 test_nr = 0
 test_succeed = 0
 test_failed = 0
@@ -60,12 +63,16 @@
     fatal_error = 0
     uri = test.prop('href')
     id = test.prop('id')
+    type = test.prop('type')
     if uri == None:
         print "Test without ID:", uri
 	return -1
     if id == None:
         print "Test without URI:", id
 	return -1
+    if type == None:
+        print "Test without URI:", id
+	return -1
     if basedir != None:
 	URI = basedir + "/" + uri
     else:
@@ -74,28 +81,25 @@
         print "Test %s missing: base %s uri %s" % (URI, basedir, uri)
 	return -1
 
-    output = test.xpathEval('string(output)')
     expected = None
-    if output == 'No output file.':
-        output = None
-    if output == '':
-        output = None
-    if output != None:
-        if basedir != None:
-	    output = basedir + "/" + output
-	if os.access(output, os.R_OK) == 0:
-	    print "Result for %s missing: %s" % (id, output)
+    if type != 'error':
+	output = test.xpathEval('string(output)')
+	if output == 'No output file.':
 	    output = None
-	else:
-	    try:
-		f = open(output)
-		expected = f.read()
-	    except:
-	        print "Result for %s unreadable: %s" % (id, output)
-
-    description = test.xpathEval('string(description)')
-    if string.find(description, 'fatal error') != -1:
-        fatal_error = 1
+	if output == '':
+	    output = None
+	if output != None:
+	    if basedir != None:
+		output = basedir + "/" + output
+	    if os.access(output, os.R_OK) == 0:
+		print "Result for %s missing: %s" % (id, output)
+		output = None
+	    else:
+		try:
+		    f = open(output)
+		    expected = f.read()
+		except:
+		    print "Result for %s unreadable: %s" % (id, output)
 
     try:
         # print "testing %s" % (URI)
@@ -104,10 +108,15 @@
         doc = None
     if doc != None:
         res = doc.xincludeProcess()
-	if expected != None and fatal_error != 0:
+	if res >= 0 and expected != None:
 	    result = doc.serialize()
 	    if result != expected:
 	        print "Result for %s differs" % (id)
+		print '----'
+		print result
+		print '----'
+		print expected
+		print '----'
 
 	doc.freeDoc()
     else:
@@ -117,7 +126,7 @@
     
 
     test_nr = test_nr + 1
-    if fatal_error == 0 and output != None:
+    if type == 'success':
 	if res > 0:
 	    test_succeed = test_succeed + 1
 	elif res == 0:
@@ -126,7 +135,7 @@
 	elif res < 0:
 	    test_error = test_error + 1
 	    print "Test %s: failed valid XInclude processing" % (id)
-    else:
+    elif type == 'error':
 	if res > 0:
 	    test_error = test_error + 1
 	    print "Test %s: failed to detect invalid XInclude processing" % (id)
@@ -135,6 +144,11 @@
 	    print "Test %s: Invalid but no substitution done" % (id)
 	elif res < 0:
 	    test_succeed = test_succeed + 1
+    elif type == 'optional':
+	if res > 0:
+	    test_succeed = test_succeed + 1
+	else:
+	    print "Test %s: failed optional test" % (id)
 
     # Log the ontext
     if res != 1: