Re: Re: XPath Expression

I'd certainly be keen to see the full working XPath expression if someone
wants to take up the challenge.  Merlin's suggestion, by itself, is not
the whole solution but only part as it returns a boolean, not nodes.  

In general, XPath is good at selecting nodes but was not really intended
for removing subnodes.  With current tools, I'd say removing subnodes is
best done with XSLT.

BTW, the XSLT I've presented below does actually do the trick.

Ed
-- Original Message --

>
>I'd guess that something like not ((name() = "URI") and parent::dsig:Reference)
>might work.
>
>merlin
>
>r/edsimon@xmlsec.com/2001.08.02/09:37:38
>>>>This would allow me to change the URI without altering the validity
of
>>the
>>>>signature.
>>>
>>>If it's being used in the Canonical XML context, remove the '//@*' from:
>>>         (//. | //@* | //namespace::*)
>>
>>
>>Correct me if I'm wrong but wouldn't the above remove ALL attributes,
not
>>just the one Blake wants removed.
>>
>>I'm not sure that there is an XPath solution but the solution in XSLT
would
>>look like this:
>>
>>
>><?xml version="1.0" encoding="UTF-8"?>
>><xsl:stylesheet version="1.0" 
>>  xmlns:xsl ="http://www.w3.org/1999/XSL/Transform"
>>  xmlns:xmlsig="http://www.w3.org/2000/09/xmldsig#">
>>
>><!-- Identity transform -->
>><xsl:template match="@*|node()">
>>  <xsl:copy>
>>    <xsl:apply-templates select="@*|node()"/>
>>  </xsl:copy>
>></xsl:template>
>>
>>
>><!-- Skip the Reference/@URI attribute -->
>><xsl:template match="xmlsig:Reference/@URI" priority="2"/>
>>
>>
>></xsl:stylesheet>
>>
>>
>>--------------------------------------------------


--------------------------------------------------
Ed Simon
XMLsec Inc.

Interested in XML Security Training and Consulting services?  Visit "www.xmlsec.com".

Received on Thursday, 2 August 2001 11:02:12 UTC