3

質問があります:

I.質問

XSD を (事前に) 読み込んだりロードしたりして、XML 要素の順序を取得する方法や Java ベースのライブラリはありますか?

Ⅱ.バックグラウンド

私が取り組んでいるアプリは、さまざまな種類の XML (フィード) を生成する必要があり、それぞれが特定のスキーマ (XSD) に基づいています。

ポイントは、Apache Abdera を介して XML を徐々に生成/ストリーミングする必要があるため、シリアライゼーションの標準的なアプローチである JAXB を使用できないことです。したがって、Java ドメイン オブジェクトを XML (フィード) に「シリアル化」し、それらの情報からさまざまなタグの値を作成し、XSD で定義された順序に従って、これらのタグを 1 つずつ出力ストリームに書き込む必要があります。

III. 必要な機能

現時点では、上記の方法でドメイン オブジェクトを xml に変換するシリアライザーがありますが、すぐにいくつかの種類のスキーマをサポートする必要があり、簡単に保守できなくなります (言うまでもなく、非常にエラーが発生しやすい)。

IV. 考えられる解決策

そこで、 XML スキーマに依存しないシリアライザーを作成し、さまざまな xml 要素の値を作成する作業を専用のビルダーまたはファクトリーに委任したいと考えています。ただし、それらを呼び出す順序は、スキーマによる xml 要素の順序によって定義する必要があります。

そして、ここに私が始めた私の質問があります:

XSD を (事前に) 読み込んだりロードしたりして、XML 要素の順序を取得する方法や Java ベースのライブラリはありますか?

V. そのようなライブラリがあれば...

概略的に、シリアライザーが行う必要があるのは次のとおりです。

  1. XSDで定義されている順序でxml要素(タグ)のタイプを(もちろん制限付きで)ロードします
  2. ロードされた順序で xml 要素のロードされた型を反復処理し、
  3. 認識された xml 要素タイプごとに、対応する要素のコンテンツの構築を関連するビルダーまたはファクトリに委任します。
  4. ビルダー/ファクトリによって構築された値を持つシリアライザーは、要素のタグでそれをラップし、出力ストリームにフラッシュします。

前もって感謝します!

4

0 に答える 0