[英]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.