more testing on the Relax-NG front, cleaning up the regression tests

* check-relaxng-test-suite.py relaxng.c: more testing on the
  Relax-NG front, cleaning up the regression tests failures
  current state and I forgot support for "mixed":
  found 373 test schemas: 280 success 93 failures
  found 529 test instances: 401 success 68 failures
* tree.c include/libxml/tree.h xmlschemastypes.c: finished and
  moved the Name, NCName and QName validation routine in tree.c
* uri.c: fixed handling of URI ending up with #, i.e. having
  an empty fragment ID.
* result/relaxng/*: updated the results
Daniel
diff --git a/uri.c b/uri.c
index 3ad9f57..c3fa5e7 100644
--- a/uri.c
+++ b/uri.c
@@ -803,7 +803,7 @@
     if (str == NULL)
 	return(NULL);
     if (len <= 0) len = strlen(str);
-    if (len <= 0) return(NULL);
+    if (len < 0) return(NULL);
 
     if (target == NULL) {
 	ret = (char *) xmlMalloc(len + 1);