当我运行xjc来生成表示这个XSD片段的Java类型时:
<xs:complexType name="fileUploadRequest">
<xs:choice>
<xs:element name="path" type="xs:string"/>
<xs:element name="file" type="xs:base64Binary"/>
</xs:choice>
</xs:complexType>我得到了一个类,如果我用可选元素指定了一个sequence,那么这个类就无法与它区分开来。
我想要一种有一点智慧的类型,这样我一次最多可以选择一个元素。例如,如果我调用生成的setFile方法,它应该使路径为空。有什么插件我可以使用,似乎是一个明显的要求,一个代码生成器?
发布于 2013-09-05 15:10:25
binding.xml
您可以使用以下外部绑定文件来生成要查找的属性的类型:
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
version="2.1">
<globalBindings choiceContentProperty="true"/>
</bindings> XJC调用
使用-b标志引用绑定文件。
xjc -b binding.xml schema.xsd生成的属性
现在将生成以下属性:
@XmlElements({
@XmlElement(name = "path", type = String.class),
@XmlElement(name = "file", type = byte[].class)
})
protected Object pathOrFile;获取更多信息
https://stackoverflow.com/questions/18619463
复制相似问题