Transform I/O is a sequence of octets

I have some questions.


For example,
--------------------------------
<dsig:Signature xmlns:dsig="&dsig;">
  ...
  <dsig:Reference URI="#ID1">
   <dsig:Transforms>
    <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
      <dsig:XPath>*****</XPath>   <!-- (1) -->
    </dsig:Transform>
   </dsig:Transforms>
   ...


  <dsig:Object Id="ID1" xmlns="">
   <Foo>...</Foo>
  </Object>
--------------------------------

If I wanted to sign the Foo element in the Object element, which
is a correct XPath expression for (1),
"/dsig:Signature/dsig:Object/Foo" or "/dsig:Object/Foo"?

I think "/dsig:Object/Foo" is correct because an input of a
Transform is a sequence of octets and the octets are parsed by
an XML parser before XPath processing, then, XPath is applied to
new document created by the XML parser.  The root element of new
document is <dsig:Obejct>.

Because of the same reason, here() may be nonsense.  An input
document for an XPath Transform is NOT identical with the
Signature document.  So there is no node returned by here() in a
document processed by XPath.



I have another question about here().  What node does here()
return for the following structure?

  <dsig:XPath>he<!-- -->re()</dsig:XPath>


-- 
TAMURA Kent @ Tokyo Research Laboratory, IBM

Received on Monday, 3 July 2000 01:16:41 UTC