Jaxb简化插件

时间:2012-12-06 11:01:38

标签: java jaxb jaxb2-basics jaxb2-simplify-plugin

我尝试使用simplify plugin来简化生成的代码。 我有一个定义的类型:

<xsd:complexType name="typeWithReferencesProperty">
        <xsd:choice maxOccurs="unbounded">
        <xsd:annotation>
                <xsd:appinfo>
                    <simplify:as-element-property/>
                </xsd:appinfo>
            </xsd:annotation>
            <xsd:element name="a" type="AttributeValueIntegerType"/>
            <xsd:element name="b" type="AttributeValueIntegerType"/>
        </xsd:choice> 
    </xsd:complexType>

但它不起作用,因为它会导致以下错误:

compiler was unable to honor this as-element-property customization. It is attached to a wrong place, or its inconsistent with other bindings.

我使用了完全配置,我还有其他jaxb插件可以工作,所以我不太确定,如果插件坏了什么的?有没有人设法让这个运行?

1 个答案:

答案 0 :(得分:0)

注释应该位于Element标记下,以便让编译器理解它是针对该特定元素的。

尝试以下操作并告诉我它是否有效。

<xs:complexType name="typeWithReferencesProperty">
    <xs:choice maxOccurs="unbounded">
        <xs:element name="a" type="someType">
            <xs:annotation>
                <xs:appinfo>
                    <simplify:as-element-property/>
                </xs:appinfo>
            </xs:annotation>
        </xs:element>
        <xs:element name="b" type="someType">
                              <xs:annotation>
                <xs:appinfo>
                    <simplify:as-element-property/>
                </xs:appinfo>
            </xs:annotation>
    </xs:choice> 
</xs:complexType>