- From: Thierry MICHEL <tmichel@w3.org>
- Date: Mon, 10 Feb 2003 10:55:13 +0100
- To: <www-forms-editor@w3.org>
- Cc: "'Michael N. Lipp'" <mnl@mnl.de>
Sent to www-forms-editor > -----Message d'origine----- > De : www-forms-editor-request@w3.org > [mailto:www-forms-editor-request@w3.org] De la part de Michael N. Lipp > Envoyé : dimanche 9 février 2003 22:08 > À : www-forms-editor@w3.org > Objet : [Moderator Action] Rules for evaluation context > > > > > > Hi, > > Trying to implement the calculation of the evaluation context > (7.3 from the spec). I have run into the following problem: > let's assume I have a model with id="M1" (and the sample > instance from 7.3 of the > spec) and another model with id="M2" (with instance data > <root xyz="5"/>). Now how do I resolve this: > > <group ref="level2/level3" model="M1"> > <select1 ref="/root/@xyz" model="M2"/> > </group> > > I would expect the reference for select1 to be resolved to > "5". But if I apply the rules from 7.3, I find the following: > > (1) <select1 ref="/root/@xyz" model="M2"/> is not an outermost binding > > (2) So rule 2. from 7.3 applies: "The context node for > non-outermost binding elements is the first node of the > binding expression of the immediately enclosing element." > > (3) So, my context node is "level3" from model "M1". > > (4) Applying the xpath expression "/root/@xyz" to this > results (at best) in something empty. > > (5) Have I forgotten to apply rule 3. from 7.3? Maybe. "The > context node [even of my non-outermost binding element] > resides within the context model, which is determined > choosing the first item that applies from this list: a. if a > model attribute is present on the binding element, the > attribute determines the context model...". OK but how does > it help? It is obviously not true for the result returned in > (3). Is the above example illegal? > > (6) Does rule 3. from 7.3 have a kind of precedence? I.e. > should I evaluate "level2/level3" using model "M2"? This > contradicts rule 2. from 7.3 because is states that "The > context node for non-outermost binding elements is the first > node of the binding expression of the immediately enclosing > element.". The "binding expression" of the group element, > however, is obviously "level3" from model "M1". > > (7) Should I assume that a rule is missing: "A non-relative > path in "ref" binds the context node to the first node > returned from applying the path to the instance data of the > context model". I wouldn't like this. First, it is not easy > to be sure that a path is non-relative: > "node1/node2/instance('I2')/root" is (though silly) absolute > but it does not look like it. Second, I would expect > "<select1 ref="@xyz" model="M2"/> to return "5" in the > example above as well (though I'd also accept this to be > defined as an illegal selection -- note, however, that it is > not illegal based on the current rules). > > (8) Should I assume that the "immediately enclosing element" > should be defined like this: "An element is 'immediately > enclosing' when it is the first binding element node THAT HAS > THE SAME CONTEXT MODEL AS THE NON-OUTERMOST BINDING ELEMENT > in the node-set returned by the XPath expression > ancestor::*.". I'd prefer this, because it is easy to > implement ;-) and I think matches intuitive expectations. > > (9) Have I totally misunderstood something? > > - Michael >
Received on Monday, 10 February 2003 04:55:49 UTC