Latest refinements and batch of questions: 1 I gave up type subclassing, too much work and nobody seems excited 2 should we have <fields/> and <getters/> or should <field/> <getter/> be directly under <bean/> ? 3 should we have <groups/> or should <group/> be under <constraint/> directly? 4 should we allow <element name"size">30</element> with the risk of people doing <element name"size">30<value>blah</value></element> or should we mandate the use of value <element name"size"><value>30</value></element> 5 if some people could look at the xsd and propose improvement, that'd be great. I plan to introduce that in the spec tomorrow, so early feedback would be fantastic XML represents a sample and XSD is the schema generated from the XML file and adjusted. |
<?xml version="1.0" encoding="UTF-8"?> <constraint-mappings xmlns="http://jboss.org/xml/ns/javax/validation/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping mapping.xsd"> <default-package>com.acme.dvdstore.model</default-package> <bean class="Customer" ignore-annotations="true"> <!-- default false --> <class ignore-annotations="true"> <stop-constraint-inheritance/> <constraint annotation="constraint.ConstraintTest"> <message>{error.tooSmall}</message> <groups> <group>javax.validation.groups.Default</group> <group>javax.validation.groups.NONDEFAULT</group> </groups> <element name="max">2</element> <element name="defaultClass">com.acme.MyClass</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> <element name="patterns"> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> </element> </constraint> <constraint annotation="constraint.ConstraintTest"> <message>{error.tooSmall}</message> <groups> <group>javax.validation.groups.Default</group> <group>javax.validation.groups.NONDEFAULT</group> </groups> <element name="max">2</element> <element name="defaultClass">com.acme.MyClass</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> <element name="patterns"> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> </element> </constraint>
</class> <fields> <field name="firstname" ignore-annotations="true"> <valid/> <stop-constraint-inheritance/> <constraint annotation="constraint.ConstraintTest"> <message>{error.tooSmall}</message> <groups> <group>javax.validation.groups.Default</group> <group>javax.validation.groups.NONDEFAULT</group> </groups> <element name="max">2</element> <element name="defaultClass">com.acme.MyClass</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> <element name="patterns"> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> </element> </constraint> </field> <field name="firstname"> <constraint annotation="constraint.ConstraintTest"> <message>{error.tooSmall}</message> <groups> <group>javax.validation.groups.Default</group> <group>javax.validation.groups.NONDEFAULT</group> </groups> </constraint> </field> </fields> <getters> <getter name="firstname" ignore-annotations="true"> <valid/> <stop-constraint-inheritance/> <constraint annotation="constraint.ConstraintTest"> <message>{error.tooSmall}</message> <groups> <group>javax.validation.groups.Default</group> <group>javax.validation.groups.NONDEFAULT</group> </groups> <element name="max">2</element> <element name="defaultClass">com.acme.MyClass</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> <element name="patterns"> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> </element> </constraint> </getter> <getter name="firstname"> <constraint annotation="constraint.ConstraintTest"> <message>{error.tooSmall}</message> <groups> <group>javax.validation.groups.Default</group> <group>javax.validation.groups.NONDEFAULT</group> </groups> </constraint> <constraint annotation="javax.validation.NotNull"/> </getter> </getters> </bean> <bean class="User"> <!-- default false --> <class> <stop-constraint-inheritance/> <constraint annotation="constraint.ConstraintTest"> <element name="max">2</element> <element name="defaultClass">com.acme.MyClass</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> <element name="patterns"> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> <annotation> <element name="value">kindaregexp</element> <element name="states"> <value>com.myenum.State.OK</value> <value>com.myenum.State.NOK</value> </element> </annotation> </element> </constraint> </class> </bean> <constraint-definition annotation="javax.validation.NotNull"> <validated-by include-existing-validators="true"> <value>NotNullObjectValidator</value> <value>NotNullStringValidator</value> <!-- assuming a null string is validated differently :) --> </validated-by> </constraint-definition> <constraint-definition annotation="javax.validation.NotNull"> <validated-by> <value>NotNullObjectValidator</value> <value>NotNullStringValidator</value> <!-- assuming a null string is validated differently :) --> </validated-by> </constraint-definition> </constraint-mappings>
mapping.xsd
Description: Binary data
On Jan 26, 2009, at 12:08, Emmanuel Bernard wrote:
|
_______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev