give more infos fix a bug reported by Sebastian Rahtz and REF->DEF in

* check-xsddata-test-suite.py: give more infos
* relaxng.c: fix a bug reported by Sebastian Rahtz and
  REF->DEF in attribute values.
Daniel
diff --git a/ChangeLog b/ChangeLog
index 522015d..0fbc0eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu Feb 27 22:28:40 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+	* check-xsddata-test-suite.py: give more infos
+	* relaxng.c: fix a bug reported by Sebastian Rahtz and
+	  REF->DEF in attribute values.
+
 Thu Feb 27 21:09:32 CET 2003 Daniel Veillard <daniel@veillard.com>
 
 	* check-xsddata-test-suite.py test/xsdtest/xsdtest.xml
diff --git a/check-xsddata-test-suite.py b/check-xsddata-test-suite.py
index b0c63e1..ffe944a 100755
--- a/check-xsddata-test-suite.py
+++ b/check-xsddata-test-suite.py
@@ -293,13 +293,12 @@
 def handle_testSuite(node, level = 0):
     global nb_schemas_tests, nb_schemas_success, nb_schemas_failed
     global nb_instances_tests, nb_instances_success, nb_instances_failed
-    if level >= 1:
-	old_schemas_tests = nb_schemas_tests
-	old_schemas_success = nb_schemas_success
-	old_schemas_failed = nb_schemas_failed
-	old_instances_tests = nb_instances_tests
-	old_instances_success = nb_instances_success
-	old_instances_failed = nb_instances_failed
+    old_schemas_tests = nb_schemas_tests
+    old_schemas_success = nb_schemas_success
+    old_schemas_failed = nb_schemas_failed
+    old_instances_tests = nb_instances_tests
+    old_instances_success = nb_instances_success
+    old_instances_failed = nb_instances_failed
 
     docs = node.xpathEval('documentation')
     authors = node.xpathEval('author')
@@ -312,33 +311,22 @@
 	    for author in authors:
 	        msg = msg + author.content + " "
 	print msg
-    sections = node.xpathEval('section')
-    if sections != [] and level <= 0:
-        msg = ""
-        for section in sections:
-	    msg = msg + section.content + " "
-        print "Tests for section %s" % (msg)
     for test in node.xpathEval('testCase'):
         handle_testCase(test)
     for test in node.xpathEval('testSuite'):
         handle_testSuite(test, level + 1)
 	        
-
-    if level >= 1 and sections != []:
-        msg = ""
-        for section in sections:
-	    msg = msg + section.content + " "
-        print "Result of tests for section %s" % (msg)
-        if nb_schemas_tests != old_schemas_tests:
-	    print "found %d test schemas: %d success %d failures" % (
-		  nb_schemas_tests - old_schemas_tests,
-		  nb_schemas_success - old_schemas_success,
-		  nb_schemas_failed - old_schemas_failed)
-	if nb_instances_tests != old_instances_tests:
-	    print "found %d test instances: %d success %d failures" % (
-		  nb_instances_tests - old_instances_tests,
-		  nb_instances_success - old_instances_success,
-		  nb_instances_failed - old_instances_failed)
+    print "Result of tests for %s" % (node.xpathEval('string(documentation)'))
+    if nb_schemas_tests != old_schemas_tests:
+	print "found %d test schemas: %d success %d failures" % (
+	      nb_schemas_tests - old_schemas_tests,
+	      nb_schemas_success - old_schemas_success,
+	      nb_schemas_failed - old_schemas_failed)
+    if nb_instances_tests != old_instances_tests:
+	print "found %d test instances: %d success %d failures" % (
+	      nb_instances_tests - old_instances_tests,
+	      nb_instances_success - old_instances_success,
+	      nb_instances_failed - old_instances_failed)
 #
 # Parse the conf file
 #
diff --git a/relaxng.c b/relaxng.c
index ff11f3e..018c1c7 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -4370,12 +4370,6 @@
 		"Found forbidden pattern list//ref\n");
 		ctxt->nbErrors++;
 	    }
-	    if (flags & XML_RELAXNG_IN_ATTRIBUTE) {
-		if (ctxt->error != NULL)
-		    ctxt->error(ctxt->userData,
-			"Found forbidden pattern attribute//ref\n");
-		ctxt->nbErrors++;
-	    }
 	    if (flags & XML_RELAXNG_IN_DATAEXCEPT) {
 		if (ctxt->error != NULL)
 		    ctxt->error(ctxt->userData,
@@ -4415,6 +4409,12 @@
 		"Found forbidden pattern attribute//element(ref)\n");
 		ctxt->nbErrors++;
 	    }
+	    if (flags & XML_RELAXNG_IN_ATTRIBUTE) {
+		if (ctxt->error != NULL)
+		    ctxt->error(ctxt->userData,
+			"Found forbidden pattern attribute//element(ref)\n");
+		ctxt->nbErrors++;
+	    }
 	    /*
 	     * reset since in the simple form elements are only child
 	     * of grammar/define
@@ -6258,6 +6258,7 @@
 	    }
 	    break;
 	}
+        case XML_RELAXNG_DEF:
         case XML_RELAXNG_GROUP: {
 	    xmlRelaxNGDefinePtr list;
 
@@ -6273,6 +6274,10 @@
 	    }
 	    break;
 	}
+        case XML_RELAXNG_REF:
+        case XML_RELAXNG_PARENTREF:
+	    ret = xmlRelaxNGValidateValue(ctxt, define->content);
+	    break;
 	default:
 	    TODO
 	    ret = -1;