繁体   English   中英

使用jaxb将xsd转换为Java时删除xsd元素

[英]Remove xsd element when converting xsd to java using jaxb

我将从xsd生成Java代码。 我想知道在使用jaxb将xsd转换为java时如何删除xsd元素。 我的目标是忽略消息

例如:

<xs:element name="note">
      <xs:complexType>
        <xs:sequence>
          <xs:element type="xs:string" name="name"/>
          <xs:element type="xs:string" name="message"/>
        </xs:sequence>
      </xs:complexType>
</xs:element>

Java变量

        @XmlElement
        protected String name;

在这里,您可以看到该消息元素已被删除。 我想知道怎么做吗?

您可以更改.xsd吗? 当前元素“注释”表明“名称”和“消息”都是必需的。 如果希望“消息”作为条件,则可能需要添加minOccurs =“ 0”属性:

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element type="xs:string" name="name"/>
      <xs:element type="xs:string" name="message" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

如果我对您的理解正确,那么总而言之,您将忽略必需的元素,但仍希望结果正确验证。 我的简短回答是,这是矛盾的,没有道理。 JAXB是为正确执行而构建的,您想要错误地执行它(?)。

您有几种选择,例如。

  • 使用额外的构造函数参数。
  • 生成no-arg构造函数。
  • 不生成,但是手动编码JAXB注释的类。 也许关闭一些验证。
  • 不要使用JAXB,请使用其他东西(dom4j等)或手工制作xml
  • 可能您可以在绑定文件甚至插件中添加一些替代,但是我认为这样做不值得。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM