簡體   English   中英

如何以編程方式在Java中隱藏XML(JAXB)

[英]How to programmatically hide XML in java (JAXB)

我有一個用例,在某些情況下(取決於業務邏輯),我們不想顯示一些XML元素。 所以我不能使用@XmlTransient(我認為)。

我想做這樣的事情。

private void HideSome() {
 // some code to hide a specific element

}

您應該將注釋中不需要的元素和相應的XSD定義為可選(minOccurs = 0 maxOccurs = 1)。

如果您不希望呈現它,請將其設置為null,然后再將其傳遞給編組器。

XSD

<complexType name="MyElementType">
  <sequence>
    <element name="ID" type="string" />
    <element name="MaybeHere" type="string" minOccurs="0" maxOccurs="1" />
  </sequence>
</complexType>
<element name="MyElement" type="MyElementType" />

爪哇

@XmlRootElement(name="MyElement")
public class MyElement {
  private String id;
  private String maybeHere;

  @XmlElement(name="ID")
  public String getId() {return id;}
  public void setId(String s){this.id = s;}

  @XmlElement(name="MaybeHere", required=false)
  public String getMaybeHere() {return maybeHere;}
  public void setMaybeHere(String s) { this.maybeHere = s;}
}

編組

/* in some code */
if(businessCondition){
  myElem.maybeHere = null;

}
marshaller.marshal(myElem);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM