Podemos combinar la validación con parseadores standars como SAX, es una excelente ventaja que da la validación.

Mientras manejemos el evento SAX no vamos a tener que preocuparnos en la validación del documento.

En este ejemplo mostraremos como insertar una validación JAXP entre el archivo fuente de un xml y sax parser

import javax.xml.validation.Schema;

import javax.xml.validation.SchemaFactory;

import org.xml.sax.InputSource;

import org.xml.sax.helpers.DefaultHandler;

import javax.xml.transform.sax.SAXResult;

import javax.xml.validation.Validator;

import javax.xml.transform.sax.SAXSource;

import org.xml.sax.SAXException;

import javax.xml.transform.stream.StreamSource;

public class Prueba {

public static void main(String[] args) {

try {

// creamos un esquema de un archivo XSD:

String sl = “http://www.w3.org/2001/XMLSchema”;

SchemaFactory jaxp = SchemaFactory.newInstance(sl);

Schema schema = jaxp.newSchema(new StreamSource(“ejemploconxsd.xsd”));

Validator validador = schema.newValidator();

SaxHandler handler = new SaxHandler();

SAXResult saxResult = new SAXResult(handler);

SAXSource src = new SAXSource(new InputSource(“ejemploconxsd.xml”));

validador.validate(src, saxResult);

}catch (SAXException ex) {//código para cuando el documento no es válido

ex.printStackTrace();

} catch (Exception ex) {

ex.printStackTrace();

}

}

private static final class SaxHandler extends DefaultHandler {

}

}