这是我的第一个问题,所以请温柔;)
我遇到了一个奇怪的问题.基本上我得到三个XSD定义,如下所示:
PartA.xsd
targetNameSpace="PartA"
include="PartB.xsd"
PartB.xsd
<!-- no namespace definition!!! -->
PartC.xsd
targetNameSpace="PartC"
inlude="PartB.xsd"
import="PartA.xsd"
Run Code Online (Sandbox Code Playgroud)
将PartC通过JAXB 绑定到Java类时会弹出错误:
在链接之后,我发现,实际错误在于PartB,它没有命名空间声明!这种方法称为Chameleon Schema.PartB中定义的类型将采用导入XSD的名称空间.
所以在我的例子中,同一类型有两个名称空间:
这就是JAXB崩溃的地方.我还没有找到一种方法来正确绑定PartC.而且(为了让事情变得棘手)我有机会改变原始的XSD定义!
有没有人遇到过这种现象之类的东西,并且有一个有效的解决方法呢?