我尝试使用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插件可以工作,所以我不太确定,如果插件坏了什么的?有没有人设法让这个运行?
答案 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>