On Sat, Jan 07, 2012 at 06:54:22PM +0100, Michael Ludwig wrote:
> Thomas Gagne schrieb am 06.01.2012 um 11:47 (-0500):
> > I'm unclear how I can reformat the file
> > 
> >    tgagne@ubuntu:~/tmp$ cat a.xml
> >    <ns:a>
> >    </ns:a>
> > 
> > without getting the errors
> > 
> >    tgagne@ubuntu:~/tmp$ xmllint --format --recover a.xml
> >    a.xml:1: namespace error : Namespace prefix ns on a is not defined
> >    <ns:a>
> >          ^
> > 
> > Is it a problem with xmllint or libxml2?
> 
> These days most would say it's a problem with your XML, which is not
> namespace-valid.

  yes but it should *just* raise the namespace error which it does, but
should not generate information loss.

> Then, my copy of xmllint (Windows, 20707) reformats the doc alright, it
> just also emits the warning you're seeing and, significantly, drops the
> part of the name before the colon.
> 
> You'd need a parser configuration that has namespaces switched off. That
> should be available as "xmllint --sax1" (the old SAX 1 didn't know about
> namespaces), but even then xmllint emits the warning and drops the part
> before the colon, which I think is a bug.

  SAX1 parser is namespace aware just that the callback API isn't.

I hate the idea of information loss in the context of XML processing
and since support for XML Namespace is still an optional feature
I fixed the SAX2 default callbacks to not loose the prefix in this
case or if an attribute uses an undefined namespace. SAX2 should be
fixed both in case of using a parser dictionnary or not.

  I will push the patches once I'm off the train ;-)

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
dan...@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to