質問があります:
I.質問
XSD を (事前に) 読み込んだりロードしたりして、XML 要素の順序を取得する方法や Java ベースのライブラリはありますか?
Ⅱ.バックグラウンド
私が取り組んでいるアプリは、さまざまな種類の XML (フィード) を生成する必要があり、それぞれが特定のスキーマ (XSD) に基づいています。
ポイントは、Apache Abdera を介して XML を徐々に生成/ストリーミングする必要があるため、シリアライゼーションの標準的なアプローチである JAXB を使用できないことです。したがって、Java ドメイン オブジェクトを XML (フィード) に「シリアル化」し、それらの情報からさまざまなタグの値を作成し、XSD で定義された順序に従って、これらのタグを 1 つずつ出力ストリームに書き込む必要があります。
III. 必要な機能
現時点では、上記の方法でドメイン オブジェクトを xml に変換するシリアライザーがありますが、すぐにいくつかの種類のスキーマをサポートする必要があり、簡単に保守できなくなります (言うまでもなく、非常にエラーが発生しやすい)。
IV. 考えられる解決策
そこで、 XML スキーマに依存しないシリアライザーを作成し、さまざまな xml 要素の値を作成する作業を専用のビルダーまたはファクトリーに委任したいと考えています。ただし、それらを呼び出す順序は、スキーマによる xml 要素の順序によって定義する必要があります。
そして、ここに私が始めた私の質問があります:
XSD を (事前に) 読み込んだりロードしたりして、XML 要素の順序を取得する方法や Java ベースのライブラリはありますか?
V. そのようなライブラリがあれば...
概略的に、シリアライザーが行う必要があるのは次のとおりです。
- XSDで定義されている順序でxml要素(タグ)のタイプを(もちろん制限付きで)ロードします
- ロードされた順序で xml 要素のロードされた型を反復処理し、
- 認識された xml 要素タイプごとに、対応する要素のコンテンツの構築を関連するビルダーまたはファクトリに委任します。
- ビルダー/ファクトリによって構築された値を持つシリアライザーは、要素のタグでそれをラップし、出力ストリームにフラッシュします。
前もって感謝します!