XML Beanを使用した外部スキーマのインポートと使用
-
08-07-2019 - |
質問
少し問題があります。実稼働システム用のAPIをかなり前に作成し、Apache XML Beanを使用しました。スキーマは同種であり(つまり、インポートはなく、すべてが同じスキーマ内からでした)、API処理のコードが非常に冗長であっても、すべてが正常に機能しました。それ以来、古いものの一部、つまり異なるスキーマを念頭に置いて、JAXBを使用してはるかにシンプルでエレガントな安らかなAPIを作成しましたが、一部の要素は同一です。古いAPIのバインディングコードをクリーンアップおよび簡素化することを期待して、一部を削除し、新しいスキーマをインポートして、代わりにそれらの要素を使用することで一部を置き換えました。ただし、スキーマの新しい混合を使用するドキュメントを解析しようとすると、XML Beanから検証エラーが発生します。
error: cvc-complex-type.2.4a: Expected element 'redundant-element@http://www.my.com/old/xmlns' instead of 'redundant-element@http://www.my.com/new/xmlns' here in element redundant-element-list@http://www.my.com/old/xmlns
これに遭遇した人はいますか?解決策やアイデアはありますか?本当にありがたいです。ありがとうございました。
解決 2
ご回答ありがとうございました。ドキュメントのルートと「冗長要素」自体の両方に、多数の順列で新しい名前空間を明示的に追加しようとしました。 IE:
<oldxmlns:root xmlns:oldxmlns="abc" xmnls:newxmlns="xyz">
.....
</oldxmlns:root>
..および...
<oldxmlns:root xmlns:oldxmlns="abc">
<oldxmlns:nested-element>
.....
<newxmlns:redundant-element xmnls:newxmlns="xyz">
.....
</newxmlns:redundant-element>
.....
</oldxmlns:nested-element>
</oldxmlns:root>
...また、デフォルトのネームスペースなどとの組み合わせを多数試しましたが、どれも機能していませんでした。
他のヒント
ドキュメント内の名前空間はまだ古いようです。スキーマとドキュメントなしではわかりにくい。
所属していません StackOverflow