質問

JAXBのバージョン2で-バリデータクラスは廃止されたようです-これは、マーシャラーがXMLを自動的に検証していることを意味しますか?もしそうなら、私が形成している誤ったXMLの一部について不平を言っていないようです!マーシャリングされたXMLを検証してXSDスキーマに準拠していることを確認する方法について、誰かアドバイスをいただけますか。

どうもありがとう。

役に立ちましたか?

解決

JAXP 1.3スキーマ検証フレームワークの使用により、JAXB 2.0で検証機能が拡張されました。

実行前:

unmarshaller.setValidating(true);

今やらなければならないこと:

SchemaFactory sf = SchemaFactory.newInstance(
    javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("myschema.xsd"));
unmarshaller.setSchema(schema);

setSchema にnullを渡すと、検証が無効になります。

このリファレンスを確認してください。

他のヒント

スキーマに従ってJavaオブジェクトが有効なXMLを生成することを確認する場合は、JAXB-Verificationプロジェクトを参照してください。

https://jaxb-verification.dev.java.net/

これは、XMLスキーマのObjectVerifier実装を生成するxjcへのJAXB RIプラグインです。これにより、XMLを検証するためにJavaオブジェクトをマーシャリングする必要がなくなります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top