元素初始值设定项的 JAXB XJC 代码生成及其声明

标签 jaxb xjc

如果我有一个如下的架构:

<xs:element name="Book">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="Chapter" />
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="Chapter">
    <xs:complexType>
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Word" />
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="Word">
</xs:element>

它会产生类似的东西:
@XmlRootElement(name = "Book")
public class Book {

    @XmlElement(name = "Chapter", required = true)
    protected Chapter chapter;

是否可以生成以下内容?
@XmlElement(name = "Chapter", required = true)
protected Chapter chapter = new Chapter();

这样,即使 XML 文件缺少 Book 中的 Chapter 元素,当它被解码时,仍然会创建一个 Book 对象,因此可以这样做
book.getChapter().getWord() 并检索一个空列表,而不是检查 null。

最佳答案

您可以创建一个插件。我写了一个 short tutorial这可以帮助您做到这一点。希望你觉得它有帮助。

关于元素初始值设定项的 JAXB XJC 代码生成及其声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13250913/

相关文章:

java - 使用 JaxB 解码包含 List<String> 字段的对象

java - 针对泛型和特定类型或该类型列表的灵活 JAXB XML 解析

java - 确定XJC生成的java类的对象层次结构

java - Maven 发布插件存在 JAXB 问题

JAXB 生成的特定类型的类实现了自定义接口(interface)

java - XJC - 它是可扩展的吗?

jaxb - xjc 生成的代码引用来自 sun 内部包的 OverrideAnnotationOf 注解

java - 从 xml 中删除不需要的空格

jaxb - xs :int unmarshalled to null for decimal values

java - 编码 DefaultListModel 不写入数据