RE: server-side validation: relevance

Aaron/Jay,

I think the question is about trying to use the same rules on the server as
on the client. When the data comes to the server, how does Jay's server know
whether it is valid or not? If there is no 'something' element, it could
either have been mistakenly omitted, or correctly omitted because 'else' is
not 4. (Jay's business processes may be such that he can't just assume that
the XForms processor only ever sends valid data back, or that no-one can
send data from other applications.)

Jay's solution is to run the same test that the XForms processor did, to
find out whether or not there should be a 'something' element. But his
problem is that he can't find the element to do the test on! The element he
needs to test to see if it is 4 is addressed like this:

  something/../else

So if there is no 'something' element, he has no way to find the 'else'
element.

All I can say is good question, and perhaps suggest that you use absolute
paths. Not ideal, I know, but it is a consequence of having @nodeset set the
evaluation context for the MIPs.

Regards,

Mark


Mark Birbeck
CEO
x-port.net Ltd.

e: Mark.Birbeck@x-port.net
t: +44 (0) 20 7689 9232
b: http://internet-apps.blogspot.com/
w: http://www.formsPlayer.com/

Download our XForms processor from
http://www.formsPlayer.com/

> -----Original Message-----
> From: www-forms-request@w3.org 
> [mailto:www-forms-request@w3.org] On Behalf Of Aaron Reed
> Sent: 14 February 2006 23:49
> To: www-forms@w3.org
> Subject: Re: server-side validation: relevance
> 
> 
> Jay Knight wrote:
> 
> > I'm playing arround with validating xforms submission on the 
> > server.... and this question came up.... How can I tell if 
> something 
> > was supposed to be relevant on submission?  Consider this simple 
> > example.
> > 
> > <model>
> >     <instance>
> >         <things>
> >             <something />
> >             <else />
> >         </things>
> >     </instance>
> >     <bind nodeset="something" relevant="../else = 4" />
> >     <submission action="..." method="post" /> </model>
> > 
> > .... snip ...
> > 
> > <input ref="something"><label>Something</label></input>
> > <input ref="else"><label>Else</label></input>
> > 
> > And two possible (valid) submitted instances are:
> > 
> > <things>
> >     <something>blah</something>
> >     <else>4</else>
> > </things>
> > 
> > 
> > <things>
> >     <else>3</else>
> > </things>
> > 
> > (Pease excuse any errors... I haven't actually tested this 
> one out :)
> > 
> > The idea is that "something" should only be relevant if the 
> value of 
> > 'else' is 4.  The problem is that "../else = 4" is a relative xpath 
> > expression whose context node is /things/something, which 
> in the case 
> > of the second submission is not present.  Therfore, I 
> cannot evaluate 
> > that xpath expression meaningfully (so it seems).
> > 
> > Any ideas?
> > 
> > Jay K
> > 
> > 
> > 
> 
> I guess that I don't get what you are asking.  Irrelevant 
> data nodes are not submitted by an xform 
> (http://www.w3.org/TR/2005/PER-xforms-20051006/index-all.html#
> submit). 
> Any node in a submission that reaches the server will be relevant.
> 
> 
> 
> 

Received on Wednesday, 15 February 2006 11:17:21 UTC