我遇到了以下问题:我们有以下XSD元素:
<xsd:element name="Content">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Data" type="base64Binary"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
我们从XSD生成了jaxb类,产生了以下类
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "Data" })
@XmlRootElement(name = "Content")
public class Content {
@XmlElement(name = "Data", required = true)
protected byte[] data;
public byte[] getData() {
return data;
}
public void setData(byte[] value) {
this.data = value;
}
}
每当我们通过setData方法写入Content / Data元素时,jaxb都会将数据自动编码为base64。
但是现在我们有了已经以base64编码的数据。如果我们将其写入Content / Data元素,它将第二次获得base 64编码,因此生成的XML包含Content / Data元素内的数据,该数据被base64编码两次。
编组时,是否有任何方法可以跳过jaxb对base64Binary类型进行的自动base64编码?