javax.xml.bind
我通过从 XSD生成的带注释的类来读取 XML 。
<xsd:complexType name="foo">
<xsd:attribute name="bar" type="xsd:double" />
</xsd:complexType>
所以我的类生成为:
public Double getBar(){....}
好的,为了确保双属性是肯定的,我使用xsd:restriction
.
<xsd:simpleType name="DoublePositive">
<xsd:restriction base="xsd:double">
<xsd:minExclusive value="0" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="foo">
<xsd:attribute name="bar" type="DoublePositive" />
</xsd:complexType>
太糟糕了,xjc 生成一个 String 而不是 Double。
public String getBar(){....}
我可以强制使用 Double 而不是 String 吗?
解决方案:
我的问题是错误的。我有xsi:type="DoublePositive"
而不是type="DoublePositive"