We have this JAXB annotation:
@XmlElement(name = "Strategy", required = true)
protected List<Strategy> strategy;
If there are no Strategy
elements present, no exception is thrown.. why is this? Shouldn't we get an exception?
The JAXB reference implementation doesn't use this attribute for validation, it's purely there for documentation purposes.
If you need to validate the documents, you need to define an XML Schema, and inject it into the Marshaller
or Unmarshaller
, using SchemaFactory
.
Additionally, you could use the beforeMarshal
and afterUnmarshal
methods to validate inputs as spec'd in Marshaller and Unmarshaller.
The scheme under which these methods are accessed will also allow you to add an arbitrary throws
clause to the method declaration. This means that when implementing these methods, you can safely use javax.xml.bind.MarshalException
and javax.xml.bind.UnmarshalException
(or whatever sort of Exception
you want) to signal validation errors.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With