J'utilise le org.jvnet.jaxb2.maven2:maven-jaxb2-plugin pour créer des POJO à partir de fichiers de schéma XSD.Insérer un setter personnalisé dans maven-jaxb2-plugin
Maintenant, je veux insérer quelque chose comme un setter personnalisé. Il devrait couper toutes les chaînes et devrait supprimer certains caractères.
Savez-vous comment faire?
Le fichier XJB:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jaxb:bindings schemaLocation="my-schema-xml4.xsd" node="/xs:schema">
<xjc:javaType name="java.lang.String" adapter="my.StringAdapter" />
</jaxb:bindings>
</jaxb:bindings>
Solution pour les types Java de liaison:
<?xml version="1.0" encoding="UTF-8" ?>
<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<bindings schemaLocation="mySchema-xml4.xsd" node="/xs:schema">
<globalBindings>
<xjc:javaType name="java.lang.String" xmlType="xs:string"
adapter="com.name.MyAdapter" />
<xjc:javaType name="java.lang.String" xmlType="xs:anySimpleType"
adapter="com.name.MyAdapter" />
</globalBindings>
</bindings>
</bindings>
Mais le @XmlJavaTypeAdapter
n'est toujours pas ajouté à la propriété content
dans les nœuds avec un contenu mixte, bien que la propriété ait le type java.lang.String
.
J'ai implémenté le XmlAdapter, mais je ne sais pas comment l'ajouter. S'il vous plaît voir mon fichier XJB dans la question éditée. –
S'il vous plaît relire ma réponse, 'jaxb: property' est la voie à suivre. Il y a aussi un lien vers un exemple de projet - l'avez-vous vérifié? – lexicore
J'ai relu votre réponse et j'ai également vérifié l'exemple de projet, mais je ne sais pas où ajouter le 'jaxb: property' quand je veux qu'il affecte toutes les chaînes dans le schéma. –