[cvs] expresso/expresso-web/expresso/doc Validating_user_input.rtf

JCorporate Ltd jcorp at jcorp2.servlets.net
Wed Aug 11 13:28:01 PDT 2004


Update of /home/javacorp/.cvs/expresso/expresso/expresso-web/expresso/doc
In directory jcorp2.servlets.net:/tmp/cvs-serv20647

Modified Files:
	Validating_user_input.rtf 
Log Message:
<Aucun commentaire entré>


Index: Validating_user_input.rtf
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/expresso/doc/Validating_user_input.rtf,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Validating_user_input.rtf	20 Jul 2004 00:23:26 -0000	1.1
--- Validating_user_input.rtf	11 Aug 2004 20:27:59 -0000	1.2
***************
*** 1,10 ****
  {\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1036\deflangfe1036{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
  {\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}
! {\f187\froman\fcharset238\fprq2 Times New Roman CE;}{\f188\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f190\froman\fcharset161\fprq2 Times New Roman Greek;}{\f191\froman\fcharset162\fprq2 Times New Roman Tur;}
! {\f192\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f193\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f194\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f195\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
! {\f197\fswiss\fcharset238\fprq2 Arial CE;}{\f198\fswiss\fcharset204\fprq2 Arial Cyr;}{\f200\fswiss\fcharset161\fprq2 Arial Greek;}{\f201\fswiss\fcharset162\fprq2 Arial Tur;}{\f202\fswiss\fcharset177\fprq2 Arial (Hebrew);}
! {\f203\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f204\fswiss\fcharset186\fprq2 Arial Baltic;}{\f205\fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f207\fmodern\fcharset238\fprq1 Courier New CE;}{\f208\fmodern\fcharset204\fprq1 Courier New Cyr;}
! {\f210\fmodern\fcharset161\fprq1 Courier New Greek;}{\f211\fmodern\fcharset162\fprq1 Courier New Tur;}{\f212\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f213\fmodern\fcharset178\fprq1 Courier New (Arabic);}
! {\f214\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f215\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;
  \red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red2\green50\blue100;}
  {\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 \snext0 Normal;}{
--- 1,10 ----
  {\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1036\deflangfe1036{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
  {\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}
! {\f36\froman\fcharset238\fprq2 Times New Roman CE;}{\f37\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f39\froman\fcharset161\fprq2 Times New Roman Greek;}{\f40\froman\fcharset162\fprq2 Times New Roman Tur;}
! {\f41\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f42\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f43\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f44\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
! {\f46\fswiss\fcharset238\fprq2 Arial CE;}{\f47\fswiss\fcharset204\fprq2 Arial Cyr;}{\f49\fswiss\fcharset161\fprq2 Arial Greek;}{\f50\fswiss\fcharset162\fprq2 Arial Tur;}{\f51\fswiss\fcharset177\fprq2 Arial (Hebrew);}
! {\f52\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f53\fswiss\fcharset186\fprq2 Arial Baltic;}{\f54\fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f56\fmodern\fcharset238\fprq1 Courier New CE;}{\f57\fmodern\fcharset204\fprq1 Courier New Cyr;}
! {\f59\fmodern\fcharset161\fprq1 Courier New Greek;}{\f60\fmodern\fcharset162\fprq1 Courier New Tur;}{\f61\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f62\fmodern\fcharset178\fprq1 Courier New (Arabic);}
! {\f63\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f64\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;
  \red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red2\green50\blue100;}
  {\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 \snext0 Normal;}{
***************
*** 59,65 ****
  {\pgp\ipgp5\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp19\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp10\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp3\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp23\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp14\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp
  \ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp24\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp20\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp9\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp7\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid144970\rsid149285\rsid2830997\rsid2837187\rsid4219847\rsid5903239
! \rsid5969410\rsid5980885\rsid7943716\rsid8459379\rsid8864801\rsid8984069\rsid10772352\rsid12923032\rsid13787442}{\*\generator Microsoft Word 10.0.6612;}{\info{\title Validating user input}{\author Raul Davidovich}{\operator Raul Davidovich}
! {\creatim\yr2004\mo7\dy15\hr23\min38}{\revtim\yr2004\mo7\dy15\hr23\min38}{\version2}{\edmins0}{\nofpages12}{\nofwords2868}{\nofchars15779}{\*\company Maison}{\nofcharsws18610}{\vern16389}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1417 
! \deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1
  \jexpand\viewkind1\viewscale148\viewzk2\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct\asianbrkrule\rsidroot2830997 \fet0
  \sectd \linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3
--- 59,65 ----
  {\pgp\ipgp5\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp19\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp10\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp3\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp23\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp14\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp
  \ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp24\itap0\li22\ri0\sb0\sa0}{\pgp\ipgp20\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp9\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp7\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid144970\rsid149285\rsid2830997\rsid2837187\rsid4219847\rsid5903239
! \rsid5969410\rsid5980885\rsid7943716\rsid8459379\rsid8864801\rsid8984069\rsid10772352\rsid12923032\rsid13051351\rsid13787442}{\*\generator Microsoft Word 10.0.6612;}{\info{\title Validating user input}{\author Raul Davidovich}{\operator Raul Davidovich}
! {\creatim\yr2004\mo7\dy15\hr23\min38}{\revtim\yr2004\mo8\dy11\hr22\min27}{\version3}{\edmins1}{\nofpages10}{\nofwords2148}{\nofchars11819}{\*\company Maison}{\nofcharsws13940}{\vern16389}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1417 
! \deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1
  \jexpand\viewkind1\viewscale148\viewzk2\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct\asianbrkrule\rsidroot2830997 \fet0
  \sectd \linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3
***************
*** 102,106 ****
  \par The form validation is configured in the}{\lang2057\langfe1036\langnp2057\insrsid10772352\charrsid5903239  validation.xml file as follows:}{\lang2057\langfe1036\langnp2057\insrsid13787442\charrsid5903239 
  \par }{\lang2057\langfe1036\langnp2057\insrsid5969410\charrsid5903239 
! \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid5969410 {\insrsid5969410\charrsid5903239 
  \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid10772352 {\lang2057\langfe1036\langnp2057\insrsid10772352\charrsid5903239 <form-validation>
  \par <global>
--- 102,106 ----
  \par The form validation is configured in the}{\lang2057\langfe1036\langnp2057\insrsid10772352\charrsid5903239  validation.xml file as follows:}{\lang2057\langfe1036\langnp2057\insrsid13787442\charrsid5903239 
  \par }{\lang2057\langfe1036\langnp2057\insrsid5969410\charrsid5903239 
! \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid5969410 {\lang2057\langfe1036\langnp2057\insrsid5969410\charrsid13051351 
  \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid10772352 {\lang2057\langfe1036\langnp2057\insrsid10772352\charrsid5903239 <form-validation>
  \par <global>
***************
*** 161,168 ****
  \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  element key attribute, and Field's }{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 <}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 arg0}{
  \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 > }{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 -}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  <}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 arg3}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 >}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
!  element's key attribute. The order of replacement is FormSet/Locale constants are replaced first, Global constants second, and for the }{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 <}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 arg}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 >}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  elements variables are replaced last}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 :
  \par }\pard\plain \s17\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 <global>
--- 161,168 ----
  \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  element key attribute, and Field's }{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 <}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 arg0}{
  \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 > }{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 -}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  <}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 arg3}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 >}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  element's key attrib
! ute. The order of replacement is FormSet/Locale constants are replaced first, Global constants second, and for the }{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 <}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
! arg}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 >}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  elements variables are replaced last}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 :
! 
  \par }\pard\plain \s17\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 <global>
***************
*** 179,184 ****
  \par  <var-name>mask</var-name>
  \par  <var-value>$\{zip\}</var-value>
! \par }{\cs18\f0\fs24\cf1\insrsid8984069\charrsid5903239 </var>
! \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\cf1\insrsid8984069\charrsid5903239 </field>
  \par 
  \par }{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 The var element under a field can be used to store variables for use by a pluggable validator. These variables are available through the Field's }{
--- 179,185 ----
  \par  <var-name>mask</var-name>
  \par  <var-value>$\{zip\}</var-value>
! \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid13051351 </var>
! \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid13051351 </field>
  \par 
  \par }{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 The var element under a field can be used to store variables for use by a pluggable validator. These variables are available through the Field's }{
***************
*** 206,210 ****
  \par         <var-value>20</var-value>
  \par     </var>
! \par     }{\cs18\f0\fs24\cf1\insrsid8984069\charrsid5903239 </field>}{\f0\fs24\cf1\insrsid8984069\charrsid5903239 
  \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12923032 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cf1\lang2057\langfe1036\langnp2057\insrsid5903239 
  \par }{\b\fs28\cf1\lang2057\langfe1036\langnp2057\insrsid5903239\charrsid5903239 Standard Built In Validations
--- 207,211 ----
  \par         <var-value>20</var-value>
  \par     </var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid13051351 </field>}{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid13051351 
  \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12923032 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cf1\lang2057\langfe1036\langnp2057\insrsid5903239 
  \par }{\b\fs28\cf1\lang2057\langfe1036\langnp2057\insrsid5903239\charrsid5903239 Standard Built In Validations
***************
*** 215,225 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="name" depends="required">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="customer.name"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
! \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs16\b\cf1\insrsid12923032\charrsid5903239 requiredif}{
! \cf1\insrsid12923032\charrsid5903239  - field dependant validator 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f0\fs24\cf1\insrsid12923032\charrsid5903239 Deprecated, use validwhen.
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 validwhen}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validator for checking one field against another. 
--- 216,226 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="name" depends="required">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="customer.name"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
! \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 requiredif}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351  - field dependant validator 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 Deprecated, use validwhen.
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 validwhen}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validator for checking one field against another. 
***************
*** 229,252 ****
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 minlength}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate input data isn't less than a specified minimum length. }{
! \cf1\insrsid12923032\charrsid5903239 Requires a }{\cs18\cf1\insrsid12923032\charrsid5903239 minlength}{\cf1\insrsid12923032\charrsid5903239  variable. 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="name" depends="required,minlength">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="customer.name"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="minlength" key="$\{var:minlength\}" resource="false"/>
  \par         <var><var-name>minlength</var-name><var-value>3</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 maxlength}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate input data doesn't exceed a specified maximum length. }{
! \cf1\insrsid12923032\charrsid5903239 Requires a }{\cs18\cf1\insrsid12923032\charrsid5903239 maxlength}{\cf1\insrsid12923032\charrsid5903239  variable. 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="name" depends="required,maxlength">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="customer.name"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="maxlength" key="$\{var:maxlength\}" resource="false"/>
  \par         <var><var-name>maxlength</var-name><var-value>30</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 mask}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate format according to a regular expression. Requires a }{
--- 230,253 ----
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 minlength}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate input data isn't less than a specified minimum length. }{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 Requires a }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 minlength}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351  variable. 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="name" depends="required,minlength">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="customer.name"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="minlength" key="$\{var:minlength\}" resource="false"/>
  \par         <var><var-name>minlength</var-name><var-value>3</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 maxlength}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate input data doesn't exceed a specified maximum length. }{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 Requires a }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 maxlength}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351  variable. 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="name" depends="required,maxlength">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="customer.name"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="maxlength" key="$\{var:maxlength\}" resource="false"/>
  \par         <var><var-name>maxlength</var-name><var-value>30</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 mask}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate format according to a regular expression. Requires a }{
***************
*** 258,265 ****
  \par     <field property="name" depends="required,mask">
  \par         <msg name="mask" key="registrationForm.lastname.maskmsg"/>
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="registration.name"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <var><var-name>mask</var-name><var-value>^[a-zA-Z]*$</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 byte}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Byte. 
--- 259,266 ----
  \par     <field property="name" depends="required,mask">
  \par         <msg name="mask" key="registrationForm.lastname.maskmsg"/>
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="registration.name"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <var><var-name>mask</var-name><var-value>^[a-zA-Z]*$</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 byte}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Byte. 
***************
*** 267,273 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="age" depends="byte">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="employee.age"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 short}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Short. 
--- 268,274 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="age" depends="byte">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="employee.age"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 short}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Short. 
***************
*** 275,281 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="productnumber" depends="short">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="order.prodno"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 integer}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to an Integer. 
--- 276,282 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="productnumber" depends="short">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="order.prodno"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 integer}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to an Integer. 
***************
*** 283,289 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordernumber" depends="integer">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="order.number"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 long}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Long. 
--- 284,290 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordernumber" depends="integer">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="order.number"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 long}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Long. 
***************
*** 291,297 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordernumber" depends="long">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="order.number"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 float}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Float. 
--- 292,298 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordernumber" depends="long">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="order.number"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 float}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Float. 
***************
*** 299,305 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="amount" depends="float">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="sale.amount"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 double}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Double. 
--- 300,306 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="amount" depends="float">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="sale.amount"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 double}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Double. 
***************
*** 307,313 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="amount" depends="double">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="sale.amount"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 date}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Date. This validation rule uses }{
--- 308,314 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="amount" depends="double">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="sale.amount"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 date}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a field can be converted to a Date. This validation rule uses }{
***************
*** 322,337 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="saledate" depends="required,date">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="myForm.saledate"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <var><var-name>datePattern</var-name><var-value>MM/dd/yyyy</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
! \par }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="saledate" depends="required,date">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="sale.orderdate"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <var><var-name>datePatternStrict</var-name><var-value>MM/dd/yyyy</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
! \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs16\b\cf1\insrsid12923032\charrsid5903239 range}{
! \cf1\insrsid12923032\charrsid5903239  - validate number range. 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 Deprecated, use intRange, floatRange or doubleRange.
--- 323,338 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="saledate" depends="required,date">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="myForm.saledate"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <var><var-name>datePattern</var-name><var-value>MM/dd/yyyy</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
! \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="saledate" depends="required,date">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="sale.orderdate"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <var><var-name>datePatternStrict</var-name><var-value>MM/dd/yyyy</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
! \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 range}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351  - validate number range. 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 Deprecated, use intRange, floatRange or doubleRange.
***************
*** 345,355 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="age" depends="required,integer,intRange">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="employee.age"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="intRange" key="$\{var:min\}" resource="false"/>
  \par         <arg2 name="intRange" key="$\{var:max\}" resource="false"/>
  \par         <var><var-name>min</var-name><var-value>18</var-value></var>
  \par         <var><var-name>max</var-name><var-value>65</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 floatRange}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a float field is within a specified range Requires }{
--- 346,356 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="age" depends="required,integer,intRange">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="employee.age"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="intRange" key="$\{var:min\}" resource="false"/>
  \par         <arg2 name="intRange" key="$\{var:max\}" resource="false"/>
  \par         <var><var-name>min</var-name><var-value>18</var-value></var>
  \par         <var><var-name>max</var-name><var-value>65</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 floatRange}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a float field is within a specified range Requires }{
***************
*** 361,371 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordervalue" depends="required,float,floatRange">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="order.value"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="floatRange" key="$\{var:min\}" resource="false"/>
  \par         <arg2 name="floatRange" key="$\{var:max\}" resource="false"/>
  \par         <var><var-name>min</var-name><var-value>100</var-value></var>
  \par         <var><var-name>max</var-name><var-value>4.99</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 doubleRange}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a double field is within a specified range Requires }{
--- 362,372 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordervalue" depends="required,float,floatRange">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="order.value"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="floatRange" key="$\{var:min\}" resource="false"/>
  \par         <arg2 name="floatRange" key="$\{var:max\}" resource="false"/>
  \par         <var><var-name>min</var-name><var-value>100</var-value></var>
  \par         <var><var-name>max</var-name><var-value>4.99</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 doubleRange}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates that a double field is within a specified range Requires }{
***************
*** 377,387 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordervalue" depends="required,double,doubleRange">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="employee.age"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="doubleRange" key="$\{var:min\}" resource="false"/>
  \par         <arg2 name="doubleRange" key="$\{var:max\}" resource="false"/>
  \par         <var><var-name>min</var-name><var-value>100</var-value></var>
  \par         <var><var-name>max</var-name><var-value>4.99</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 creditCard}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate credit card number format 
--- 378,388 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="ordervalue" depends="required,double,doubleRange">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="employee.age"/>
  \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239         <arg1 name="doubleRange" key="$\{var:min\}" resource="false"/>
  \par         <arg2 name="doubleRange" key="$\{var:max\}" resource="false"/>
  \par         <var><var-name>min</var-name><var-value>100</var-value></var>
  \par         <var><var-name>max</var-name><var-value>4.99</var-value></var>
! \par     }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
  \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 creditCard}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validate credit card number format 
***************
*** 389,528 ****
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="name" depends="required, creditCard">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="customer.cardnumber"/>
! \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
! \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs16\b\cf1\insrsid12923032\charrsid5903239 email}{
! \cf1\insrsid12923032\charrsid5903239  - validate email address format 
! \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 
! \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="customeremail" depends="email">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="customer.email"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\insrsid12923032\charrsid5903239 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 url}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - validates url format. Has four }{\i\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
! optional}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  variables (}{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 allowallschemes}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 , }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 allow2slashes}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 , }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 nofragments}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  and }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 schemes}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
! ) which can be used to configure this validator. 
! \par }\pard \ql \li1080\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin1080\itap0\pararsid5903239 {\cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 allowallschemes}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  specifies whether all schemes are allowed. Valid values are }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 true}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  or }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 false}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  (default is }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 false}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 ). If this is set to }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 true}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  then the }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 schemes}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  variable is ignored. 
! 
! \par }{\cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 allow2slashes}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  specifies whether double '/' characters are allowed. }{\cf1\insrsid12923032\charrsid5903239 
! Valid values are }{\cs18\cf1\insrsid12923032\charrsid5903239 true}{\cf1\insrsid12923032\charrsid5903239  or }{\cs18\cf1\insrsid12923032\charrsid5903239 false}{\cf1\insrsid12923032\charrsid5903239  (default is }{\cs18\cf1\insrsid12923032\charrsid5903239 
! false}{\cf1\insrsid12923032\charrsid5903239 ). 
! \par }{\cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 nofragments}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  specifies whether fragements are allowed. Valid values are }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 true}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  or }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 false}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  (default is }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 false}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  - i.e. f
! ragments are allowed). 
! \par }{\cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 schemes}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
!  - use to specify a comma separated list of valid schemes. If not specified then the defaults are used which are }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 http}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 , }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 https}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239  and }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 ftp}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 . 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
! \par     <field property="custUrl" depends="url">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="customer.url"/>
! \par     </field>
! \par 
! \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="custUrl" depends="url">
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 <arg0 key="customer.url"/>
! \par         <var>
! \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239            <var-name>nofragments</var-name>
! \par            <var-value>true</var-value>
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </var>
! \par         <var>
! \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239            <var-name>schemes</var-name>
! \par            <var-value>http,https,telnet,file</var-value>
! \par         }{\cs18\f0\fs24\cf1\insrsid12923032\charrsid5903239 </var>
  \par     </field>
  \par }\pard \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5980885 {
  \cs18\f0\fs24\cf1\insrsid5980885\charrsid5903239 
! \par 
! \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \b\fs28\cf1\lang2057\langfe1036\langnp2057\insrsid5903239\charrsid5903239 Designing Complex Validations with valid when
! \par }{\cf1\lang2057\langfe1036\langnp2057\insrsid5903239\charrsid5903239  }{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! [Since Struts 1.2.0] A frequent requirement in validation design is to validate one field against another (for example, if you 
! have asked the user to type in a password twice for confirmation, to make sure that the values match.) In addition, there are fields in a form that may only be required if other fields have certain values. The }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 validwhen}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  validation rule is designed to handle these cases.
! \par The }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 validwhen}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  rule takes a single }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 var}
! {\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  field, called }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 test}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! . The value of this var is a boolean expression which must be true in order for the validation to success. }{\cf1\insrsid8984069\charrsid5903239 The values which are allowed in the expression are:
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-360\li742\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
! \jclisttab\tx720\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin742\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 Single or double-quoted string literals. 
! 
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Integer literals in decimal, hex or octal format 
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}The value }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 null}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  which will match against either null or an empty string 
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Other fields in the form referenced by field name, such as }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 customerAge}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Indexed fields in the form referenced by an explicit integer, such as }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 childLastName[2]}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Indexed fields in the form referenced by an implicit integer, such as }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 childLastName[]}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 , which will use the same index into the array as the index of the field being tested. 
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Properties of an indexed fields in the form referenced by an explicit or implicit integer, such as }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 child[].lastName}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 , which will use the same index into the array as the index of the field being tested. 
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}The literal }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 *this}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 , which contains the value of the field currently being tested 
! \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 As an example of how this would work, consider a form with fields }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 sendNewsletter}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  and }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 emailAddress}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 . The }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 emailAddress}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  field is only required if the }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 sendNewsletter}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  field is not null. You could code this using the validwhen rule as:
! \par }\pard\plain \s17\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! \par <field property="emailAddress" depends="validwhen">
! \par       <arg0 key="userinfo.emailAddress.label"/>
! \par         <var>
! \par           <var-name>test</var-name>
! \par           <var-value>((sendNewsletter == null) or (*this* != null))</var-value>
! \par         </var>
! \par       </field>
! \par }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 Which reads as: this field is valid if }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 sendNewsletter}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  is }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 null}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  or the field value is not }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 null}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 .
! \par Here's a slightly more complicated example using indexed fields. Assume a form with a number of lines to allow the user to enter part numbers and quantities they wish to order. An array of beans of class }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 orderLine}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
!  is used to hold the entries in a property called orderLines. If you wished to verify that every line with part number also had a quantity entered, you could do it with:
! \par }\pard\plain \s17\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! \par     <field property="quantity" indexedListProperty="orderLines" depends="validwhen">
! \par       <arg0 key="orderform.quantity.label"/>
! \par         <var>
! \par           <var-name>test</var-name>
! \par           <var-value>((orderLines[].partNumber == null) or (*this* != null))</var-value>
! \par         </var>
! \par       </field>
! \par }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 Which reads as: This field is value if the corresponding }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 partNumber }{
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 field is }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 null}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 , or this field is not }{
! \cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 null}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 . 
! \par As a final example, imagine a form where the user must enter their height in inches, and if they are under 60 inches in height, it is an error to have checked off nbaPointGuard as a career.
! \par }\pard\plain \s17\ql \li0\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! \par     <field property="nbaPointGuard" depends="validwhen">
! \par       <arg0 key="careers.nbaPointGuard.label"/>
! \par         <var>
! \par           <var-name>test</var-name>
! \par           <var-value>((heightInInches >= 60) or (*this* == null))</var-value>
! \par         </var>
! \par       </field>
! \par }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! \par }\pard\plain \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 A few quick notes on the grammer.
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-360\li742\ri0\sb100\sa100\sbauto1\saauto1\widctlpar
! \jclisttab\tx720\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin742\itap0\pararsid8984069 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 
! All comparisons must be enclosed in parens. 
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Only two items may be joined with }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 and}{
! \cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  or }{\cs18\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 or}{\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239  
! \par {\listtext\pard\plain\f3\fs20\cf1\lang2057\langfe1036\langnp2057\insrsid8984069\charrsid5903239 \loch\af3\dbch\af0\hich\f3 \'b7\tab}If both items to be compared are convertable to ints, a numeric comparison is done, otherwise a string comparison is done.
! 
! \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid5980885 {\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid5903239 \page }{\i\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid4219847 
  Once the plugin is set up and the form validation is configured, we can start validating our forms.
  \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid10772352 {\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid5903239 
--- 390,407 ----
  \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239 
  \par     <field property="name" depends="required, creditCard">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="customer.cardnumber"/>
  \par     </field>
! \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard\plain \ql \li360\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {
! \cs16\b\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 email}{\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351  - validate email address format 
  \par }\pard\plain \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5903239 
! \f2\fs20\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
! \par }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid5903239     <field property="customeremail" depends="email">
! \par         }{\cs18\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 <arg0 key="customer.email"/>
  \par     </field>
+ \par     }{\f0\fs24\cf1\lang2057\langfe1036\langnp2057\insrsid12923032\charrsid13051351 
  \par }\pard \s17\ql \li360\ri0\widctlpar\tx916\tx1832\tx2748\tx3664\tx4580\tx5496\tx6412\tx7328\tx8244\tx9160\tx10076\tx10992\tx11908\tx12824\tx13740\tx14656\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0\pararsid5980885 {
  \cs18\f0\fs24\cf1\insrsid5980885\charrsid5903239 
! \par }\pard\plain \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid5980885 \fs24\lang1036\langfe1036\cgrid\langnp1036\langfenp1036 {\i\lang2057\langfe1036\langnp2057\insrsid13051351 \page }{\i\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid4219847 
  Once the plugin is set up and the form validation is configured, we can start validating our forms.
  \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid10772352 {\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid5903239 
***************
*** 533,538 ****
  \par }{\lang2057\langfe1036\langnp2057\insrsid144970\charrsid5903239 
  \par }{\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid5903239 Manual validation is very simple.
! \par If you\rquote re using external states, you simply call myStateForm.validate(ControllerRequest request) in your handle state, and the method will return an ErrorCollection with the faile
! d validation messages (or empty if the form passed all the validations):
  \par 
  \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid5980885 {\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid5903239 public class MyHandleState
--- 412,417 ----
  \par }{\lang2057\langfe1036\langnp2057\insrsid144970\charrsid5903239 
  \par }{\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid5903239 Manual validation is very simple.
! \par If you\rquote re using external states, you simply call myStateForm.validate(Cont
! rollerRequest request) in your handle state, and the method will return an ErrorCollection with the failed validation messages (or empty if the form passed all the validations):
  \par 
  \par }\pard \ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0\pararsid5980885 {\lang2057\langfe1036\langnp2057\insrsid5980885\charrsid5903239 public class MyHandleState



More information about the cvs mailing list