このJAXBアノテーションがあります:
@XmlElement(name = "Strategy", required = true)
protected List<Strategy> strategy;
Strategy
要素が存在しない場合、例外はスローされません。これはなぜですか?例外を取得するべきではありませんか?
JAXBリファレンス実装は検証にこの属性を使用しません。これは純粋に文書化の目的で使用されます。
ドキュメントを検証する必要がある場合は、XMLスキーマを定義し、Marshaller
を使用してUnmarshaller
またはSchemaFactory
に挿入する必要があります。
さらに、beforeMarshal
およびafterUnmarshal
メソッドを使用して、 Marshaller および nmarshaller で指定されているように入力を検証できます。
これらのメソッドにアクセスするスキームでは、メソッド宣言に任意のthrows
句を追加することもできます。これは、これらのメソッドを実装するときに、javax.xml.bind.MarshalException
とjavax.xml.bind.UnmarshalException
(または任意の種類のException
)検証エラーを通知します。