Insérer des annotations personnalisées en java 'champ' à l'aide d'annoter le plugin + JAXB (sur xsd -> java)

Cas d'utilisation:

Veux insérer des annotations personnalisées à champs dans la classe java généré par JAXB

Problème:

À l'aide d'Annoter le plugin + JAXB [1], je suis en mesure de réussir personnalisés insérer des annotations, mais ils sont insérés à la méthode de lecture plutôt que sur le terrain. Morphia (mongo DB) annotations (que je veux réellement à insérer) mais peut annoter uniquement java champs [2].

Mon test xsd:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1"
xmlns:annox="http://annox.dev.java.net" jaxb:extensionBindingPrefixes="annox">

<xsd:element name="hoo" type="External" />
<xsd:complexType name="External">
    <xsd:sequence>
        <xsd:element name="bar" type="xsd:string" />
        <xsd:element name="hoobar" type="xsd:string" />
    </xsd:sequence>
</xsd:complexType>
</xsd:schema>

Mon test de liaison xjb:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
 version="2.1"
 xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"

  xmlns:annox="http://annox.dev.java.net" jaxb:extensionBindingPrefixes="annox">
  <jaxb:bindings schemaLocation="external.xsd" node="/xs:schema">

<jaxb:bindings node="xs:complexType[@name='External']/xs:sequence/xs:element[@name='bar']">
  <annox:annotate>
    <annox:annotate
      annox:class="java.lang.SuppressWarnings"
      impl="com.acme.foo.MyFieldBridge">
    </annox:annotate>
  </annox:annotate>
</jaxb:bindings>    

Mon java généré extrait de:

 @XmlElement(required = true)
protected String bar;
@XmlElement(required = true)
protected String hoobar;

/**
 * Gets the value of the bar property.
 * 
 * @return
 *     possible object is
 *     {@link String }
 *     
 */
@SuppressWarnings({

})
public String getBar() {
    return bar;
}

Comme vous pouvez le voir, je veux annoter "bar" sur le terrain. Veuillez informer. En demander plus si nécessaire.

[1] Générer @Indexé annotation à l'aide de Jaxb ou HyperJaxb
[2] Pour des exemples de voir l'annotation @Id de Morphia

target = "champ" de résoudre le problème: <jaxb:liaisons schemaLocation="external.xsd" node="/xs:schema"> <jaxb:liaisons node="xs:complexType[@name='External']/xs:sequence/xs:element[@name='bar']"> <annox:annoter target="champ"> <annox:annoter annox:class="java.lang.SuppressWarnings" impl="com.acme.foo.MyFieldBridge"> </annox:annoter> </annox:annoter> </jaxb:liaisons> </jaxb:liaisons> Laissez-moi savoir si vous avez une autre solution. Désolé de déranger.
Je ne pouvais pas poster cette réponse que j'ai <100 points de réputation. Merci pour la recherche dans ce de toute façon.
Comment puis-je insérer des commentaires dans xsd lors de générer le schéma ?
sa fait un long moment maintenant, et je ne me souviens pas. vous êtes mieux de poster ce que nouvelle question/commentaire lexicore (qui a aussi donné la réponse correcte) ci-dessous

OriginalL'auteur Hari | 2012-03-21