Импорт и использование внешней схемы с использованием XML Beans - PullRequest
0 голосов
/ 11 ноября 2008

У меня есть небольшая проблема. Я давно написал API для нашей производственной системы, и он использовал Apache XML Beans. Схема была однородной (т.е. без импорта, все было внутри одной и той же схемы), и все работало просто отлично, даже если код для обработки API был невероятно многословным. С тех пор я написал гораздо более простой и элегантный API для отдыха с использованием JAXB, имея в виду части старого, то есть другую схему, но некоторые элементы идентичны. В надежде очистить и упростить мой код привязки в старом API, я заменил некоторые части, удалив их и импортировав новую схему и используя вместо этого эти элементы. Однако всякий раз, когда я пытаюсь проанализировать документы, использующие новую смесь схем, я получаю сообщение об ошибке проверки из XML Beans:

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 ]

0 голосов
/ 12 ноября 2008

Спасибо за ваш ответ. Я попытался явно добавить новое пространство имен, как в корне документа, так и в самом «избыточном элементе», в многочисленных перестановках. 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>

... и я также пробовал многочисленные комбинации с пространствами имен по умолчанию и т. Д., И ни одна из них не сработала.

0 голосов
/ 12 ноября 2008

Похоже, пространство имен в документе все еще старое. Трудно сказать без схем и документов.

...