- From: John Boyer <JBoyer@PureEdge.com>
- Date: Wed, 10 Jul 2002 10:04:49 -0700
- To: "Gregor Karlinger" <gregor.karlinger@iaik.at>, "merlin" <merlin@baltimore.ie>
- Cc: "XMLSigWG" <w3c-ietf-xmldsig@w3.org>
Hi Gregor, Oh, yes, I see that now. When I read it over, I somehow skipped that phrase. Obviously, the phrase "Any time a node is encountered that is in any evaluated node-set S" should be removed, at which point you get what I actually read into the bullet point. John -----Original Message----- From: Gregor Karlinger [mailto:gregor.karlinger@iaik.at] Sent: Wednesday, July 10, 2002 4:43 AM To: John Boyer; 'merlin' Cc: 'XMLSigWG' Subject: RE: Comments on XPath Filter 2.0 draft (2002-06-20) Hi John, > Hi Merlin and Gregor, > > I didn't originally think that the spec was 'missing' a stack > of the values of Z because I interpreted the 'update' method > for Z to be in a declarative format, not the imperative > format. It does not seem possible to read the > Z-update-bullet-point and not translate it into a > stack-driven algorithm in an imperative language. > > The Z-update-bullet-point says that Z should be updated true > if P and updated to ***false if not P***, where P = the node > under consideration is in any *subtree-expanded* union and > all subsequent *subtree-expanded* intersects but no > subsequent *subtree-expanded* subtracts. Yes, but the first sentence of the first inner bullet defines the condition wheter to apply the update algorithm *at all*: "Any time a node is encountered that is in any evaluated node-set S ...[apply update algorithm]" And this is the problem I tried to demonstrate in my example. > In Gregor's example, the fourth iteration should be setting Z > to false because, in the declaration above, P is false. Yes, if the algorithm had been applied, it would have updated Z this way. *But* the condition wheter to apply the algorithm evaluates to false ... > Note, however, that P is false for a different reason than > given in Gregor's example. True that the node <DontSelect/> > is not in any filter node-set, but it is in the > subtree-expanded union. Since it is not in the subsequent > (subtree expanded) intersect, the logical-and fails, making P > false and hence Z false. In my example, I haven't worked out wheter P is false or true (see above). > The point I will concede is that the statement "iterate > through the input document in document order" seems > unnecessary. The declarative style would simply be to say > "Process each node in the document, adding each node to the > filter node-set..." . The 'iterate' part simply reflects our > knowledge that iteration is what will happen, particularly if > the implementer co-mingles the filtration with canonicalization. I do not agree that it is sufficient to simply remove the "iterate" passage. Either we introduce the stack, as Merlin suggests, or we remove the condition wheter to apply the flag Z update. [...] Regards, Gregor
Received on Wednesday, 10 July 2002 13:05:22 UTC