【发布时间】:2012-11-19 09:56:25
【问题描述】:
我有一个 xsd,其中嵌入了 几个子 XSD(使用“xsd:include”。)(但每个 xsd 都属于 相同的命名空间)。我被要求在单独的子包(每个子 XSD 一个子包)而不是一个包中生成 jaxb 类。
根据我目前阅读的内容,我们可以将jaxb:schemaBindings 添加到这些单独的xsd 中,并在单独的包中生成类,只要这些xsd 属于不同的命名空间。
但就我而言,我想做的是在几个子包中为一组属于相同命名空间的 xsd 创建类。你能帮我用 JAXB 做这件事吗?
编辑:我添加了更多关于我的问题的描述以进一步澄清它。
我所有的 XSD 都有以下标题。因此相同的命名空间。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:srm="http://www.mycompany.com/srm/"
targetNamespace="http://www.mycompany.com/srm/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" elementFormDefault="qualified"
attributeFormDefault="unqualified" version="1.0">
假设我的架构文件名是 A.xsd、B.xsd 和 C.xsd。
在 C.xsd 中,我定义了一些带有上述标头的元素(字符串类型)。
在 B.xsd 中,我使用“xsd:include”标签包含了 C.xsd,然后使用 C.xsd 中定义的复杂类型定义了一个 complexType。 )
在 A.xsd 中,我使用“xsd:include”标签包含了 B.xsd,然后使用 B.xsd 中定义的复杂类型定义了一个 complexType。(具有我上面提到的相同标题)
我想生成如下所述的 JAXB 类。
在 com.generate.packageA 包中生成 A.xsd 相关的 JAXB 类。
在 com.generate.packageB 包中生成 B.xsd 相关的 JAXB 类。
com.generate.packageC 包中生成的与 C.xsd 相关的 JAXB 类。
【问题讨论】:
-
您找到解决方案了吗?我正在尝试实现类似的东西,并希望有一个解决方案