2017-08-17 1 views
8

を非整列化:JAXBスキーマ検証あなたJAXBとアンマーシャリング全体XML、あなたが解析中に検証を可能にするためにXMLスキーマを設定することができた場合、ルート以外の要素

//javax.xml.validation.Schema schema = ... 
jaxbUnmarshaller = JAXBContext.newInstance(SomeRootType.class).createUnmarshaller(); 
jaxbUnmarshaller.setSchema(schema); 

を一方、ときNestedObjest秒のあなたのアンマーシャリングリストXML、一つずつ(。例えば、メモリ使用量を減少させる)から、このメソッドは例外を除いて(スキーマのみルートを受け入れると)失敗:

org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 22; cvc-elt.1: Cannot find the declaration of element 'NestedObject' 

それはNestedObjectTypeがXSDで明確に定義されていても失敗します。ネストしたオブジェクトの検証を有効にするオプションはありますか? XSDは他の人が管理しているアプリケーションの外部にあるので、新しいスキーマの定義は悲惨なオプションです。

+3

で説明されているように、このエラーが発生する場所にサンプルを入力できますか? –

答えて

0

unmarshalメソッドにバインドされたBeanのクラスを渡そうとしましたか? Example 65. Unmarshalling into a known type

+0

しました。動作しません。 – jaskmar

+0

ソースXMLを変更できますか?例:add xsi:type属性 –

+0

xml/schemaを変更できません。この例では、teherをリンクしても検証は有効になっていません。 – jaskmar

関連する問題