JAXB List Tag创建内部类


问题内容

因此,我们具有以下形式的XSD类型:

<xs:complexType name="Foo">
    <xs:all>
        <xs:element name="Bars">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Bar" type="barType" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:all>
</xs:complexType>

表示XML:

<Foo>
    <!-- Elements snipped for brevity-->
    <Bars>
        <Bar>
            <!-- Bar Element -->
        </Bar>
    </Bars>
</Foo>

xjc产生几乎正确的结果。唯一令人讨厌的是,“ Bars”被创建为存储Bars列表的内部类。无论如何,在Foo中将Bars列为列表,同时仍保留上面的XML?


问题答案:

另一种方法是删除周围的 元素,XML看起来不再那么漂亮了,但是它将使Java代码更易于阅读。与xjc的简单绑定(请参阅 http://jaxb.java.net/nonav/jaxb20-fcs/docs/vendorCustomizations.html)一起,它将生成非常漂亮且有用的Java代码。