added two xmlReader examples cleaned up some bugs in the process Daniel

* doc/examples/*: added two xmlReader examples
* xmlreader.c: cleaned up some bugs in the process
Daniel
diff --git a/xmlreader.c b/xmlreader.c
index d5dd377..6c1518a 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -809,7 +809,7 @@
 		          (const char *) &inbuf->content[reader->cur],
 			  CHUNK_SIZE, 0);
 	    reader->cur += CHUNK_SIZE;
-	    if (val != 0)
+	    if ((val != 0) && (reader->ctxt->wellFormed == 0))
 		return(-1);
 	} else {
 	    s = inbuf->use - reader->cur;
@@ -817,7 +817,7 @@
 		          (const char *) &inbuf->content[reader->cur],
 			  s, 0);
 	    reader->cur += s;
-	    if (val != 0)
+	    if ((val != 0) && (reader->ctxt->wellFormed == 0))
 		return(-1);
 	    break;
 	}
@@ -848,7 +848,8 @@
 		    s, 1);
 	    reader->cur = inbuf->use;
 	    reader->mode = XML_TEXTREADER_DONE;
-	    if (val != 0) return(-1);
+	    if ((val != 0) && (reader->ctxt->wellFormed == 0))
+	        return(-1);
 	}
     }
     reader->state = oldstate;
@@ -3864,8 +3865,7 @@
     if (reader->validate == XML_TEXTREADER_VALIDATE_RNG)
         return(reader->rngValidErrors == 0);
 #endif
-    if ((reader->validate == XML_TEXTREADER_VALIDATE_DTD) &&
-        (reader->ctxt != NULL))
+    if ((reader->ctxt != NULL) && (reader->ctxt->validate == 1))
 	return(reader->ctxt->valid);
     return(0);
 }