- From: John Boyer <JBoyer@PureEdge.com>
- Date: Tue, 31 Jul 2001 11:16:16 -0700
- To: "Christian Geuer-Pollmann" <geuer-pollmann@nue.et-inf.uni-siegen.de>, <w3c-ietf-xmldsig@w3.org>
<jb> Hi Christian, </jb> Yes, I know that the <comment> Element is not an XML Element <jb>Actually, <comment> is an element, which is why its text descendant gets added to the string result.</jb> The problem resulted in my understanding of what is an XPath node set and how I convert an input stream to a node set which is valid input for the transforms. Given a Document like: <?xml version="1.0"?> <!-- Comment 1 --> <doc>Hello, world!<!-- Comment 2 --></doc> Q: Does the xpath node set contain 2 nodes (the comment 1 and the <doc> element) or does it contain 4 nodes (both comments, the <doc> element and the text node? <jb>An XPath node-set is capable of containing every node of the document. A node-set could contain just the two nodes or it could contain all four nodes (both comments, <doc>, the text node). In either case, it also contains a special 'root' node as parent to <doc>. The root node is not an element, but it is needed to provide a single point of entry to the parse tree. The root node in your example above has two children: <doc> and Comment 1. If you want c14n to write the whole document in your example above, then the node-set has to include all of the nodes. If you only included <doc> and the 'Comment 1' node, then the c14n output would be: <?xml version="1.0"?> <!-- Comment 1 --> <doc></doc> Regards, John Boyer Senior Product Architect, Software Development Internet Commerce System (ICS) Team PureEdge Solutions Inc. Trusted Digital Relationships v: 250-708-8047 f: 250-708-8010 1-888-517-2675 http://www.PureEdge.com <http://www.pureedge.com/> </jb> Christian > The inserted <comment> element (which is not an XML comment, but rather > an XML element like any other) would cause a problem for base-64 > decoding. The behavior to mimic is XPath string(), which concatenates > all descendant text nodes. > > -----Original Message----- > From: Christian Geuer-Pollmann > [mailto:geuer-pollmann@nue.et-inf.uni-siegen.de] > Sent: Tuesday, July 31, 2001 5:55 AM > To: w3c-ietf-xmldsig@w3.org > Subject: Question: Base64 Transform Nodeset Input > > > What does section "6.6.2 Base64" mean whan it states: > > "If an XPath node-set (or sufficiently functional alternative) is given > as > input, then it is converted to an octet stream by performing operations > logically equivalent to 1) applying an XPath transform with expression > self::text(), then 2) taking the string-value of the node-set." > > Is the following fragment valid input which decodes to "The URI of the > transform is http://www.w3.org/2000/09/xmldsig#base64" > > <BASE64> > VGhlIFVSSSBvZiB0aGUgdHJhbn<comment>Inserting this comment should not > change > anything for processing</comment> > Nmb3JtIGlzIGh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1s > ZHNpZyNiYXNlNjQ= > </BASE64>
Received on Tuesday, 31 July 2001 14:16:48 UTC