Ciao raga,
devo validare un xml (un Document del package org.jdom.Document) secondo uno schema che ho. Ho trovato una soluzione in rete ma è buona solo se si conosce l'URI del file xml.
Eccola :
codice:
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.jdom.input.*;
public class ValidationTest {
private static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
private static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
private static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
public static boolean validate(String docURI){
boolean t = false;
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
SAXParser parser = factory.newSAXParser();
String schemaURI = "c:\\schema.xsd";
parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
parser.setProperty(JAXP_SCHEMA_SOURCE, new File(schemaURI));
DefaultHandler handler = new DummyHandler();
parser.parse(new FileInputStream(docURI), handler);
t = true;
}
catch(Exception e) {
e.printStackTrace();
}
return t;
}
Io invece ho bisogno di scrivere un metodo 'validate' che prenda in input un oggetto org.jdom.Document.
Qualcuno ha già provato qualcosa del genere?
Grazie