2011-08-26 4 views
3

Salut J'ai un schéma xsd avec base64Binary. lorsque ce plugin genereted cette élémen ressemblecomment utiliser xmlAdapter dans maven-jaxb-plugin

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

mais comment puis-je dire de ce plugin pour utiliser @XmlJavaTypeAdapter (HexBinaryAdapter.class) donc je besoin de quelque chose comme ça

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

J'espère que ce possible thx pour l'aide

PS: Je ne peux pas modifier les classes qui ont été générés par ces plug-in, car ils sont toujours réécrite

Répondre

3

Vous devez créer un J Fichier de liaisons de schéma AXB qui indique à l'implémentation JAXB d'utiliser le javax.xml.bind.DatatypeConverter intégré pour effectuer des conversions vers/depuis 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> 

Pour plus d'informations

Questions connexes