我有一个抽象类看起来像这样。
@XmlTrasient
public abstract class SimpleValue<R> {
public R getRawValue() {
return rawValue;
}
public void setRawValue(final R rawValue) {
this.rawValue = rawValue;
}
@XmlElement(nillable = true, required = true)
private R rawValue;
}
我延伸了这个。
public class BooleanValue extends SimpleValue<Boolean> {
}
当我打印架构时,我得到了这个。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" version="1.0"
targetNamespace="http://jinahya.googlecode.com/xml/bind"
xmlns:tns="http://jinahya.googlecode.com/xml/bind"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="booleanValue" type="tns:booleanValue"/>
<xs:complexType name="booleanValue">
<xs:sequence>
<xs:element name="rawValue" type="xs:anyType" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
有没有办法更好地表达type="xs:anyType"
部分?
当我使用BooleanValue
@XmlElement(nillable = true, required = true)
@Override
public Boolean getRawValue() {
return super.getRawValue();
}
@Override
public void setRawValue(final Boolean rawValue) {
super.setRawValue(rawValue);
}
我得到了。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" version="1.0"
targetNamespace="http://jinahya.googlecode.com/xml/bind"
xmlns:tns="http://jinahya.googlecode.com/xml/bind"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="booleanValue" type="tns:booleanValue"/>
<xs:complexType name="booleanValue">
<xs:sequence>
<xs:element name="rawValue" type="xs:boolean" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
答案 0 :(得分:1)
解决方案就是您在问题中发布的内容。
@XmlElement(nillable = true, required = true)
@Override
public Boolean getRawValue() {
return super.getRawValue();
}
@Override
public void setRawValue(final Boolean rawValue) {
super.setRawValue(rawValue);
}