Man*_*ula 5 java xml jaxb jaxb2
我有一个xsd,其中嵌入了几个子XSD(使用“ xsd:include”。)(但是每个xsd都属于同一个名称空间)。我被要求在单独的子包(每个子XSD一个子包)而不是一个包中生成jaxb类。
根据到目前为止的jaxb:schemaBindings读物,如果只有那些xsds属于不同的名称空间,我们可以将它们添加到这些单独的xsds中并在单独的包中生成类。
但就我而言,我想在几个子包中为一组属于同一名称空间的xsds创建类。您能帮我使用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">
Run Code Online (Sandbox Code Playgroud)
假设我的架构文件名为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类。
与A.xsd相关的JAXB类在com.generate.packageA包中生成。
与B.xsd相关的JAXB类在com.generate.packageB包中生成。
与C.xsd相关的JAXB类在com.generate.packageC包中生成。
您可以将每个“包含”模式中的 JAXB 类分别生成到单独的包中,并利用 XJC 工具中可用的情节机制。
示例(来自 Stack Overflow 上给出的答案)
| 归档时间: |
|
| 查看次数: |
5013 次 |
| 最近记录: |