先を考えて、XMLSchemaドキュメントにバージョン管理を含めたいと思います。w3cで推奨されるアプローチは、名前空間を同じに保ち、version属性を使用することです。
これまでのところ賢明です。
ただし、指定したバージョンに基づいて検証に使用するスキーマを切り替える必要はありませんか?Java 6 XMLスキーマ検証機能にはこの機能が含まれていますか?
先を考えて、XMLSchemaドキュメントにバージョン管理を含めたいと思います。w3cで推奨されるアプローチは、名前空間を同じに保ち、version属性を使用することです。
これまでのところ賢明です。
ただし、指定したバージョンに基づいて検証に使用するスキーマを切り替える必要はありませんか?Java 6 XMLスキーマ検証機能にはこの機能が含まれていますか?
多くの人が名前空間を同じに保つようにアドバイスしているのは正しいです。そのアプローチが多くの人々(それをアドバイスするほとんどの人を含む)に有効であることは間違いありませんが、それが唯一のもっともらしいまたは推奨される実践であるという本当に説得力のある議論を見たことがありません。(また、特定の名前空間に対して1つのスキーマしか存在できないと想定しているシステムでは、名前空間を変更することが、語彙をバージョン管理できる唯一の方法である可能性があります。)
名前空間をバージョン間で一定に保つことは、複数のスキーマを維持することを意味する場合もあります。前回そのドキュメントを調べたとき、Xerces Jは、必要なことを行うのをかなり簡単にしているように見えました。検証呼び出しには、基本的に「ここで、このドキュメントとこのスキーマを取得して検証する」というものが含まれていました。
新しいバージョンごとに有効なドキュメントのセットが拡張されるため、以前のバージョンのスキーマに準拠するように作成されたドキュメントに対して各バージョンのスキーマを使用できると言うことで、複数のスキーマの必要性を回避する人もいます。(さらに改良:小数点リリースはそのように下位互換性がなければならず、メジャーリリースのみが下位互換性がありません-もしそうなら、それらは新しい名前空間を使用しなければなりません。)