嗨,我有xsd模式与base64Binary.当这个插件产生时,这个元素看起来像
@XmlElement(name = "element")
protected byte[] element;
但是我怎么能告诉这个插件使用@XmlJavaTypeAdapter(HexBinaryAdapter.class)所以我需要这样的东西
@XmlJavaTypeAdapter(HexBinaryAdapter.class)
@XmlElement(name = "element")
protected byte[] element;
我希望这可能会有所帮助
PS:我无法修改这些插件生成的类,因为它们总是被重写
解决方法:
您应该创建一个JAXB模式绑定文件,该文件指示JAXB实现使用内置的javax.xml.bind.DatatypeConverter进行与hexBinary之间的转换.
<jxb:bindings
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
version="2.1">
<jxb:bindings schemaLocation="YourSchema.xsd">
<jxb:bindings node="//xs:element[@name='element']">
<jxb:property>
<jxb:baseType>
<jxb:javaType name="byte[]"
parseMethod="javax.xml.bind.DatatypeConverter.parseHexBinary"
printMethod="javax.xml.bind.DatatypeConverter.printHexBinary"/>
</jxb:baseType>
</jxb:property>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
欲获得更多信息
> http://blog.bdoughan.com/2011/08/xml-schema-to-java-generating.html