Импорт и использование внешней схемы с использованием XML Beans
У меня есть небольшая проблема. Я давно написал 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 ответа
Спасибо за ваш ответ. Я попытался явно добавить новое пространство имен, как в корне документа, так и в самом "избыточном элементе", в многочисленных перестановках. 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>
... и я также пробовал многочисленные комбинации с пространствами имен по умолчанию и т. д., и ни одна из них не сработала.
Похоже, что пространство имен в документе все еще старое. Трудно сказать без схем и документов.