RE: A simple test of XPath filter performance

Christian Geuer-Pollmann <[email protected]>
Newsgroups gmane.ietf.xmldsig
Message-ID <5687287.1020854281@crypto>
--On Mittwoch, 24. April 2002 13:23 -0700 John Boyer <[email protected]> 
wrote:

> The format is not proprietary.  It is XML.  The only question you have
> to answer is whether you can read the blob of XML and filter it with
> expressions like the XPaths I gave as examples.  If so, how fast is your
> filter operation.
>
> You do not have to create or affix an XML dsig signature.  You only need
> to filter the XML and see whether the results of your filtration match
> the results of our software (which is, operationally at least, the
> easiest way to determine whether we're getting a good representative of
> an XPath expression).

John,

could you please post the results of your software? I can't install it on 
my machine, so it'd be good to have the result of the transforms.

> FYI, there are two signature filters on this form, the net result of
> which is to sign the entire form less some subtrees.  The first filter
> eliminates all elements at depth 3 with a tag name of 'triggeritem'.  The

In your sample, I don't find tags called triggeritem. I only see 
<ae>triggeritem</ae>.

> second filter, called signitemrefs, omits six subtrees at depth 2.  The
> 'sid' attribute is used to uniquely identify pages (depth 1) and items
> (depth 2).  The identifiers in the signitemrefs filter are
>
> 				PAGE1.CHECK16
> 				PAGE1.CHECK17
> 				PAGE1.FIELD47
> 				PAGE1.BUTTON2
> 				SIGNATURE2
> 				PAGE1.FIELD48

The same thing. I only see these values as text nodes:

<signitemrefs content="array">
  <ae>omit</ae>
  <ae>PAGE1.CHECK16</ae>


> The PAGE1 indicates a 'page' element with a 'sid' attribute of PAGE1.
> CHECK16 is the scope identifier, or sid, of a checkbox on PAGE1.  When
> the page is not given, the current page is assumed, though I would be
> fine with an XPath filter that identified PAGE1.SIGNATURE2 rather than
> using here().  Without looking at this in great detail, the subtrees to
> be deleted probably have an XPath filter 2.0 expression along the lines
> of
>
> 	/XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or ... or @sid="FIELD48]
>
> The other subtraction filter would probably have an expression along the
> lines of
>
> 	/XFDL/page/*/triggeritem

Hm, I try to create my filter based on your information: Is it the 
following? Could you fill out the ellipse (...) in the first XPath? Or even 
better, simply post a ds:Reference which is to be used for a signature on 
your sample file.

<ds:Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2">
 <dsig-xpath:XPath Filter="subtract">
  /XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or ... or @sid="FIELD48]
 </dsig-xpath:XPath>
</ds:Transform>
<ds:Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2">
 <dsig-xpath:XPath Filter="subtract">
  /XFDL/page/*/triggeritem
 </dsig-xpath:XPath>
</ds:Transform>

Regards,
Christian
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.