Xerces2

RECU-0227 (Recurso Ficha Técnica)

Descripción

En el tratamiento de ficheros XML, existen dos estándares de parseo: SAX y DOM. Ambos estándares pueden ser interesantes en determinadas circunstancias. Xerces2 es una librería de Apache que nos permite el parseo de documentos XML mediante la implementación de los estándares de parseo SAX y DOM.

Usos y recomendaciones conocidas

  • Aplicaciones comerciales (ejemplo Hypergate)
  • Framework OpenFWPA (Gobierno de Asturias)
  • Framework AMAP (Consejo de Cantabria)

Ventajas e inconvenientes

  • Introduce un nuevo componente llamado XNI(Xerces Native Interface). Se trata de un framework que nos permite crear nuevos parsers o componentes a los ya existentes. Actualmente proporciona una completa puesta en práctica de los estándares utilizando XNI. Sería conveniente que las aplicaciones que necesitasen parsear documentos XML no utilizasen directamente las clases de parseo que nos proporciona Xerces2.
  • Dado que Xerces2 es compatible con JAXP, podemos utilizarlo a través de dicha API. Con JAXP independizaríamos nuestra aplicación frente a los posibles cambios de versión del componente Xerces2.

Los pasos a realizar para utilizar Xerces2, mediante JAXP, son los siguientes:

Para que la ejecución de una clase Java use una implementación de parseo XML distinta a la de por defecto debemos crear, en tiempo de ejecución, la siguiente propiedad: -Djava.endorsed.dirs. El valor de dicha propiedad será un directorio en el cual colocaremos los archivos que implementen el interfaz JAXP.

Colgamos del directorio endorsed la nueva implementación, en este caso archivo xercesImpl.jar.

Este sería un ejemplo de la ejecución de una clase java con xerces: java -classpath .; -Djava.endorsed.dirs=c:xerceslib EjemploParseoSAXConXerces

Requisitos e incompatibilidades

 Xerces2 soporta los siguientes estándares y APIs:

  • AXP versión 1.1 y superiores
  • DOM niveles 1,2 y 3
  • SAX versiones 1 y 2
  • XML versiones 1.0 y 1.1
  • XML Schema versión 1.0

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » Java
Código Título Tipo Carácter
LIBP-0348 Librerías para el tratamiento de XML en Java Libro de pautas Directriz Recomendada