gpt4 book ai didi

java - JAXB 生成 nillable=true

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

我使用 JAXB 2.2.4 生成具有以下绑定(bind)文件的 Java 代码:

<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<globalBindings generateElementProperty="false">

</globalBindings>

不幸的是,生成的代码有一个 nillable = true 注释。请参阅以下示例:

@XmlElement(name = "ArtID", nillable = true)
protected STEBeitrag artID;

这是 STEBeitrag 的定义:

<xsd:complexType name="CT_Beitrag">
<xsd:complexContent>
<xsd:extension base="allgemein:CT_Objekt">
<xsd:sequence>
<xsd:element name="ArtID" type="daten:STE_Beitrag" minOccurs="0" maxOccurs="1" nillable="true"/></xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="STE_Beitrag" abstract="true">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>

如果我没有在生成的 CT_Beitrag 对象中设置 ArtID,那么解码器会产生类似于

的输出
<ns:ArtID xsi:nil="true"/>

元素 ArtID 具有抽象类型,因此此 XML 输出无效。

如何使用 JAXB 生成省略 XmlElement 注释中的 nillable=true 的代码?顺便说一下,架构无法更改。

最佳答案

我没有解决方案,但是这个问题在 bug 中得到了解决 http://java.net/jira/browse/JAXB-890我希望这个问题能得到解决。

关于java - JAXB 生成 nillable=true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548062/

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