首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xjc与XSD选择

xjc与XSD选择
EN

Stack Overflow用户
提问于 2013-09-04 16:43:12
回答 1查看 7.1K关注 0票数 6

当我运行xjc来生成表示这个XSD片段的Java类型时:

代码语言:javascript
复制
  <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方法,它应该使路径为空。有什么插件我可以使用,似乎是一个明显的要求,一个代码生成器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-05 15:10:25

binding.xml

您可以使用以下外部绑定文件来生成要查找的属性的类型:

代码语言:javascript
复制
<?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标志引用绑定文件。

代码语言:javascript
复制
xjc -b binding.xml schema.xsd

生成的属性

现在将生成以下属性:

代码语言:javascript
复制
@XmlElements({
    @XmlElement(name = "path", type = String.class),
    @XmlElement(name = "file", type = byte[].class)
})
protected Object pathOrFile;

获取更多信息

  • http://blog.bdoughan.com/2011/04/xml-schema-to-java-xsd-choice.html
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18619463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档