- From: Mark Birbeck <mark.birbeck@x-port.net>
- Date: Fri, 2 Sep 2005 17:26:08 +0100
- To: "'Ben Cochran'" <BCochran@ClubMom-inc.com>
- Cc: <www-forms@w3.org>
- Message-ID: <C75A01B6-3C1F-4025-994A-82546EF86E36@S009>
Hi Ben, You can't cancel events conditionally, if that's what you mean. I have proposed some extra XPath functions that would allow you to do this, but they are still under discussion on the XForms Working Group. Regards, Mark Mark Birbeck CEO x-port.net Ltd. e: Mark.Birbeck@x-port.net t: +44 (0) 20 7689 9232 w: http://www.formsPlayer.com/ b: http://internet-apps.blogspot.com/ Download our XForms processor from http://www.formsPlayer.com/ _____ From: www-forms-request@w3.org [mailto:www-forms-request@w3.org] On Behalf Of Ben Cochran Sent: 30 August 2005 19:01 To: www-forms@w3.org Subject: Cancelling events What I'm looking for is a good solid example of how to cancel an event in xforms. Specific case: I have a pair of models, one being submitted to an XML file via 'put', the other going to a servlet via 'url-encoded-post'. Both of these models are being submitted "simultaneously," through two <send> actions tied to a single <trigger>. Now, rather than have logic in the servlet so as not to perform a DB update if one of the values is empty, I'd rather just not send that submission at all. Particularly, what I'd like to do (I think) is cancel the xforms-submit event before it hits the servlet-tied submission. What I can't figure out is how to do this. As tests, I've tried adding ev:defaultAction="cancel" and ev:propogate="stop" to the <send> actions; adding ev:event="xforms-submit", ev:propagate="stop", and ev:defaultAction="cancel" to the servlet's <model> element. I may well be on the completely wrong track. There seems to be precious little online or in Xforms books that gives anything else other than listing the event-model attributes and saying "you can cancel events." Any help is appreciated. ----Example Code Below---- <?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/2002/06/xhtml2" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ev="http://www.w3.org/2001/xml-events"> <head> <title>Multiple Submission Test</title> <xf:model id="servlet_model"> <xf:instance id="servlet_instance" xmlns=""> <servlet> <value1/> <value2/> </servlet> </xf:instance> <xf:submission id="servlet_submit" action="TestServlet" method="url-encoded-post" separator="&" replace="none"/> </xf:model> <xf:model id="xml_model"> <xf:instance id="xml_instance" xmlns=""> <document> <foo> <value1/> <bar someattribute=""> <value2/> </bar> </foo> </document> </xf:instance> <xf:submission id="xml_submit" action="file:///C:/somexml.xml" method="put" replace="none"/> </xf:model> </head> <body> <xf:group model="servlet_model" ref="instance('servlet_instance')" appearance="full"> <xf:label>To Servlet</xf:label> <xf:input ref="value1" appearance="full"> <xf:label>Value 1 </xf:label> </xf:input> <xf:input ref="value2"> <xf:label>Value 2 </xf:label> </xf:input> </xf:group> <BR/> <xf:group model="xml_model" ref="instance('xml_instance')/foo" appearance="full"> <xf:label>To XML</xf:label> <xf:input ref="value1"> <xf:label>Value 1</xf:label> </xf:input> <xf:input ref="bar/@someattribute"> <xf:label>Some Attribute</xf:label> </xf:input> <xf:input ref="bar/value2"> <xf:label>Value 2</xf:label> </xf:input> </xf:group> <BR/> <xf:group appearance="minimal"> <xf:trigger> <xf:label>Submit Both</xf:label> <xf:action ev:event="DOMActivate"> <xf:send submission="servlet_submit"/> <xf:send submission="xml_submit"/> <xf:load resource="http://www.yahoo.com" show="replace"/> </xf:action> </xf:trigger> </xf:group> </body> </html> CMI Marketing, Inc. Ben Cochran Technical Lead, Interface Engineering 401 Park Avenue South 5th Floor New York, New York 10016 tel 646.435.6508 fax 646.435.6600 www.clubmom.com
Received on Friday, 2 September 2005 16:26:50 UTC