2009-01-22 22 views
10

que tiene la siguiente clase java con la anotación JAXB @XmlRootElementJAXB anotación Documentación

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

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

que produce este fragmento XML cuando genero el esquema XSD

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

¿Es posible utilizar un JAXB anotación para que los detalles de la documentación en el campo dirección1 se incluirán como un elemento xs: anotación/xs: documentación en mi esquema 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> 

Respuesta

4

Respuesta simple: no, no es posible con JAXB incorporado.

2

No sé si es posible, ya que nunca lo he usado. Pero hasta donde puedo decir, la API no admite el elemento de documentación. Sin embargo, puede usar la anotación @XMLElement para darle a su miembro un nombre más descriptivo.

//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

Sí, estaba pensando que esta es una solución fácil, pero me imagino que las longitudes de nombre de campo se hacen más largas a medida que se agregan campos más específicos a la clase. Quería agregar las definiciones de usuarios comerciales para los campos como una etiqueta de documentación, y dejar el campo java dando nombre a los desarrolladores. Gracias. – emeraldjava