2012-04-04 20 views
8

Quería saber por qué necesitamos especificar la anotación @XmlAccessorType cuando trabajamos con JAXB.JAXB: ¿La anotación @XmlAccessorType es solo para la serialización y no tiene nada que ver con el enlace de datos?

Cuando busqué en Google descubrí esta descripción de un sitio web que indica que @XmlAccessorType establece el campo predeterminado y la serializabilidad de la propiedad. Por defecto, JAXB serializa los campos públicos y las propiedades. Al configurar @XmlAccessorType, el bean puede elegir permitir que solo los campos anotados sean serializados.

Aquí el autor menciona que con esta anotación da control sobre la serialización.

Mi pregunta es, por lo que @XmlAccessorType no tiene nada que ver con la vinculación y desvinculación de JAXB de XML a java y java a XML, y todo se trata solo de la serialización.

Respuesta

13

@XmlAccessorType anotación de JAXB es utilizado solamente por JAXB (JSR-222) implementaciones para determinar cómo calcular un archivo a/desde XML:

Normalmente, la principal decisión que debe hacerse es entre FIELD & PROPERTY/PUBLIC. FIELD es particularmente útil cuando tiene lógica en sus métodos get/set que no desea desencadenar durante la clasificación/desemparejamiento. Para ver una forma de esta elección afecta a los metadatos de mapeo, véase:

NONE es una opción útil cuando se tienen muchas propiedades sin asignar y desea informar a su aplicación JAXB sólo a asignar los campos/propiedades que ha anotado Esto puede ser mucho más fácil que agregar muchas anotaciones @XmlTransient en su modelo.

Para mayor información

Cuestiones relacionadas