fixed a very serious (looping) validation bug Daniel

* parser.c valid.c result/valid/rss.xml result/valid/rss.xml.err:
  fixed a very serious (looping) validation bug
Daniel
diff --git a/valid.c b/valid.c
index a8b4b4c..c894ff6 100644
--- a/valid.c
+++ b/valid.c
@@ -199,6 +199,11 @@
 	case XML_HTML_DOCUMENT_NODE:
 	    xmlGenericError(xmlGenericErrorContext, "?html? ");
 	    break;
+#ifdef LIBXML_DOCB_ENABLED
+	case XML_DOCB_DOCUMENT_NODE:
+	    xmlGenericError(xmlGenericErrorContext, "?docb? ");
+	    break;
+#endif
 	case XML_DTD_NODE:
 	    xmlGenericError(xmlGenericErrorContext, "?dtd? ");
 	    break;
@@ -3395,6 +3400,8 @@
      * of handling epsilon transition in NFAs.
      */
     if ((CONT != NULL) &&
+	((CONT->parent == NULL) ||
+	 (CONT->parent->type != XML_ELEMENT_CONTENT_OR)) &&
 	((CONT->ocur == XML_ELEMENT_CONTENT_MULT) ||
 	 (CONT->ocur == XML_ELEMENT_CONTENT_OPT) ||
 	 ((CONT->ocur == XML_ELEMENT_CONTENT_PLUS) && (OCCURENCE)))) {
@@ -3600,7 +3607,7 @@
 			break;
 		    }
 		    DEBUG_VALID_MSG("Mult branch succeeded, continuing");
-		    SET_OCCURENCE;
+		    /* SET_OCCURENCE; */
 		    goto cont;
 	    }
 	}