2017-01-30 13 views
0

現在、一部のエンティティのインポートまたはエクスポートタスクを実行するアプリケーションを作成しています。同じものに使用されているファイル形式はXMLです。 JAXBがXMLバインディングに使用されています。JAXBでのXSDバージョン管理のサポート

エンティティの構造を定義する問題があります。XSDには、バージョン管理の機能がありません。バージョン付きXSDの定義を開始するにはどうすればよいでしょうか?が基礎となるバインディングフレームワークとして提供されているXMLインスタンスドキュメントですか?

私は、XSDにバージョンを導入する3つの方法があると読んでいます。
1)内部スキーマバージョン属性を変更する
2)ルート要素にschemaVersionのような属性を作成する
3)スキーマのターゲット名前空間を変更する。
どちらが次のような用途に最適ですか?

使用例:次のバージョンのXSDに加えられた変更により、既存の要素が無効になることがあります。スキーマ自体は後方互換性がないかもしれませんが、アプリケーションはすべてのバージョンのスキーマを処理するためのサポートを提供する必要があります。

+0

次のバージョンが下位互換性がない場合、名前空間を変更するオプション3は非常に有効です。 – ulab

答えて

1

XMLは、文書構造の変更と柔軟性を促進するように設計されています。残念ながら、JAXBはそうではありません。文書構造に関する知識をJavaソースコードにコンパイルするという行為は、文書構造の変更をより困難にします。

構造変更がアジェンダの一部である場合、JAXBを使用しないことを真剣に検討しなければならないと思います.XQueryやXSLTなどの技術がこのシナリオにはるかに適しています。

関連する問題