我们正在为预定义的架构创建jaxb类。模式包含使用xs:choice创建complexTypes的某些元素。在这种情况下,生成的绑定包含一个List,这使得它很复杂,因为我们必须识别实际的实例,然后再进行转换。我们尝试使用绑定自定义属性" choiceContentProperty =" false""改变这种行为。但这似乎不起作用。有否覆盖此行为的任何建议?
答案 0 :(得分:1)
免责声明:我是jaxb2-simplify-plugin
的作者。
此:
<xs:complexType name="typeWithElementsProperty">
<xs:choice maxOccurs="unbounded">
<xs:element name="foo" type="xs:string"/>
<xs:element name="bar" type="xs:int"/>
</xs:choice>
</xs:complexType>
通常生成这个:
@XmlElements({
@XmlElement(name = "foo", type = String.class)
@XmlElement(name = "bar", type = Integer.class),
})
protected List<Serializable> fooOrBar;
但是jaxb2-simplify-plugin
你会得到这个:
@XmlElement(name = "foo", type = String.class)
protected List<String> foo;
@XmlElement(name = "bar", type = Integer.class)
protected List<Integer> bar;