¿JAXB admite xsd: restricción?

        

Así que quiero que se convierta en un código Java como este:

 public void setAge(int age){ if(age  120){ //throw some exception } //setting the age as it is a valid value } 

¿Es posible en JAXB?

Había visto un generador de strees de WebService Client haciendo esto, tal vez el servicio web axis2, pero no estoy seguro.

    La especificación JAXB (JSR-222) no cubre la generación de lógica de falla rápida en el modelo de dominio. Una práctica común ahora es express reglas de validación en forma de anotaciones (o XML) y ejecutar la validación en ellas. Bean Validation (JSR-303) lo estandariza y está disponible en cualquier implementación de Java EE 6.

    Extensiones XJC

    No he intentado la siguiente extensión, pero parece que generará anotaciones de Bean Validation (JSR-303) en las reglas de validación de representación del modelo de dominio del esquema XML. Como XJC es muy extensible, puede haber otros complementos disponibles también.

    La forma sugerida para realizar esta validación en JAXB es activar la validación de esquema en el marcador de referencias. unmarshaller:

     SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = schemaFactory.newSchema(...); ValidationEventHandler valHandler = new ValidationEventHandler() { public boolean handleEvent(ValidationEvent event) { ... } }; marshaller.setSchema(schema); marshaller.setEventHandler(valHandler); 

    Puedes probar JAXB-Facets . Fragmento rápido:

     class MyClass { @MinOccurs(1) @MaxOccurs(10) @Facets(minInclusive=-100, maxInclusive=100) public List value; @Facets(pattern="[az][a-z0-9]{0,4}") public String name; }