JAXB生成的类:忽略中间类

JAXB生成的类:忽略中间类,jaxb,Jaxb,以下是我的XML模式的摘录: <xsd:complexType name="MyType"> <xsd:sequence> <xsd:element name="Numbers"> <xsd:complexType> <xsd:sequence> <xsd:element name="Number" minOcc

以下是我的XML模式的摘录:

<xsd:complexType name="MyType">
    <xsd:sequence>
        <xsd:element name="Numbers">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="Number" minOccurs="1" maxOccurs="5" type="xsd:decimal"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    </xsd:sequence>
</xsd:complexType>

JAXB为我生成以下类:

public class MyType {
    protected MyType.Numbers numbers;

    public static class Numbers {
        protected List<BigDecimal> number;
    }
}
公共类MyType{
受保护的MyType。数字;
公共静态类号{
受保护名单编号;
}
}
但我想忽略这个中间阶层,我想说:

public class MyType {
    protected List<BigDecimal> number;
}
公共类MyType{
受保护名单编号;
}

这在某种程度上是可能的吗?

是的,只有在外部插件的帮助下,JAXB才有可能做到这一点,因为这种修改实际上是对模型的更改。看一看


注:本论坛上已经提出了相同的问题(,)。请先使用搜索。

谢谢。但这对我不起作用<代码>数字现在是预期的列表。但是getter看起来是这样的:
public Numbers getNumbers{return Numbers;}
因此生成的类将无法编译…插件中可能存在错误:(很抱歉,我对此无能为力,因为我没有那个插件。请在你的问题中发布生成的代码:至少它会帮助其他会遇到同样问题的人。问题是我的一些XML元素的名称中包含Unterscore。例如,
last\u name
。出于某些原因,我不得不启用
下划线绑定=“asCharInWord”
。结果是变量名为
lastName
和getter
getLast\u name
。因此插件无法将变量与其getter和setter方法相匹配。这对您很有帮助。如果您能发布错误的代码+XSD,我将不胜感激。