Java 使用XMLBean导入和使用外部模式
我有点问题。很久以前,我为我们的生产系统编写了一个API,它使用ApacheXMLBeans。该模式是同质的(即没有导入,所有内容都来自同一个模式),并且所有内容都工作得很好,即使API处理的代码极其冗长。此后,我使用JAXB编写了一个更简单、更优雅的restful API,并考虑了旧API的部分内容,即不同的模式,但其中一些元素是相同的。为了清理和简化旧API中的绑定代码,我删除了其中的一些部分,导入了新的模式,并使用了这些元素。但是,每当我尝试解析使用新模式混合的文档时,我都会从XML bean中得到一个验证错误:Java 使用XMLBean导入和使用外部模式,java,xsd,schema,xmlbeans,multiple-schema,Java,Xsd,Schema,Xmlbeans,Multiple Schema,我有点问题。很久以前,我为我们的生产系统编写了一个API,它使用ApacheXMLBeans。该模式是同质的(即没有导入,所有内容都来自同一个模式),并且所有内容都工作得很好,即使API处理的代码极其冗长。此后,我使用JAXB编写了一个更简单、更优雅的restful API,并考虑了旧API的部分内容,即不同的模式,但其中一些元素是相同的。为了清理和简化旧API中的绑定代码,我删除了其中的一些部分,导入了新的模式,并使用了这些元素。但是,每当我尝试解析使用新模式混合的文档时,我都会从XML be
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
以前有人遇到过这种情况吗?你有什么解决办法或想法吗?我真的很感激。非常感谢。文档中的名称空间看起来仍然是旧名称空间。没有架构和文档很难说。感谢您的回复。我尝试过在文档的根目录和“冗余元素”本身上以多种排列方式显式添加新名称空间。即:
<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>
.....
.....
.....
…我还尝试了许多与默认名称空间等的组合,但都没有成功。你能粘贴一些XSD,这样我们就可以避免格式错误的XSD问题吗?事实上,我已经有机会重做了。我使用的XSD是在Eclipse中创建的,使用其图形编辑器进行编辑,并根据W3C validator for XSD模式进行验证,因此我可以安全地排除格式错误的XSD问题。