[英]Use JAXB Annotation With Value
當使用JAXB注釋生成XML時,我知道無法在同一Java成員上使用@XmlElement(name="City")
& @XmlValue
,因為它們是互斥的。 @XmlElement是否可以同時生成帶有值的XML標簽? 無法執行此操作將導致創建大量對象,這似乎是過大的。
Java代碼
....
@XmlElement(name="City")
@XmlValue <---- I'm wanting to do this but I'm limited by the API
private String city;
預期產量
....
<City>some value here</City>
....
我們可以嘗試使用另一種使用@XmlValue
批注的類型來實現相同的@XmlValue
。
以下是您可以嘗試的-
@XmlRootElement(name="CityRoot")
@XmlType(name="CityRootType")
public class CityRoot {
@XmlElement(name="City")
public CityName s;
}
CityName
定義如下
public class CityName {
@XmlValue
String name;
}
現在,將這兩個文件提供給schemagen
以生成.xsd
文件,並使用該生成的.xml
文件進行驗證。
以下是生成XML文件時的樣子-
<?xml version="1.0" encoding="UTF-8"?>
<CityRoot>
<City>SomeCityName</City>
</CityRoot>
如果要使用簡單文本元素,則唯一需要的注釋就是@XmlElement注釋。 如果字段的類型為String,則JAXB會生成一個XML元素,其中String的值為該元素的值。
您唯一需要的是:
@XmlElement(name="City")
private String city;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.