我收到以下错误:
If a class has @XmlElement property, it cannot have @XmlValue property
updated class:
@XmlType(propOrder={"currencyCode", "amount"})
@XmlRootElement(name="priceInclVat")
@XmlAccessorType(XmlAccessType.FIELD)
public class PriceInclVatInfo {
@XmlAttribute
private String currency;
@XmlValue
private String currencyCode;
private double amount;
public PriceInclVatInfo() {}
public PriceInclVatInfo(String currency, String currencyCode, double amount) {
this.currency = currency;
this.currencyCode = currencyCode;
this.amount = amount;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getCurrencyCode() {
return currencyCode;
}
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
}
我想获得以下输出,其中包含元素属性和值:
<currencyCode plaintext="£">GBP</currencyCode>
我怎样才能实现这个目标?如果我有 @XmlRootElement(name="priceInclVat") 是否可以?
对于错误:
如果类具有 @XmlElement 属性,则它不能具有 @XmlValue 属性
由于您已指定字段访问权限,因此默认情况下未注释的amount
字段被视为具有@XmlElement
.
private double amount;
您可以执行以下操作之一:
- 注释
amount
with @XmlAttribute
- 注释
amount
with @XmlTransient
.
- Change
@XmlAccessorType(XmlAccessType.FIELD)
to @XmlAccessorType(XmlAccessType.NONE)
这样只有带注释的字段才会被视为映射。
我怎样才能实现这个目标?如果我有可能吗
@XmlRootElement(name="priceInclVat")?
您可以包装以下实例PriceInclVatInfo
在一个例子中JAXBElement
覆盖根元素并对其进行封送。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)