Java 使用XMLBean导入和使用外部模式

Java 使用XMLBean导入和使用外部模式,java,xsd,schema,xmlbeans,multiple-schema,Java,Xsd,Schema,Xmlbeans,Multiple Schema,我有点问题。很久以前,我为我们的生产系统编写了一个API,它使用ApacheXMLBeans。该模式是同质的(即没有导入,所有内容都来自同一个模式),并且所有内容都工作得很好,即使API处理的代码极其冗长。此后,我使用JAXB编写了一个更简单、更优雅的restful API,并考虑了旧API的部分内容,即不同的模式,但其中一些元素是相同的。为了清理和简化旧API中的绑定代码,我删除了其中的一些部分,导入了新的模式,并使用了这些元素。但是,每当我尝试解析使用新模式混合的文档时,我都会从XML be

我有点问题。很久以前,我为我们的生产系统编写了一个API,它使用ApacheXMLBeans。该模式是同质的(即没有导入,所有内容都来自同一个模式),并且所有内容都工作得很好,即使API处理的代码极其冗长。此后,我使用JAXB编写了一个更简单、更优雅的restful API,并考虑了旧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

以前有人遇到过这种情况吗?你有什么解决办法或想法吗?我真的很感激。非常感谢。

文档中的名称空间看起来仍然是旧名称空间。没有架构和文档很难说。

感谢您的回复。我尝试过在文档的根目录和“冗余元素”本身上以多种排列方式显式添加新名称空间。即:

<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问题。