<div dir="ltr">I do not know if this is the list for this discussion.<div><br></div><div>I added this <a href="http://stackoverflow.com/questions/18522211/xmldsig-the-reference-processing-model-node-set-vs-octet-stream">question to stackoverflow</a>.<br>
<div><br></div><div><div>I'm studying <a href="http://www.etsi.org/deliver/etsi_ts%5C101900_101999%5C101903%5C01.04.02_60%5Cts_101903v010402p.pdf">XML Advanced Electronic Signatures</a>.</div><div><br></div><div><b>To create "ArchiveTimeStamp" (page 58) the Specification says:</b></div>
<div><br></div><div><i>Process the retrieved ds:Reference element according to the reference processing model of XMLDSIG.</i></div><div><i><br></i></div><div><i>If the result is a XML node set, canonicalize it. (...)</i></div>
<div><br></div><div><b>The Reference Processing Model is over this:</b></div><div><br></div><div><<b>ds:Reference </b>Id="myId" URI="<a href="http://fakefile.xml">http://fakefile.xml</a>"></div><div>
    <<b>ds:Transforms</b>></div><div>        <ds:Transform Algorithm="<a href="http://www.w3.org/2001/10/xml-exc-c14n#">http://www.w3.org/2001/10/xml-exc-c14n#</a>"/></div><div>    </ds:Transforms></div>
<div>    <ds:DigestMethod/></div><div>    <ds:DigestValue/></div><div></ds:Reference></div><div><br></div><div>The process uses "URI=..." and "ds:Transforms" to retrieve the data.</div>
<div><br></div><div><b>Below are some parts extracted from (<a href="http://www.w3.org/TR/xmldsig-core/#sec-ReferenceProcessingModel">4.3.3.2 The Reference Processing Model</a>):</b></div><div><br></div><div><i>The data-type of the result of URI dereferencing or subsequent Transforms is either an octet stream or an XPath node-set. (...)</i></div>
<div><i><br></i></div><div><i>In this specification, a 'same-document' reference is defined as a URI-Reference that consists of a hash sign ('#') followed by a fragment or alternatively consists of an empty URI (...)</i></div>
<div><i><br></i></div><div><i>Unless the URI-Reference is such a 'same-document' reference, the result of dereferencing the URI-Reference MUST be an octet stream. In particular, an XML document identified by URI is not parsed by the signature application unless the URI is a same-document reference or unless a transform that requires XML parsing is applied.</i></div>
<div><i><br></i></div><div><i>The following examples demonstrate what the URI attribute identifies and how it is dereferenced:</i></div><div><i><br></i></div><div><i>URI="<a href="http://example.com/bar.xml">http://example.com/bar.xml</a>" </i></div>
<div><i>Identifies the octets (...)</i></div><div><i><br></i></div><div><i>URI="<a href="http://example.com/bar.xml#chapter1">http://example.com/bar.xml#chapter1</a>" </i></div><div><i>Identifies the element with ID attribute value 'chapter1' of the external XML resource (...), provided as an octet stream. (...)</i></div>
<div><i><br></i></div><div><i>URI="" </i></div><div><i>Identifies the node-set (...)</i></div><div><i><br></i></div><div><i>URI="#chapter1" </i></div><div><i>Identifies a node-set containing the (...)</i></div>
<div><br></div><div><b>The question.</b></div><div><br></div><div><b>For these References:</b></div><div><br></div><div><ds:Reference Id="myId" URI="<a href="http://fakefile.xml">http://fakefile.xml</a>"></div>
<div>...</div><div>(empty transform list)</div><div>...</div><div></ds:Reference></div><div><b>Result 1#: ( <file> ... childs ... <file> ).</b></div><div><br></div><div><ds:Reference Id="myId" URI="<a href="http://fakefile.xml">http://fakefile.xml</a>"></div>
<div>...</div><div><ds:Transform Algorithm="<a href="http://www.w3.org/2001/10/xml-exc-c14n#">http://www.w3.org/2001/10/xml-exc-c14n#</a>"/></div><div>...</div><div></ds:Reference></div><div><b>Result 2#: (xml with exc-c14n).</b></div>
<div><br></div><div><ds:Reference Id="myId" URI="<a href="http://fakefile.xml">http://fakefile.xml</a>"></div><div>...</div><div><ds:Transform "fake_Xpath_transform_to_get_all_childs"/></div>
<div><ds:Transform Algorithm="<a href="http://www.w3.org/2001/10/xml-exc-c14n#">http://www.w3.org/2001/10/xml-exc-c14n#</a>"/></div><div>...</div><div></ds:Reference></div><div><b>Result 3#: ( only childs with exc-c14n <child_1/>...<child_x/> ) This is not valid XML file to parse, does not has single root. But can be "node set" with in fakefile.xml context.</b></div>
<div><br></div><div><b>Are results (1#, 2# and 3#) "octet stream" ?</b></div><div><br></div><div>Because: <i>Unless the URI-Reference is such a 'same-document' reference, the result of dereferencing the URI-Reference MUST be an octet stream.</i></div>
<div><br></div><div><b>Or are they "XML node set" required by XML Advanced Electronic Signatures to canonicalize?</b></div><div><br></div><div>Because: <i>(...) In particular, an XML document identified by URI is not parsed by the signature application unless the URI is a same-document reference <b>or unless a transform that requires XML parsing is applied</b>.</i></div>
<div><br></div><div><b>Or the (unless a transform that requires XML parsing is applied) is valid only with in Reference context and the results are octet stream?</b></div><div><br></div><div>Articles are welcome.</div></div>
</div></div>