簡體   English   中英

將JAXB注釋與值一起使用

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

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