2009-08-27 8 views
6

He estado usando JDOM para XML general de análisis sintáctico desde hace mucho tiempo, pero da la sensación de que tiene que haber algo mejor, o al menos más ligero, para Java 5 o 6.¿Debería seguir usando JDOM con Java 5 o 6?

No hay nada malo con el JDOM API, pero no me gusta tener que incluir Xerces con mis implementaciones. ¿Hay una alternativa más ligera, si todo lo que quiero hacer es leer en un archivo XML o escribir uno?

Respuesta

6

La mejor alternativa ligera es, en mi opinión, XOM, pero JDOM sigue siendo una muy buena API, y no veo ninguna razón para reemplazarla.

No tiene una dependencia en Xerces, aunque (al menos, no necesita la distribución de Apache Xerces, funciona junto con los Xerces que se empaquetan en el JRE).

2

Utilizamos JAXB - genera las clases basadas en el esquema. Puede generar sus archivos sin un esquema y simplemente anotar cómo quiere que sea el xml.

+0

No llamaría a JAXB un reemplazo para JDOM, aunque resuelve problemas bastante diferentes. – skaffman

+1

De la pregunta entendí que un XML específico necesita ser leído y escrito. Si es así, ¿por qué no definir un esquema y guardar todo el análisis tedioso? Si es necesario escribir un xml arbitrario, entonces estoy de acuerdo (creo que es un caso bastante raro) –

+0

+1 Estoy totalmente de acuerdo con escribir los objetos de dominio/config primero y luego preocuparme por XML. –

3

He utilizado el paquete javax.xml.stream (XMLStreamReader/XMLStreamWriter) para leer y escribir XML utilizando las técnicas xml pull/push. Hasta ahora me ha funcionado.

+0

+1 con la nota de que el paquete javax.xml.stream solo está disponible en Java 6. –

+1

Si no tiene Java 6 pero aún desea usar xmlpp, puede visitar http://www.xmlpull.org/ . El paquete javax.stream NO es un analizador de extracción compatible con xmlpull.org (su API es ligeramente diferente) pero están muy cerca. – KitsuneYMG

+0

¿Conoce alguna API de transmisión de terceros adecuada para * writing * XML? –

0

JDOM es muy bueno y simple. Ha habido muchas formas nuevas de analizar XML después del lanzamiento de JDOM, pero esas tienen un enfoque diferente al de la simplicidad. JAXB simplifica las cosas en algunos casos, cuando tiene un documento XML bien conocido, su esquema no se actualiza diariamente. Los nuevos analizadores de inserción son muy buenos e incluso obligatorios para archivos XML de gran tamaño (cientos de MB). La ventaja de velocidad para el analizador SAX puede ser diez veces mayor.

0

Me gustaría pensar JAXP es una buena elección para usted. Es estándar, se incluye en JDK, proporciona una interfaz clara y permite conectar cualquier implementación. Si todo lo que necesita es leer y escribir archivos xml no muy grandes y sobrecomplicados, JAXP DOM api incrustado en JDK lo cubrirá requisitos.

2

Recientemente hubo un tenedor de JDOM para java 5 llamado coffeeDOM. Usted deberia comprobar esto.

+0

+1: CoffeeDOM es de hecho una bifurcación muy útil y hace que trabajar con la API sea más conveniente y divertido – ngeek

Cuestiones relacionadas