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>