2009-04-15 23 views
15

He tratado con algunas API XML en Java, pero no tienen una buena comprensión de todos los marcos disponibles en Java para hacer frente a XML para cualquier propósito (por ejemplo, JAXB, JAXP, Xerces, StAX , Castor, etc.). ¿Alguien puede resaltar las API Java XML más populares y dar una descripción rápida de para qué están destinadas? También me interesaría saber qué API se usan hoy en día y cuáles podrían considerarse obsoletas.XML APIs Java

+0

¿Has visto vtd-xml? –

+0

La mayoría de sus preguntas son respondidas, creo que, en preguntas anteriores Stackoverflow: - [API de Java para XML] (http://stackoverflow.com/questions/678894/) - [serialización XML en Java?] (Http://stackoverflow.com/questions/35785/) - [Mejor intérprete XML para Java] (http://stackoverflow.com/questions/373833/) - [Una manera sencilla de hacerlo en Java, XML] (http: // stackoverflow .com/preguntas/528664 /) Este tipo de búsqueda es más fácil de hacer currenlty de Google Eddie

Respuesta

16
  • JAXP es un "API enchufable", un conjunto de interfaces y clases abstractas con una "implementación de referencia" por el sol, pero utiliza el enfoque de la fábrica para que pueda intercambiar a una aplicación diferente (por ejemplo, una eso podría ser más rápido en ciertos tipos de usos) sin tener que cambiar su código, solo por changing a system property. Incluye DOM, SAX, StAX y XSLT. Sun tiene un buen comparison page para DOM/SAX/StAX. Yo recomendaría el O'Reilly book on Java XML, lo puedes encontrar a un precio decente, pero solo asegúrate de tener la última (3ra) edición.

  • JAXB es una forma de vincular clases de Java a archivos XML, utilizando un esquema XML. (Usted puede autogenerar las clases Java usando un esquema, o puede autogenerar el esquema por medio de clases de Java. He usado la primera, pero no la segunda.) Puede ser útil si los archivos XML tienen un esquema bien conocido, y se desea tratar los datos en un archivo XML como si fueran objetos en una clase Java. Realiza muy pocas llamadas a la API, solo una o dos para ordenar los datos de Java a XML o desglosar los datos de XML a Java. Si sus archivos XML son más libres y/o desea usar XPATH para encontrar cosas, probablemente sea mejor que use una de las API de JAXP.

  • de ricino es una alternativa a JAXB; No lo he usado pero hay un comparison page on IBM's website.

  • Xerces es familia de paquetes de gestión de XML de Apache. Incluye uno para Java, la mayoría de los cuales se puede utilizar a través de JAXP como una implementación alternativa para la implementación de referencia de Sun. También incluye bibliotecas para C++ y Perl.

+7

suma de la API Java XML todo lo que odio de la arquitectura torpe. No quiero una "arquitectura conectable": solo quiero una biblioteca de análisis estándar, rápida y correcta lista para usar ... ¡Imagine si String fuera una "arquitectura conectable"! –

+1

@NeilCoffey Creo que manejar XML es una tarea un poco más compleja que lidiar con una lista ordenada de caracteres. – vbence

+1

Es más complejo ... pero el propósito de una API es no exponer tal complejidad (o al menos, exponer solo el nivel necesario de complejidad) al programador de la aplicación. –