1

組み込みの Java org.w3c.dom または一連の XSD ファイルに準拠する jdom パッケージを使用して、XML ドキュメントを作成する必要があります。XSD ファイルは似ていますが、同じではありません。本質的に、動的に与えられた XSD に従って XML ファイルを作成する必要があります。

それを行う最善の方法は何ですか。Validator パッケージを確認しましたが、特定のコンテキスト ノードで可能な要素の先読みやイテレータなどの機能はありません。

理想的には、コンテキストフリーの方法で提供するように求められたときに要素を実装する、SAX のようなアーキテクチャを検討しています。エンジンが組み立てられ、最後に dom ツリーが表示されます。

このホイールはすでに発明されていますか?

ありがとう..

4

2 に答える 2

1

私は現在、XSD を解析して、その一部から XML ドキュメントを作成するのではなく、別のものを作成しています。XSOMが非常に便利であることがわかりました。すぐに使用する方法が明らかではないため、この短い小さなチュートリアルをご覧ください

ライブラリ自体は、慣れれば難しくなく、XSD で見つかったすべての情報、つまり XML ファイルを生成するために使用できる属性、制限、および要素を取得できます。

于 2009-11-16T19:09:35.707 に答える
1

org.w3c.domは XML スキーマをサポートしていません。JDom の場合、スキーマを使用してドキュメントを検証できますが、ドキュメントの構築はサポートされていません。

次の 2 つのオプションがあります。

  1. JDom を使用してスキーマを読み取り、分析し、この XML ドキュメントに従ってドキュメントを生成します (スキーマも常に有効な XML ドキュメントです)。

  2. Castorのような XML マッパーを使用できます。Castor は、スキーマを読み取り、そのスキーマに一致するドキュメントを作成できる Java クラスのセットを作成できます。

同じドキュメントで定義されていない限り、Castor は同様の XSD 構造に対して異なる Java クラスを生成するため、後者のアプローチはうまく機能しない可能性があります。そのため、共通コードを簡単に再利用することはできません。回避策は、Castor にコードを生成させ、スクリプトなどを記述して、XSD の共通部分を同じ Java パッケージにコピー/マージすることです。

于 2009-09-29T13:46:42.653 に答える