diff --git a/SAX2.c b/SAX2.c index a24abc88..3eea39aa 100644 --- a/SAX2.c +++ b/SAX2.c @@ -2202,7 +2202,7 @@ xmlSAX2StartElementNs(void *ctx, (ctxt->myDoc->intSubset->elements == NULL) && (ctxt->myDoc->intSubset->attributes == NULL) && (ctxt->myDoc->intSubset->entities == NULL)))) { - xmlErrValid(ctxt, XML_ERR_NO_DTD, + xmlErrValid(ctxt, XML_DTD_NO_DTD, "Validation failed: no DTD found !", NULL, NULL); ctxt->validate = 0; } diff --git a/parser.c b/parser.c index 28b0d809..19f1217b 100644 --- a/parser.c +++ b/parser.c @@ -11633,7 +11633,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { "PP: Parsing internal subset\n"); #endif ctxt->inSubset = 1; - ctxt->progressive = 1; + ctxt->progressive = 0; ctxt->checkIndex = 0; xmlParseDocTypeDecl(ctxt); if (RAW == '[') { @@ -12219,7 +12219,10 @@ xmldecl_done: } ctxt->instate = XML_PARSER_EOF; } - return((xmlParserErrors) ctxt->errNo); + if (ctxt->wellFormed == 0) + return((xmlParserErrors) ctxt->errNo); + else + return(0); } /************************************************************************