我有一个 xsd,其中嵌入了几个子 XSD(使用“xsd:include”。)(但每个 xsd 属于同一个命名空间)。我被要求在单独的子包中生成 jaxb 类(每个子 XSD 一个子包)而不是一个包。
根据我目前阅读的内容,我们可以添加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 类。