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):
> > > Currently I am reading in the following xml document (through a ruby
> > > wrapper)
> > > LibXML::XML::Document.string( saml_plain)
> > > 
> > > <ds:SignedInfo>
> > > <ds:CanonicalizationMethod Algorithm='
> > > http://www.w3.org/2001/10/xml-exc-c14n#'/>
> > > […]
> > > </ds:SignedInfo>
> > 
> > That document is not namespace-well-formed.
> 
> <wrapper xmlns:ds="http://www.example.org/ds/";>
>   <ds:SignedInfo>
>   <ds:CanonicalizationMethod
>     Algorithm='http://www.w3.org/2001/10/xml-exc-c14n#'/>
>   </ds:SignedInfo>
> </wrapper>
> 
> might be one way to handle it.

  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>
<ds:CanonicalizationMethod Algorithm='
http://www.w3.org/2001/10/xml-exc-c14n#'/>
<ds:SignatureMethod
Algorithm='http://www.w3.org/2000/09/xmldsig#rsa-sha1'/>
<ds:Reference URI='#FYQBldG6i_i18gy6gJfhOh7.u_T'>
<ds:Transforms>
<ds:Transform Algorithm='
http://www.w3.org/2000/09/xmldsig#enveloped-signature'/>
<ds:Transform Algorithm='http://www.w3.org/2001/10/xml-exc-c14n#'/>
</ds:Transforms>
<ds:DigestMethod Algorithm='http://www.w3.org/2000/09/xmldsig#sha1'/>
<ds:DigestValue>KpuhfX2q6nR660VW/dS0vIrVtSg=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
paphio:~/XML -> ./xmllint tst.xml
<?xml version="1.0"?>
<!DOCTYPE ds:SignedInfo [
<!ATTLIST ds:SignedInfo xmlns:ds CDATA #FIXED "foo">
]>
<ds:SignedInfo xmlns:ds="foo">
<ds:CanonicalizationMethod Algorithm="
http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#FYQBldG6i_i18gy6gJfhOh7.u_T">
<ds:Transforms>
<ds:Transform Algorithm="
http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>KpuhfX2q6nR660VW/dS0vIrVtSg=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
paphio:~/XML ->

  Seems to work here :-)


Daniel

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

Reply via email to