2011-08-26 82 views
3

您好我有带base64Binary的xsd模式。当这个插件genereted此的Elemen看起来像如何在maven-jaxb-plugin中使用xmlAdapter

@XmlElement(name = "element") 
    protected byte[] element; 

,但我怎么能知道这个插件使用@XmlJavaTypeAdapter(HexBinaryAdapter.class),所以我需要的是这样的

@XmlJavaTypeAdapter(HexBinaryAdapter.class) 
    @XmlElement(name = "element") 
    protected byte[] element; 

我希望这是可能THX求助

PS:我不能修改这是由这些插件生成的类,因为他们总是rewrited

回答

3

你应该创建为J AXB模式绑定文件,该文件指示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> 

更多信息