jaxb2 Jaxb自定义字符串适配器绑定到Java类型列表<String>
我使用自定义字符串适配器来修剪和删除多余的空格,但保留换行符。 我创建了一个绑定文件来使用新适配器
xjb:
<jaxb:globalBindings>
<xjc:javaType name="java.lang.String" xmlType="xsd:string" adapter="com.xsd.adapter.CleanStringAdapter"/>
<xjc:serializable uid="1" />
</jaxb:globalBindings>
xsd:
<xs:complexType name="BarStatus">
<xs:sequence>
<xs:element name="BarType" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="ShortDescription" type="xs:string" use="required" />
<xs:attribute name="LongDescription" type="xs:string" use="required" />
</xs:complexType>
生成的Java类属性
private final static long serialVersionUID = 1L;
@XmlElement(name = "BarType", required = true)
@XmlJavaTypeAdapter(CleanStringAdapter.class)
protected List<String> barType;
@XmlAttribute(name = "Id", required = true)
@XmlSchemaType(name = "nonNegativeInteger")
protected BigInteger id;
@XmlAttribute(name = "Name", required = true)
@XmlJavaTypeAdapter(CleanStringAdapter.class)
protected String name;
@XmlAttribute(name = "ShortDescription", required = true)
@XmlJavaTypeAdapter(CleanStringAdapter.class)
protected String shortDescription;
@XmlAttribute(name = "LongDescription", required = true)
@XmlJavaTypeAdapter(CleanStringAdapter.class)
protected String longDescription;
但是类型为List的属性BarType也被映射到CleanStringAdapter JAVAClassCastException:java。util。无法将ArrayList转换为java。封送处理期间的lang.String
有没有办法将映射仅限于字符串类型而不限于列表
共 (0) 个答案