Estoy tratando de elegir un XML de procesamiento de marco para mis proyectos Java, y estoy perdido en los nombres.. XOM, JDOM, etc. Donde puedo encontrar una comparación detallada de todos los populares de Java XML marcos?

  • No tengo comparaciones…pero he aquí una lista de algunos de los procesadores de XML en Java: java-source.net/open-source/xml-parsers
  • Nota algunos de esos analizador de proyectos no ha estado activo durante años. Si usted está interesado en el objeto XML de unión retirar MOXy JAXB (yo soy el de la tecnología de plomo), bdoughan.blogspot.com/2010/09/…
InformationsquelleAutor yegor256 | 2010-10-04

2 Comentarios

  1. 62

    Como Blaise señaló el palo con las normas. Pero hay varios estándares creados durante el período para resolver los diferentes problemas/los escenarios de uso. Cuál elegir depende por completo de su requisito. Espero que la siguiente comparación puede ayudarle a elegir la correcta.

    Ahora hay dos cosas usted tiene que elegir. API y la implementaciones de la API de (hay muchos)

    API

    SAX: Pros

    • basada en eventos
    • de memoria eficiente
    • más rápido que DOM
    • admite la validación de esquema

    SAX: Contras

    • Ningún modelo de objeto, pulse en
      los eventos y crear tu auto
    • Solo parseo de xml y sólo puede
      ir hacia adelante
    • de sólo lectura de la api de
    • no xpath apoyo
    • poco más difícil de usar

    DOM: Pros

    • en la memoria del modelo de objetos
    • conserva elemento de orden
    • bi-direccional
    • leer y escribir api
    • de MANIPULACIÓN de datos xml
    • simple de usar
    • admite la validación de esquema

    DOM: Contras

    • memoria de cerdo para grandes documentos XML
      (normalmente se utiliza para los documentos XML
      a menos de 10 mb)
    • más lento
    • modelo genérico es decir, se trabaja con Nodos

    Stax: Pros

    • Mejor de SAX y DOM es decir, la Facilidad de DOM
      y la eficiencia de SAX
    • de memoria eficiente
    • Modelo de extracción
    • leer y escribir api
    • soporta subparsing
    • puede leer varios documentos mismo tiempo
      en un solo hilo
    • el procesamiento en paralelo de XML es más fácil

    Stax: Contras

    • ningún esquema de soporte de validación (como mucho
      como recuerdo, no estoy seguro si lo tiene
      agregó que ahora)
    • sólo se puede ir hacia adelante como sax
    • no de MANIPULACIÓN de datos xml

    JAXB: Pros

    • permite el acceso y el procesamiento de XML
      de datos sin tener que conocer XML
    • bi-direccional
    • de memoria más eficiente que DOM
    • SAX y DOM son genéricas de los analizadores de donde
      como JAXB crea un analizador específico para
      el XML Schmea
    • de conversión de datos: JAXB puede convertir xml
      a tipos de java
    • es compatible con XML a través de la MANIPULACIÓN de objetos
      API

    JAXB: Contras

    • sólo puede analizar XML válido

    Trax: Para la transformación de XML a partir del 1 de forma a otra forma de usar XSLT

    Implementaciones

    SAX, DOM, Stax, JAXB son sólo las especificaciones. Hay muchos de código abierto y comercial de las implementaciones de estas especificaciones. La mayoría de las veces, se puede seguir con lo que viene con el JDK o el servidor de la aplicación. Pero a veces es necesario utilizar una aplicación diferente que se ofrecen por defecto. Y aquí es donde se puede apreciar la JAXP contenedor de la api. JAXP permite a las implementaciones de cambio a través de la configuración sin la necesidad de modificar su código. También proporciona un analizador/especificación independiente de la api para el análisis, transformación, validación y consulta de los documentos XML.

    Rendimiento y otras comparaciones de diversas implementaciones


    Ahora las normas son buenas, pero de vez en cuando te encuentras con este loco de caso de uso donde usted tiene para apoyar el análisis del documento XML que se 100 gigabytes de tamaño o necesita ultra rápido de procesamiento de XML (puede ser tu son la implementación de un analizador XML de chip) y esto es cuando usted necesita el volcado de los estándares y busca una forma diferente de hacer las cosas. Se trata de usar la herramienta correcta para el trabajo correcto! Y aquí es donde le sugiero que eche un vistazo a vtd-xml

    Durante los primeros días de SAX y DOM, la gente quería más simple API proporcionado por cualquiera de ellos. JDOM, dom4j, XmlBeans, JiBX, Castor son los que yo sé que se hizo popular.

    • JAXB (JSR-222) de las implementaciones no requieren de un esquema XML o paso de compilación. Aquí es un ejemplo de inicio de clases de Java: blog.bdoughan.com/2012/07/jaxb-no-annotations-required.html
    • Puede el caballero que ha votada abajo careto explicar la razón por la pls.
    • No confíe en cualquier aplicación! Santo s… he sido f….. sólo ahora. Oracle JDK 8 Unidad de la Prueba en mi máquina local analiza la Cadena de valor de un XML-Nodo como este: ‘vyFPEHYkvQNfrR6i’, el sistema de producción escupe esto: [#texto: vyFPEHYkvQNfrR6i]. Misma fuente. Loco!
  2. 2

    @Pangea

    JAXB vs DOM y SAX

    JAXB no es directamente comparable a DOM y SAX. El Java DOM y SAX
    el análisis de las Api Api de nivel inferior para analizar documentos XML, mientras que JAXB
    (Java API for XML Binding) es un de alto nivel de la API para la conversión de XML
    elementos y atributos a un objeto Java de la jerarquía (y viceversa).
    Implementaciones de JAXB más probable es que el uso de un DOM o parser SAX
    detrás de las escenas para hacer un verdadero análisis de los datos de entrada XML.

Dejar respuesta

Please enter your comment!
Please enter your name here