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 :
Io invece ho bisogno di scrivere un metodo 'validate' che prenda in input un oggetto org.jdom.Document.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; }
Qualcuno ha già provato qualcosa del genere?
Grazie

Rispondi quotando