Validar .xml contra .dtd
Publicado por charlie (1 intervención) el 10/10/2003 15:33:13
hola me podeis decir como validar desde java, un fichero .xml contra otro .dtd, concretamente yo estoy utilizando un SAXparse.
Valora esta pregunta


0
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
public class XMLValidator {
public static void main(String[] args) {
try {
// Obtén una instancia de SAXParserFactory
SAXParserFactory factory = SAXParserFactory.newInstance();
// Habilita la validación
factory.setValidating(true);
// Crea una instancia de SAXParser
SAXParser parser = factory.newSAXParser();
// Especifica el archivo DTD para la validación
String dtdFilePath = "ruta/al/archivo.dtd";
parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", dtdFilePath);
// Crea una instancia de XMLValidationErrorHandler para manejar los errores de validación
XMLValidationErrorHandler errorHandler = new XMLValidationErrorHandler();
// Configura el ErrorHandler en el parser
parser.setErrorHandler(errorHandler);
// Parsea el archivo XML
String xmlFilePath = "ruta/al/archivo.xml";
parser.parse(new InputSource(xmlFilePath));
System.out.println("El archivo XML ha sido validado con éxito contra el archivo DTD.");
} catch (Exception e) {
System.out.println("Ocurrió un error durante la validación: " + e.getMessage());
}
}
}