gpt4 book ai didi

java - JAXB JXC 为枚举生成模式而不管 @XmlTransient

转载 作者:搜寻专家 更新时间:2023-11-01 03:55:33 29 4
gpt4 key购买 nike

使用 JXC 模式生成 ant 任务,我似乎无法让它忽略枚举。我有几个内部使用的枚举来表示与生成的 XML 无关的类型或次要配置值。

我可以使用枚举作为 @XmlTransient 来排除该字段,以将其从对象的架构中排除,但仍会为枚举生成一个 simpleType 描述符!

例子:

public class CustomerType { 

@XmlTransient
public enum IsolationLevel { ALL, SAME_TYPE, SELECTED }

@XmlTransient
private Long id;
@XmlValue
private String name;
@XmlTransient
private IsolationLevel isolation = IsolationLevel.ALL;
}

生成的架构:

<xs:simpleType name="isolationLevel">
<xs:restriction base="xs:string">
<xs:enumeration value="ALL"/>
<xs:enumeration value="SAME_TYPE"/>
<xs:enumeration value="SELECTED"/>
</xs:restriction>
</xs:simpleType>

有人对如何让 JXC 忽略枚举有任何想法吗?它没有被任何 XML 映射的属性或字段使用,并且枚举本身被标记为 @XmlTransient - 为什么它仍然是我的架构的一部分?

最佳答案

我也遇到了这个问题,并将我的 pom 更新到 2.2.11,它至少在那个版本中是固定的。评论中提到的 Jira 错误也表明它已在 2.2.5 中修复。为此,我必须添加三个依赖项,如下所示:

<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.12</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.2.11</version>
</dependency>

关于java - JAXB JXC 为枚举生成模式而不管 @XmlTransient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829375/

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