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