Jaxb Упростить плагин

Я пытаюсь использовать плагин упрощения, чтобы упростить сгенерированный код. У меня есть определенный тип:

<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 ответ

Аннотация должна находиться под тегом 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>
Другие вопросы по тегам