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?
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
.
required = true
then the element declaration in the XSD will be generated with minOccurs="1"
. You can then use the XSD for validating XML. –
Tatyanatau 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.
© 2022 - 2024 — McMap. All rights reserved.
Schema
from yourJAXBContext
to use in theMarshaller
/Unmarshaller
. – Izanagi