Here is my very first attempt to describe the constraint mapping XML schema. I did not look at other product approach to avoid being tainted. If you have examples of alternative approach, I would appreciate a link.

A couple of comments:
- I would have preferred a Web Beans style XML approach but this kind of approach is getting some heavy resistance from some members of the expert committee. So I fell back to a more classic approach. - constraints themselves cannot be defined: you have to write an actual annotation. I wonder if we should provide such model. At minimal we might want to provide a way to override the constraint validator for a given constraint.
- I used JPA 2 mapping schema as inspiration
- I stayed very close to the Java structure

Better names, enhancements, alternative proposals are welcome.

Emmanuel

<?xml version="1.0" encoding="UTF-8"?>
<validation-mappings>
   <package>com.acme.dvdstore.model</package>
   <bean class="Customer">
       <class>
           <constraint annotation="com.acme.validate.SafeCustomer">
               <attribute name="category">
<array- element>com.acme.validate.SecurityLevel.SECURED_COUNTRY</array-element> <array- element>com.acme.validate.SecurityLevel.SECURED_ADDRESS</array-element> <array- element>com.acme.validate.SecurityLevel.SECURED_FINANCIALS</array- element>
               </attribute>
               <attribute name="failPerCategory">false</attribute>
           </constraint>
       </class>
       <fields>
           <field name="firstname">
               <ignore-annotations/>
               <stop-inheritance/>
               <constraint annotation="javax.validation.Min">
                   <message>{error.tooSmall}</message>
                   <groups>
                       <group>javax.validation.groups.Default</group>
                   </groups>
                   <attribute name="value">45</attribute>
               </constraint>
           </field>
       </fields>
       <getters>
           <getter name="firstname">
               <ignore-annotations/>
               <stop-inheritance/>
               <constraint annotation="javax.validation.Min">
                   <message>{error.tooSmall}</message>
                   <groups>
                       <group>javax.validation.groups.Default</group>
                   </groups>
                   <attribute name="value">45</attribute>
               </constraint>
           </getter>
       </getters>
   </bean>
</validation-mappings>
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to