【发布时间】:2013-12-16 10:53:51
【问题描述】:
我知道我可以在一个 jar 中编译多个 xsd 文件。我尝试过使用不同的命名空间,但这只会让我完成目标的一半。这样我可以解析正确的模式,但我希望这对我的用户是透明的,我的用户将接收我已经解析的 xmlBeans 对象。
他们不必知道系统上当前存在哪个版本的 xml 文件。我需要每个 xsd 版本的超类来实现这一点。
这可以用 xmlBeans 完成吗?
【问题讨论】:
我知道我可以在一个 jar 中编译多个 xsd 文件。我尝试过使用不同的命名空间,但这只会让我完成目标的一半。这样我可以解析正确的模式,但我希望这对我的用户是透明的,我的用户将接收我已经解析的 xmlBeans 对象。
他们不必知道系统上当前存在哪个版本的 xml 文件。我需要每个 xsd 版本的超类来实现这一点。
这可以用 xmlBeans 完成吗?
【问题讨论】:
我的理解是,如果你有一个 com 命名空间和一个 com.v1 和 com.v2 命名空间,并且你在 com.v1 和 com.v2 中有一个名为 EmployeeV1 和 EmployeeV2 的 xsd 元素。 您想在 com 命名空间中创建一个名为 Employee 的超类,并将其返回给您的调用者?
您认为 EmployeeV1 和 EmployeeV2 可以从您的 xsd 中的 Employee 扩展吗?那么也许当你生成时,你会得到代表你的 xsd 的类层次结构。
如果这不起作用,(我已经好几年没有使用 xmlbeans 了),您可能必须创建自己的域对象并让您的调用者使用它。这可能是值得的,因为在我看来,您似乎在处理其他人所依赖的 XML 的解析,您可以通过拥有一个中间域对象从 XML 的结构(不断变化)中抽象出所有其他用户.
【讨论】: