| 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 [email protected] https://lists.jboss.org/mailman/listinfo/hibernate-dev
