Re: [xml] xmlTextReader and parsing namespace with relative URI



Hi,

  Thanks, for your answer. The patch solved my issue.

Regards,
Frank

Le 12/12/2012 08:50, Daniel Veillard a écrit :
On Thu, Dec 06, 2012 at 03:39:43PM +0100, Frank Gross wrote:
Hi,

   Sorry if I was not clear enough. I wanted to know if there is an
option to allow relative namespaces to be handled silently by
libxml2. For instance, if I apply following patch, it solves my
issue because then xmlTextReader doesn't return with an malformed
error due to the relative namespace URI.

Index: xmlreader.c
===================================================================
--- xmlreader.c    (revision 122919)
+++ xmlreader.c    (working copy)
@@ -855,7 +855,7 @@
                    (const char *) &inbuf->content[reader->cur],
                CHUNK_SIZE, 0);
          reader->cur += CHUNK_SIZE;
-        if (val != 0)
+        if ( (val != 0) && (val != XML_WAR_NS_URI_RELATIVE) )
          reader->ctxt->wellFormed = 0;
          if (reader->ctxt->wellFormed == 0)
          break;

   What you really want is the reader to not break on namespace
errors or warning, only if a well-formedness error was found,
which was fixed in the last chunk of that patch:

http://git.gnome.org/browse/libxml2/commit/?id=6c91aa384f48ff6d406553a6dd47fd556c1ef2e6

diff --git a/parser.c b/parser.c
index 28b0d80..19f1217 100644
--- a/parser.c
+++ b/parser.c
@@ -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);
  }
/************************************************************************

Unfortunately I don't see any workaround beside applying that patch :-\

Daniel


--
Frank GROSS
Software Engineer - Web Services
Four J's Development Tools - http://www.4js.com




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]