JAXB生成—如何在Java代码中强制存在嵌套元素(>;内部类)

JAXB生成—如何在Java代码中强制存在嵌套元素(>;内部类),jaxb,nested,inner-classes,lazy-initialization,Jaxb,Nested,Inner Classes,Lazy Initialization,我正在使用JAXB从我们自己设计的XSD生成域对象。在下面给出的XSD的相关片段中,我在父Job元素中有一个嵌套的预处理元素。正如预期的那样,这被分解为父作业类中的预处理内部类 <xsd:complexType name="Job"> <xsd:element name="preProcessing" nillable="false"> <xsd:complexType> <xsd:sequence>

我正在使用JAXB从我们自己设计的XSD生成域对象。在下面给出的XSD的相关片段中,我在父Job元素中有一个嵌套的预处理元素。正如预期的那样,这被分解为父
作业
类中的
预处理
内部类

<xsd:complexType name="Job">
    <xsd:element name="preProcessing" nillable="false">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="mask" type="MaskTypeEnum" />
                <xsd:element name="userDefinedMaskFile" type="xsd:string" />
                <xsd:element name="experimentalDesign" type="xsd:boolean" />
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
我希望能够确保,在Java代码中,
作业
的实例总是有一个
预处理
类的实例。为此,我希望能够将JAXB一代定制为:

1) 在
作业
类构造函数中实例化
预处理
实例 2) 当调用getter方法时,延迟地实例化一个
预处理
实例(就像列表一样,这很好)

setter方法是多余的(实际上,不应该调用,因为
预处理
实例是最终的)

我在谷歌上搜索了JAXB+短语,如惰性实例化、默认值、嵌套元素,到目前为止,我画了一个空白。似乎可以使用自定义XMLAdapters执行某些类自定义,但我的场景实际上与编组/解编组无关,它与Java应用程序中域对象的操作有关

public Job.PreProcessing getPreProcessing() {
    return preProcessing;
}
public void setPreProcessing(Job.PreProcessing value) {
    this.preProcessing = value;
}