Java 使用带有值的JAXB注释
当使用JAXB注释生成XML时,我知道不可能在同一Java成员上使用Java 使用带有值的JAXB注释,java,xml,jaxb,annotations,Java,Xml,Jaxb,Annotations,当使用JAXB注释生成XML时,我知道不可能在同一Java成员上使用@xmlement(name=“City”)&@XmlValue,因为它们是互斥的是否有可能@xmlement同时生成一个带有值的XML标记?如果不能做到这一点,将导致大量对象被创建,这似乎有些过分 Java代码 .... @XmlElement(name="City") @XmlValue <---- I'm wanting to do this but I'm limited by the API priv
@xmlement(name=“City”)
&@XmlValue
,因为它们是互斥的是否有可能@xmlement同时生成一个带有值的XML标记?如果不能做到这一点,将导致大量对象被创建,这似乎有些过分
Java代码
....
@XmlElement(name="City")
@XmlValue <---- I'm wanting to do this but I'm limited by the API
private String city;
。。。。
@xmlement(name=“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>
某地名称
如果希望元素具有简单文本,则只需要@xmlement注释。如果字段的类型是字符串,JAXB将生成一个xml元素,该元素的值为字符串的值
您唯一需要的是:
@XmlElement(name="City")
private String city;
@xmlement
是否有类似于defaultValue
的参数作为参数,如果这正是您要寻找的?在这种情况下,我不寻找默认值。
@XmlElement(name="City")
private String city;