使用JAXB注释生成XML时,我知道无法使用@XmlElement(name="City")
& @XmlValue
在同一Java成员上,因为它们是互斥的。 @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>
....
答案 0 :(得分:0)
我们可以尝试使用另一种使用@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>
答案 1 :(得分:0)
如果您想要一个包含简单文本的元素,那么您需要的唯一注释是@XmlElement注释。如果字段的类型是String,则JAXB生成一个xml元素,其String值作为元素的值。
你唯一需要的是:
@XmlElement(name="City")
private String city;