Utilizar JAXB (xjc) clases generadas en android

Estoy usando Rest-Webservice en Android . El Web Service podría manejar JSON y XML , la API se describe como una XSD . Así que utilicé JAXB para generar clases de la XSD y luego utilicé el procesador JSON jackson para generar JSON desde mis instancias.

El problema es que JAXB ( xjc ) genera clases con anotaciones JAXB y Android no puede manejarlas. Intenté agregar el jaxb-api.jar a mi proyecto del androide pero el Dalvik no utilizará clases de la base.

Para mi primera implementación eliminé manualmente las anotaciones. Pero ahora el XSD fue actualizado y no quiero hacerlo cada vez que esto sucede.

¿Tiene alguna idea de cómo manejar este problema de una manera mejor? ¿Existe la posibilidad de usar jaxb/xjc sin anotaciones o hay otro generador de código que pueda hacer esto? ¿Conoces una manera fácil de eliminar anotaciones de clases java (incluso si se imprimen en varias líneas)? ¿Existe una configuración de proyecto para los proyectos Android Eclipse , que hace que el dalvik permita las libs centrales?

Thx, cathixx

Tuve que hacer algunas investigaciones adicionales para que la respuesta de Cathixx funcionara ya que soy nueva en Ant, así que compartiré esto para ayudar a otros.

Estas instrucciones tomarán archivos Java con código como:

 import javax.xml.bind.annotation.XmlElement; @XmlRootElement public class Response {... 

… y comentar estas ocurrencias, por lo que parece:

 /*import javax.xml.bind.annotation.XmlElement;*/ /*@XmlRootElement*/ public class Response {... 

Primero, cree un archivo build.xml (o lo que quiera llamarlo – debe ser .xml) en un nuevo proyecto Eclipse (un proyecto "General" está bien).

A continuación, agregue el siguiente texto al archivo build.xml :

 <?xml version="1.0"?> <project name="CommentOutXmlAnnotations" basedir="." default="commentOutXmlAnnotations" > <!-- This Ant script comments out the following lines from the Java files in this directory: import javax.xml.bind.annotation.*; @Xml* --> <target name="commentOutXmlAnnotations" description="Run" > <replaceregexp byline="false" flags="g" > <regexp pattern="(@Xml[A-Za-z0-9]+(\([^)]+\))?|import javax\.xml\.bind\.annotation\.[A-Za-z0-9.]+;)[ \t]*(\r?\n)" /> <substitution expression="/*\1*/\3" /> <fileset dir="." > <include name="*.java" /> </fileset> </replaceregexp> </target> </project> 

Coloque los archivos *.java que desea comentar las importaciones y anotaciones de XML en el mismo directorio que el archivo build.xml.

Haga clic con el botón derecho en el archivo build.xml de Eclipse y haga clic en "Ejecutar como-> Ant Build".

Debería ver la salida como:

 Buildfile: D:\Eclipse_Projects\StripAnnotations\build.xml commentOutXmlAnnotations: BUILD SUCCESSFUL Total time: 403 milliseconds 

… y las importaciones XML y las anotaciones deben ser comentadas de tus archivos.

¡Hecho!

Nota: si desea incluir todos los archivos *.java en todos los subdirectorios del archivo build.xml (por ejemplo, para comentar todas las anotaciones / importaciones XML generadas para un montón de clases JAXB en varios paquetes), cambie la etiqueta del conjunto de fileset a :

 <fileset dir="." > <include name="**/*.java" /> </fileset> 

Ahora, lo resolví yo mismo comentando todas las anotaciones con el siguiente script de ant :

 <replaceregexp flags="g" byline="false"> <regexp pattern="(@Xml[A-Za-z0-9]+(\([^)]+\))?|import javax\.xml\.bind\.annotation\.[A-Za-z0-9.]+;)[ \t]*(\r?\n)"/> <substitution expression="/*\1*/\3"/> <fileset dir="path/to/files"> <include name="*.java"/> </fileset> </replaceregexp> 
  • Eclipse: inhabilita la compilación de archivos XML mientras está en perspectiva de Java
  • Error al inflar el fragmento de clase InflateException Archivo XML binario
  • Listview no muestra nada y ocultar datos
  • Cambiar el color del texto del elemento de menú en el cajón de navegación
  • Android usando recursos de matriz xml
  • Diseño horizontal flexible con `layout_weight` y` maxWidth`
  • Animación flotante suave con traducción en XML
  • Cuando se utiliza un proyecto de biblioteca de Android, ¿cómo se hace referencia a los recursos xml correctamente?
  • ¿Cuál es el espacio de nombres XML para Android de la aplicación?
  • Cómo modificar el valor de nodo xml?
  • Cómo cambiar el color del texto del botón de radio en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.