Buenas tardes,
Tengo un problema intentando validar un XML con un XSD, he probado de varias maneras, con JDOM, con SAX y nada, casi siempre se pega un chasque en el paso del builder, os dejo el código pegado aquí:
private String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
private String W3C_XML_SCHEMA ="http://www.w3.org/2001/XMLSchema";
private String JAXP_SCHEMA_SOURCE ="http://java.sun.com/xml/jaxp/properties/schemaSource";
private Logger log = null;
public static String validarXSD(String xsd, String datosXML, Logger logIN){
try {
//En esta variable se almacena, con el método que se considere adecuado, el nombre del fichero de validación XSD
String xsd1 = "entradaNPFSWMOD";
XSDBuilder builder =new XSDBuilder();
//String ruta = ("proyecto/xsd/"+xsd1+".xsd");
String ruta = (xsd1+".xsd");
InputSource inso = new InputSource();
// Creación del objeto XML Schema
XMLSchema schemadoc1= (XMLSchema) builder.build("proyecto/xsd/"+xsd+".xsd");
XMLSchema schemadoc2= (XMLSchema) builder.build(inso.toString());
DOMParser dp= new DOMParser();
// Configuracion del objeto validador
InputStream in = new ByteArrayInputStream(datosXML.getBytes("ISO-8859-1"));
dp.setXMLSchema(schemadoc1);
dp.setValidationMode(XMLParser.SCHEMA_VALIDATION);
dp.setPreserveWhitespace(true);
dp.setErrorStream(System.out);
//logIN.info("Parseando "+xsd);
System.out.println("Parseando "+xsd);
dp.parse(in);
System.out.println("El fichero introducido ('"+xsd+"') se ha parseado sin errores");
return null;
} catch (XSDException e) {
System.out.println("XSDException: " + e.getMessage());
return e.getMessage();
} catch (MalformedURLException e){
System.out.println("MalformedURLException: " + e.getMessage());
return e.getMessage();
} catch (XMLParseException e) {
System.out.println("Parser Exception: " + e.getMessage());
return e.getMessage();
}catch (Exception e) {
System.out.println("NonParserException: " + e.getMessage());
return e.getMessage();
}
}//Fin validarXSD
Casi siempre me da este error al llegar a la linea que he marcado:
: XML-0220: (Fatal Error) Invalid InputSource.
¿Alguien me puede echar un cable?
MUCHAS GRACIAS!!