簡體   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