XMLドキュメントをマーシャリングするためにJAXBやスタックスを使用して検証

StackOverflow https://stackoverflow.com/questions/2471149

  •  20-09-2019
  •  | 
  •  

質問

私は、XMLスキーマ(foo.xsd)を作成し、JAXBのための私のバインディングのクラスを作成するためにxjcを使用しています。のは、ルート要素がcollectionであると私は複雑な型であるNのdocumentオブジェクトを、書いて言ってみましょう。

私は大規模なXMLファイルを書き出すために計画しているので、私はcollectionルート要素を書き出すためにスタックスを使用していますし、JAXBはMarshaller.marshal(JAXBElement, XMLEventWriter)を使用して、ドキュメントのサブツリーをマーシャリングします。これは JAXBの非公式ユーザーガイドのが推奨するアプローチです。

私の質問は、それが整列化されている間、私はXMLを検証する方法、ありますか?私は(Marshaller.setSchema()を使用して)JAXBのマーシャラーにスキーマをバインドする場合、私は唯一の(「collectionのルート要素を見ていないことを訴えています)サブツリーをマーシャリングしていますので、私は、検証エラーを取得します。私は、私が本当にやりたいことと仮定的に結合されますStax XMLEventWriterまたはそのような何かにスキーマます。

この全体的なアプローチ上の任意のコメントが参考になります。基本的に私は、これは私に知らせて行うには良い方法がありますので、もし、メモリが不足することなく、大規模なXML文書をマーシャリングおよびアンマーシャリングするJAXBを使用することができるようにしたい。

役に立ちましたか?

解決

いくつかのスタックスの実装は、出力を検証することができるように見えます。同様の質問には、次の回答を参照してください。

<のhref = "https://stackoverflow.com/questions/15732/whats-the-best-way-to-validate-an-xml-file-against-an-xsd-file/690450#690450" > Woodstox のでStax2を使用して

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