<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Feedback please. I am sick of talking to myself<div><br><div><div>On &nbsp;Jan 21, 2009, at 23:37, Emmanuel Bernard wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I looked at the OVAL schema and as usual there are good stuffs here, I also added some missing elements<div>&nbsp;- I forgot the flag to be able to ignore existing annotations</div><div>&nbsp;- I forgot the @Valid equivalent</div><div>&nbsp;- OVal has the ability to describe OVal specific constraints in a typesafe way but not custom user constraints (as far as I can see).&nbsp;</div><div><br></div><div>Let me know what you think, especially on the constraints declarations options.</div><div><br></div><div><b>Ignore Annotation flag</b></div><div>Should the ignore-annotation flag be a &lt;bean/> level attribute only or should a user be able to define it at the field/method/class level?</div><div>If set to true, annotations placed on the bean, field or getter will not be considered. If set to false, they will.</div><div><br></div><div><b>@Valid</b></div><div>&lt;valid/></div><div>will indicate that a field or a getter is to be cascaded</div><div><br></div><div><b>Constraints declarations</b></div><div>In the current schema proposal, here is how constraints are declared</div><div><br></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;constraint annotation="com.acme.validate.SafeCustomer"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute name="category"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_COUNTRY&lt;/array-element><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_ADDRESS&lt;/array-element><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_FINANCIALS&lt;/array-element><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute name="failPerCategory">false&lt;/attribute><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/constraint></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;constraint&nbsp;annotation="javax.validation.constraint.NotNull"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;message>blah&lt;/message></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/constraint></div><div><br></div><div>We could enhance this in two ways:</div><div>&nbsp;- provide type-safe support for built-in validations:</div><div>&lt;not-null/>,&nbsp;</div><div>&lt;min></div><div>&nbsp;&nbsp;&lt;value>3&lt;/value></div><div>&nbsp;&nbsp;&lt;message>blah&lt;/message></div><div>&lt;/min></div><div>etc</div><div>&nbsp;- allow custom constraints support in a type-safe way:&nbsp;</div><div><br></div><div>The second point would work as followed</div><div>&nbsp;- a constraint annotation would be associated with a given XML type eg. &lt;Min/></div><div>&nbsp;- propose an abstract constraintType XML type that any constraint declared in XML would inherit (Min would extend ConstraintType)</div><div>&nbsp;- thanks to that message and groups would be inherited</div><div>&nbsp;- Min would have an attribute "annotation" fixed to the f.q.c.n of the corresponding annotation (I haven't find a way to hide it from the user but still have it present at parsing time)</div><div>&nbsp;- subelements of a constraint XML element would represent attributes of the annotation (with the same name)</div><div><br></div><div><div><div>&lt;?xml version="1.0" encoding="UTF-8"?></div><div>&lt;validation-mappings</div><div>&nbsp;&nbsp;xmlns="<a href="http://jboss.com/java/validation-mapping">http://jboss.com/java/validation-mapping</a>"</div><div>&nbsp;&nbsp;xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"</div><div>&nbsp;&nbsp;xmlns:appval="<a href="http://acme.com/appval">http://acme.com/appval</a>"</div><div>&nbsp;&nbsp;xsi:schemaLocation="<a href="http://jboss.com/java/validation-mapping">http://jboss.com/java/validation-mapping</a>&nbsp;validation-mapping.xsd"></div><div>&nbsp;&nbsp; &nbsp;&lt;default-package>com.acme.dvdstore.model&lt;/default-package></div><div>&nbsp;&nbsp; &nbsp;&lt;bean class="Customer" i<b>gnore-annotations="true"</b>></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;class></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;constraint annotation="com.acme.validate.SafeCustomer"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;attribute name="category"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_COUNTRY&lt;/array-element></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_ADDRESS&lt;/array-element></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_FINANCIALS&lt;/array-element></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/attribute></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;attribute name="failPerCategory">false&lt;/attribute></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/constraint></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/class></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;fields></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;field name="firstname"></div><div><b>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;valid/></b></div><div><b>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;appval:min annotation="javax.validation.constraint.Min"></b></div><div><b>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;message>blah&lt;/message></b></div><div><b>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;value>4&lt;/value></b></div><div><b>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/appval:min></b></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;constraint annotation="javax.validation.Min"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;message>{error.tooSmall}&lt;/message></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;groups></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;group>javax.validation.groups.Default&lt;/group></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/groups></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;attribute name="value">45&lt;/attribute></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/constraint></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/field></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/fields></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;getters></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;getter name="firstname"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;ignore-annotations/></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;stop-inheritance/></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;constraint annotation="javax.validation.Min"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;message>{error.tooSmall}&lt;/message></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;groups></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;group>javax.validation.groups.Default&lt;/group></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/groups></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;attribute name="value">45&lt;/attribute></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/constraint></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/getter></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/getters></div><div>&nbsp;&nbsp; &nbsp;&lt;/bean></div><div>&lt;/validation-mappings></div></div><div><br></div><div><br></div><div>where app:val is described in the XSD as&nbsp;</div><div><div>&lt;?xml version="1.0" encoding="UTF-8"?></div><div>&lt;xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>" version="1.0"</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;xmlns:bv="<a href="http://jboss.com/java/validation-mapping">http://jboss.com/java/validation-mapping</a>"></div><div>&nbsp;&nbsp;&lt;xs:element name="min" type="minType"/></div><div><br></div><div>&nbsp;&nbsp; &nbsp;&lt;xs:complexType name="minType"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;xs:complexContent></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;xs:extension base="bv:AbstractConstraintType"></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;xs:sequence></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;xs:element name="value" type="xs:int" minOccurs="1"/></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/xs:sequence></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;xs:attribute name="annotation" use="required" fixed="javax.validation.constraint.Min"/></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/xs:extension></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/xs:complexContent></div><div>&nbsp;&nbsp; &nbsp;&lt;/xs:complexType></div><div>&lt;/xs:schema></div></div></div></div><br><div><div>On &nbsp;Jan 19, 2009, at 19:35, Emmanuel Bernard wrote:</div><br><blockquote type="cite"><div>Here is my very first attempt to describe the constraint mapping XML schema.<br>I did not look at other product approach to avoid being tainted. If you have examples of alternative approach, I would appreciate a link.<br><br>A couple of comments:<br>- 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.<br>- 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.<br>- I used JPA 2 mapping schema as inspiration<br>- I stayed very close to the Java structure<br><br>Better names, enhancements, alternative proposals are welcome.<br><br>Emmanuel<br><br>&lt;?xml version="1.0" encoding="UTF-8"?><br>&lt;validation-mappings><br> &nbsp;&nbsp;&lt;package>com.acme.dvdstore.model&lt;/package><br> &nbsp;&nbsp;&lt;bean class="Customer"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;class><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;constraint annotation="com.acme.validate.SafeCustomer"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute name="category"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_COUNTRY&lt;/array-element><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_ADDRESS&lt;/array-element><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;array-element>com.acme.validate.SecurityLevel.SECURED_FINANCIALS&lt;/array-element><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute name="failPerCategory">false&lt;/attribute><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/constraint><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/class><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;fields><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;field name="firstname"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ignore-annotations/><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;stop-inheritance/><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;constraint annotation="javax.validation.Min"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;message>{error.tooSmall}&lt;/message><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groups><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;group>javax.validation.groups.Default&lt;/group><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/groups><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute name="value">45&lt;/attribute><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/constraint><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/field><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fields><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;getters><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;getter name="firstname"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ignore-annotations/><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;stop-inheritance/><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;constraint annotation="javax.validation.Min"><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;message>{error.tooSmall}&lt;/message><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groups><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;group>javax.validation.groups.Default&lt;/group><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/groups><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute name="value">45&lt;/attribute><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/constraint><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/getter><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/getters><br> &nbsp;&nbsp;&lt;/bean><br>&lt;/validation-mappings><br>_______________________________________________<br>hibernate-dev mailing list<br><a href="mailto:hibernate-dev@lists.jboss.org">hibernate-dev@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/hibernate-dev">https://lists.jboss.org/mailman/listinfo/hibernate-dev</a><br></div></blockquote></div><br></div>_______________________________________________<br>hibernate-dev mailing list<br><a href="mailto:hibernate-dev@lists.jboss.org">hibernate-dev@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/hibernate-dev<br></blockquote></div><br></div></body></html>