Re: [xml] question about how to set namespace in libxml



Daniel Veillard schrieb am 06.03.2011 um 13:36 (+0800):
On Sat, Mar 05, 2011 at 12:16:50PM -0500, Liam R E Quin wrote:
On Sat, 2011-03-05 at 14:52 +0100, Michael Ludwig wrote:
Dan Quach schrieb am 01.03.2011 um 12:05 (-0800):

<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm='
http://www.w3.org/2001/10/xml-exc-c14n#'/>
[â]
</ds:SignedInfo>

That document is not namespace-well-formed.

  Another way which requires only modificating the beginning is to
push an internal subset first with a defaulted xmlns:ds on the top
element, the advantage would be that the tree don't need to be
modified there after (well maybe except dropping the DTD).

paphio:~/XML -> cat tst.xml
<!DOCTYPE ds:SignedInfo [
<!ATTLIST  ds:SignedInfo
           xmlns:ds CDATA     #FIXED 'foo'>
]>
<ds:SignedInfo> [â]

Hehe, unobtrusive namespaces. :-)

Works nicely using the push parser from Perl:

          \,,,/
          (o o)
------oOOo-(_)-oOOo------
use strict;
use warnings;
use XML::LibXML;
use File::Slurp;

my( $dtdfile, @xmlfiles ) = @ARGV;
die 'DTD, XML+' unless $dtdfile and @xmlfiles;

my $dtdchunk = read_file $dtdfile;
my $parser = XML::LibXML->new;

foreach ( @xmlfiles ) {
        my $xmlchunk = read_file $_;
        $parser->parse_chunk( $dtdchunk );
        my $doc = $parser->parse_chunk( $xmlchunk, 1 );
        print $doc->toString, "\n\n";
}
-------------------------

  perl nons.pl ns.dtd x.xml y.xml

But what about the question I raised? Is it possible to turn off
namespace awareness with libxml2 using any of the other parsers?

* using the DOM parser?
* using the SAX parser?
* using the pull parser (XML reader)?

Thanks!
-- 
Michael Ludwig



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