¿Cuál es la mejor solución de rendimiento para la generación XML?Custom Java XMLBuilder vs Standard classes-based
Mi objetivo es crear unos pocos XML simples a partir del código. Voy a implementar una implementación simple basada en StringBuffer de XML Builder. Desde el otro lado hay varias bibliotecas como http://code.google.com/p/java-xmlbuilder/ y http://code.google.com/p/xmltool/ que tiene un buen DSL, pero creo que la falta de rendimiento.
Dado que mi objetivo es construir XMLBuilder suficientemente simple con un gran rendimiento, creo que construiré una solución personalizada. Se ofrece:
- DSL basada en Java Niza para las construcciones XML (añadiendo etiquetas básicamente)
- Gran StringBuffer rendimiento basada.
- Manejo de escape de datos de cadena al agregar etiquetas XML.
- Auto-guión
Para sugerir si estoy equivocado en las expectativas de rendimiento y sus Probablemente es mejor utilizar las bibliotecas ya hechos.
ACTUALIZACIÓN. Por qué creo que el rendimiento de los constructores xml estándar no es muy bueno.
Los constructores XML estándar utilizan Document Builder Factory y trabajan con clases detrás de escena. También estas clases optimizadas para adaptarse a todos los usuarios. Por ejemplo, yo no necesito el apoyo de espacio de nombres, etc.
<?xml version="1.0" encoding="utf-8">
<root>
<testdata>value</testdata>
</root>
</xml>
Considere código XML muy simple anteriormente. Si construye con herramientas estándar, implicará tantos trabajos solo para hacer este simple XML. Considero que es mejor generarlo solo usando String.
ACTUALIZACIÓN 2. El requisito de rendimiento es que el código debe hacer tantas cosas como se requiera para generar XML simple y no más.
ACTUALIZACIÓN 3. Gracias ¡todos por excelentes comentarios! Ahora entiendo mejor lo que necesito y que mi objetivo inicial no se configuró muy correctamente con la palabra "rendimiento". Mi verdadero objetivo es utilizar una solución lo suficientemente simple con DSL conveniente para describir la estructura XML y generar el resultado XML.
Utilizaré objetos planos de Java como DSL para XML y generaré XML utilizando la biblioteca XStream, que es una solución bastante sencilla.
ACTUALIZACIÓN 4. JAXB. Discutí XStream vs JAXB y descubrí que JAXB es más rápido que XStream. Además, ya uso JAXB en mi proyecto y me gustan sus anotaciones estándar. Cambio de opinión e iré con JAXB por ahora porque XStream originalmente estaba muy desarrollado en el momento en que JAXB no era tan bueno como hoy.
¿Qué es DSL? ¿Que significa? –
@Elite: Idioma específico del dominio – skaffman
¿Cuál es su requisito de rendimiento? Incluso si es un poco más lento, es probable que sea lo suficientemente rápido. El rendimiento no es el único criterio que elige una solución. –