繁体   English   中英

我们可以为多个包中的一组xsd生成JAXB类吗?

[英]Can we generate JAXB classes for a set of xsd in multiple packages?

我有一个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"> 

假设我的模式文件名是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类,就像我在下面提到的那样。

  • JAXB类与A.xsd相关,用于在com.generate.packageA包中生成。

  • 与B.xsd相关的JAXB类在com.generate.packageB包中生成。

  • 与cxsd相关的JAXB类在com.generate.packageC包中生成。

您可以将每个“包含”模式中的JAXB类分别生成到单独的包中,并利用XJC工具中提供的剧集机制。

示例(来自Stack Overflow上给出的答案)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM