質問

少し問題があります。実稼働システム用の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>

...また、デフォルトのネームスペースなどとの組み合わせを多数試しましたが、どれも機能していませんでした。

他のヒント

ドキュメント内の名前空間はまだ古いようです。スキーマとドキュメントなしではわかりにくい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top