Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Desmarcando archivos XML en objetos Java en Android?

Estoy haciendo uso de una API en Internet que está ordenando objetos a archivos XML. Dado que los archivos XSD también están disponibles, me gustaría poder desmarcarlos de nuevo a objetos Java una vez que haya descargado los archivos.

Después de mirar alrededor parece JAXB es la biblioteca por defecto para hacer esto en Java, pero como estoy desarrollando una aplicación móvil la dependencia extra de 8.6MB no es aceptable. También encontré XStream , pero todavía pesa 7.9MB.

Poke alrededor del SDK de Android parece que el único analizador de XML real disponible es SAX .

Así que aquí está la pregunta:

  1. ¿Hay una manera de obtener SAX para hacer lo que quiero?
  2. ¿Hay otra herramienta en el SDK de Android que he perdido?
  3. ¿Hay otra biblioteca (que es significativamente más pequeña) que hará esto?

Gracias.

  • SchemaFactory no admite W3C XML Schema en plataforma de nivel 8?
  • Validación de XMLSchema en Android
  • Cómo generar simple-xml java objeto anotado desde el esquema xsd
  • Cómo convertir InputStream en origen?
  • 6 Solutions collect form web for “Desmarcando archivos XML en objetos Java en Android?”

    Hay muchas herramientas para traducir objetos entre Java y XML, pero ninguno de los que conozco es más pequeño que los que encontró. Sin embargo, dependiendo de la complejidad de su gráfico de objetos, SAX puede ser todo lo que necesita y tiene muy poca sobrecarga. El truco consiste en crear el gráfico de objetos dentro de los controladores de eventos SAX. He utilizado esta técnica en un par de proyectos antes de XML marshalers estaban tan ampliamente disponibles, y aunque se necesita un poco más de trabajo, es eficaz.

    Hay un marco que funcionará en Android que hace Java a XML vinculante utilizando anotaciones de una manera similar a JAXB, se llama Simple y pesa menos de 270K, thats una pequeña fracción de lo que se requiere para XStream o JAXB. Además, no tiene dependencias externas, solo un JAR y todo debería funcionar. A continuación se muestra un enlace a Simple, y el marco de serialización XML para Java.

    http://simple.sourceforge.net

    Esto también puede manejar ciclos en gráficos de objetos.

    XStream es 431k. No necesita el zip de distribución completo en su aplicación de Android. Si agrega el xpp3 pull parser para obtener un rendimiento más rápido, añadiría 24k. Eso tomaría su paquete entero a 455k. Todavía no es ideal, pero podría vivir con eso.

    Kxml2-2.2.2 es una pequeña biblioteca agradable (43K) que funciona en JavaME, no tira de análisis y lo he utilizado con éxito. La única dependencia que tiene es xmlpull, que es 8k. ¿Cómo es eso para los pequeños?

    Advertencia es que no hace ninguna magia vinculante.

    En SDK de Android, además de SAX, el analizador de DOM y XMLPullParser también están disponibles.

    Si no desea construir completamente la estructura de datos en la memoria, DOM puede aliviar su dolor, siempre y cuando la velocidad y la huella de memoria sean el precio que esté dispuesto a pagar.

    Tenemos un producto llamado XBinder que genera clases y codifica / decodifica código de XSD. La versión 2.1 ocupa aproximadamente 187K. La versión 2.2 (que sale en octubre de 2010) toma aproximadamente 101K (y es algo más fácil de usar con Android que v2.1). Compruébelo aquí .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.