1. opensymphony
  2. xwork

Source

xwork / src / test / com / opensymphony / xwork / test / User-validation.xml

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
    <field name="name">
        <field-validator type="required">
            <message key="name.key">You must enter a value for name.</message>
        </field-validator>
    </field>
    <field name="email">
        <field-validator type="required" short-circuit="true">
            <message>You must enter a value for email.</message>
        </field-validator>
        <field-validator type="email" short-circuit="true">
            <message>Not a valid e-mail.</message>
        </field-validator>
    </field>
    <field name="email2">
        <field-validator type="required">
            <message>You must enter a value for email2.</message>
        </field-validator>
        <field-validator type="email">
            <message>Not a valid e-mail2.</message>
        </field-validator>
    </field>
    <validator type="expression">
        <param name="expression">email.equals(email2)</param>
        <message>Email not the same as email2</message>
    </validator>
    <validator type="expression" short-circuit="true">
        <param name="expression">email.startsWith('mark')</param>
        <message>Email does not start with mark</message>
    </validator>
</validators>