gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 02:08:49 24 4
gpt4 key购买 nike

我有一个 xsd,其中嵌入了几个子 XSD(使用“xsd:include”。)(但每个 xsd 都属于相同的命名空间)。我被要求在单独的子包(每个子 XSD 一个子包)而不是一个包中生成 jaxb 类。

根据我目前阅读的内容,我们可以添加 jaxb:schemaBindings到这些单独的 xsds 并在单独的包中生成类,如果只有那些 xsds 属于不同的命名空间

但在我的例子中,我想做的是在几个子包中为一组属于相同命名空间的xsds 创建类。你能帮我用 JAXB 做这个吗?


编辑:我已经添加了一些关于我的问题的描述来澄清它。

我所有的 XSD 都有以下 header 。因此相同的命名空间

<?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 中,我定义了一些带有上述 header 的元素(字符串类型)。

  • 在 B.xsd 中,我使用“xsd:include”标签包含了 C.xsd,然后有一个使用 C.xsd 中定义的复杂类型的 complexType 定义。(具有与我上面提到的相同的 header )

  • 在 A.xsd 中,我使用“xsd:include”标签包含了 B.xsd,然后有一个使用 B.xsd 中定义的复杂类型的 complexType 定义。(具有与我上面提到的相同的 header )

我想像下面提到的那样生成 JAXB 类。

  • 要在 com.generate.packageA 包中生成与 A.xsd 相关的 JAXB 类。

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

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

最佳答案

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

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

关于java - 我们可以为多个包中的一组 xsd 生成 JAXB 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com