diff --git a/parserInternals.c b/parserInternals.c index 6c6c82f8..be751008 100644 --- a/parserInternals.c +++ b/parserInternals.c @@ -180,12 +180,12 @@ xmlCtxtErrIO(xmlParserCtxtPtr ctxt, int code, const char *uri) return; /* - * Don't report a well-formedness error if an external entity could - * not be found. We assume that inputNr is zero for the document - * entity which is somewhat fragile. + * Only report a warning if a file could not be found. This should + * only be done for external entities, but the external entity loader + * of xsltproc can try multiple paths and assumes that ENOENT doesn't + * raise an error and aborts parsing. */ - if ((ctxt->inputNr > 0) && - ((code == XML_IO_ENOENT) || + if (((code == XML_IO_ENOENT) || (code == XML_IO_NETWORK_ATTEMPT) || (code == XML_IO_UNKNOWN))) { if (ctxt->validate == 0) diff --git a/python/tests/error.py b/python/tests/error.py index 6c8da999..6668b729 100755 --- a/python/tests/error.py +++ b/python/tests/error.py @@ -10,7 +10,7 @@ import libxml2 # Memory debug specific libxml2.debugMemory(1) -expect='--> I/O --> error : --> failed to load "missing.xml": No such file or directory\n' +expect='--> I/O --> warning : --> failed to load "missing.xml": No such file or directory\n' err="" def callback(ctx, str): global err diff --git a/python/tests/input_callback.py b/python/tests/input_callback.py index 35a51695..b24c5c85 100755 --- a/python/tests/input_callback.py +++ b/python/tests/input_callback.py @@ -90,7 +90,7 @@ run_test(desc="Loading entity without custom callback", docpath=startURL, catalog=None, exp_status="not loaded", exp_err=[ (-1, "I/O "), - (-1, "error : "), + (-1, "warning : "), (-1, "failed to load \"py://strings/xml/sample.xml\": No such file or directory\n") ]) @@ -121,7 +121,7 @@ run_test(desc="Retry loading document after unregistering callback", docpath=startURL, catalog=catURL, exp_status="not loaded", exp_err=[ (-1, "I/O "), - (-1, "error : "), + (-1, "warning : "), (-1, "failed to load \"py://strings/xml/sample.xml\": No such file or directory\n") ]) @@ -141,7 +141,7 @@ run_test(desc="Loading using standard i/o after unregistering all callbacks", docpath="tst.xml", catalog=None, exp_status="not loaded", exp_err=[ (-1, "I/O "), - (-1, "error : "), + (-1, "warning : "), (-1, "failed to load \"tst.xml\": No such file or directory\n") ]) diff --git a/python/tests/tstLastError.py b/python/tests/tstLastError.py index 35f5eb3d..a0799950 100755 --- a/python/tests/tstLastError.py +++ b/python/tests/tstLastError.py @@ -60,7 +60,7 @@ class TestCase(unittest.TestCase): domain=libxml2.XML_FROM_IO, code=libxml2.XML_IO_ENOENT, message='failed to load "dummy.xml": No such file or directory\n', - level=libxml2.XML_ERR_FATAL, + level=libxml2.XML_ERR_WARNING, file=None, line=0) diff --git a/result/XInclude/fallback.xml.err b/result/XInclude/fallback.xml.err index fa6b9e1a..3239da07 100644 --- a/result/XInclude/fallback.xml.err +++ b/result/XInclude/fallback.xml.err @@ -1 +1 @@ -I/O error : failed to load "test/XInclude/docs/something.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/something.xml": No such file or directory diff --git a/result/XInclude/fallback2.xml.err b/result/XInclude/fallback2.xml.err index d405ac20..288ed212 100644 --- a/result/XInclude/fallback2.xml.err +++ b/result/XInclude/fallback2.xml.err @@ -1,2 +1,2 @@ -I/O error : failed to load "test/XInclude/docs/b.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/c.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/b.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/c.xml": No such file or directory diff --git a/result/XInclude/fallback4.xml.err b/result/XInclude/fallback4.xml.err index e27a7e6f..25156776 100644 --- a/result/XInclude/fallback4.xml.err +++ b/result/XInclude/fallback4.xml.err @@ -1 +1 @@ -I/O error : failed to load "test/XInclude/docs/c.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/c.xml": No such file or directory diff --git a/result/XInclude/fallback5.xml.err b/result/XInclude/fallback5.xml.err index 4ec1892d..f30bc697 100644 --- a/result/XInclude/fallback5.xml.err +++ b/result/XInclude/fallback5.xml.err @@ -1,16 +1,16 @@ -I/O error : failed to load "test/XInclude/docs/a01.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a02.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a03.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a04.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a05.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a06.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a07.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a08.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a09.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a10.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a11.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a12.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a13.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a14.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a15.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/a16.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a01.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a02.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a03.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a04.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a05.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a06.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a07.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a08.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a09.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a10.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a11.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a12.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a13.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a14.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a15.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/a16.xml": No such file or directory diff --git a/result/XInclude/fallback6.xml.err b/result/XInclude/fallback6.xml.err index d405ac20..288ed212 100644 --- a/result/XInclude/fallback6.xml.err +++ b/result/XInclude/fallback6.xml.err @@ -1,2 +1,2 @@ -I/O error : failed to load "test/XInclude/docs/b.xml": No such file or directory -I/O error : failed to load "test/XInclude/docs/c.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/b.xml": No such file or directory +I/O warning : failed to load "test/XInclude/docs/c.xml": No such file or directory diff --git a/result/XInclude/fallback7.xml.err b/result/XInclude/fallback7.xml.err index 3861279f..5acd3ccc 100644 --- a/result/XInclude/fallback7.xml.err +++ b/result/XInclude/fallback7.xml.err @@ -1 +1 @@ -I/O error : failed to load "test/XInclude/without-reader/404.xml": No such file or directory +I/O warning : failed to load "test/XInclude/without-reader/404.xml": No such file or directory diff --git a/result/XInclude/ns1.xml.err b/result/XInclude/ns1.xml.err index ef202341..d750bc3d 100644 --- a/result/XInclude/ns1.xml.err +++ b/result/XInclude/ns1.xml.err @@ -1 +1 @@ -I/O error : failed to load "test/XInclude/without-reader/b.xml": No such file or directory +I/O warning : failed to load "test/XInclude/without-reader/b.xml": No such file or directory diff --git a/result/schemas/import1_0_0.err b/result/schemas/import1_0_0.err index aafb6107..f780244a 100644 --- a/result/schemas/import1_0_0.err +++ b/result/schemas/import1_0_0.err @@ -1,4 +1,4 @@ -I/O error : failed to load "test/schemas/import1_0bc.imp": No such file or directory +I/O warning : failed to load "test/schemas/import1_0bc.imp": No such file or directory ./test/schemas/import1_0.xsd:11: element import: Schemas parser warning : Element '{http://www.w3.org/2001/XMLSchema}import': Failed to locate a schema at location 'test/schemas/import1_0bc.imp'. Skipping the import. ./test/schemas/import1_0.xsd:16: element import: Schemas parser warning : Element '{http://www.w3.org/2001/XMLSchema}import': Skipping import of schema located at 'test/schemas/import1_0b.imp' for the namespace 'http://BAR', since this namespace was already imported with the schema located at 'test/schemas/import1_0.imp'. ./test/schemas/import1_0.xsd:26: element element: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'ref': The QName value '{http://BAR}bar.B' does not resolve to a(n) element declaration.