JAXB XJC代码生成元素初始化器及其声明

时间:2012-11-06 12:19:43

标签: 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。

1 个答案:

答案 0 :(得分:0)

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