xmlrootelement unmarshal parse online jaxbunmarshaller jaxbcontext example bean java xml jaxb

unmarshal - parse xml java jaxb



JAXB required=true no parece requerir (2)

Tenemos esta anotación JAXB:

@XmlElement(name = "Strategy", required = true) protected List<Strategy> strategy;

Si no hay elementos de Strategy presentes, no se lanza ninguna excepción ... ¿por qué es esto? ¿No deberíamos obtener una excepción?


Además, puede usar los métodos beforeMarshal y afterUnmarshal para validar entradas como se especificó en Marshaller y Unmarshaller .

El esquema bajo el cual se accede a estos métodos también le permitirá agregar una cláusula de throws arbitrarios a la declaración del método. Esto significa que al implementar estos métodos, puede usar con seguridad javax.xml.bind.MarshalException y javax.xml.bind.UnmarshalException (o cualquier tipo de Exception que desee) para señalar los errores de validación.


La implementación de referencia de JAXB no usa este atributo para la validación, está puramente allí para fines de documentación.

Si necesita validar los documentos, debe definir un esquema XML e inyectarlo en el Marshaller o Unmarshaller , utilizando SchemaFactory .