2011-03-01 10 views
8

El modo de enlace simple JAXB modifica los nombres de colecciones a su plural 'versión', p. Ej. "additionalData" se convierte en "additionalDatas". ¿Hay alguna solución para cambiar este comportamiento? Necesito tener un nombre de campo y nombre de método de Java igual al nombre de campo de XSD. mi archivo de fijaciones:¿Por qué el modo simple XJC de JAXB 2 RI cambia los nombres de las colecciones?

<?xml version="1.0" encoding="UTF-8"?> 
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" 
      xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" 
      xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
      xsi:schemaLocation=" 
http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd" 
version="2.1"> 
    <globalBindings> 
    <serializable uid="1" /> 
    <xjc:simple/> 
    </globalBindings> 
</bindings> 

Respuesta

5

El "modo de unión simple" es una característica extendida de la JAXB RI (Metro). Convertir los nombres de las propiedades de la colección en plurales fue parte de su diseño.

Desde: http://weblogs.java.net/blog/kohsuke/archive/2007/01/using_jaxb_ris.html

Mi característica favorita en el JAXB RI es el modo más simple y mejor de unión, que hace que el código generado incluso más fácil de usar, por ...

  1. Eliminando JAXBElement tanto como posible
  2. Dando una mejor, más vinculante con tipo en general
  3. Use nombres de propiedades plurales en su caso

Usted puede ser capaz de utilizar las personalizaciones de esquema normales para controlar el nombre de la propiedad. Consulte una de mis respuestas anteriores (enlace más abajo):

+0

¿Hay alguna forma de desactivar esta característica y seguir usando el "modo de unión simple"? Porque necesito agregar @XmlRootElement a las clases generadas. – User123456789

Cuestiones relacionadas