2009-01-22 8 views
10

J'ai la classe java suivante avec l'annotation JAXB @XmlRootElementJAXB Documentation Annotation

@XmlRootElement(name="ClientData") 
public class ClientData { 

/** 
* The first address field of the person 
*/ 
private String address1 = null; 
} 

qui produit ce fragment XML quand je produis le schéma xsd

<xs:complexType name="clientData"> 
    <xs:sequence> 
    <xs:element minOccurs="0" name="address1" type="xs:string"/> 

Est-il possible d'utiliser un JAXB annotation afin que les détails de la documentation sur le champ address1 soient inclus dans un élément xs: annotation/xs: documentention dans mon schéma final?

<xs:complexType name="clientData"> 
    <xs:sequence> 
    <xs:element minOccurs="0" name="address1" type="xs:string"> 
    <xs:annotation> 
     <xs:documentation>The first address field of the person</xs:documentation> 
    </xs:annotation> 
    </xs:element> 

Répondre

4

Réponse simple: non ce n'est pas possible avec JAXB intégré.

2

Je ne sais pas si c'est possible, puisque je ne l'ai jamais utilisé. Mais autant que je peux dire que l'API ne supporte pas l'élément de documentation. Toutefois, vous pouvez utiliser l'annotation @XMLElement pour donner à votre membre un nom plus descriptif.

//Example: Code fragment 
public class USPrice { 
    @XmlElement(name="itemprice") 
    public java.math.BigDecimal price; 
} 

<!-- Example: Local XML Schema element --> 
<xs:complexType name="USPrice"/> 
    <xs:sequence> 
    <xs:element name="itemprice" type="xs:decimal" minOccurs="0"/> 
    </sequence> 
</xs:complexType> 
+0

ouais - je pensais que c'était une solution de contournement facile, mais je peux imaginer les longueurs de nom de champ s'allonger à mesure que des champs plus spécifiques sont ajoutés à la classe. Je voulais ajouter les définitions d'utilisateur métier pour les champs en tant que balise de documentation, et laisser le champ Java nommer aux développeurs. Merci. – emeraldjava