Per validare un file xml con un xsd occorre procedere in questo modo.
Il metodo prende in input il file con l'xsd e l'xml con i dati.
- Per prima cosa dall'xsd si genera la classe java corrisponente (tramite il comando xjc.exe );
- Quindi i file di input xml in ingresso vengono validati rispetto all'xsd fornito tentando di parsare il file nell'oggetto ottenuto al punto 1
Il metodo prende in input il file con l'xsd e l'xml con i dati.
import java.io.*;
import javax.xml.XMLConstants;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
public static boolean valida(File xsd,File fileOrigine) {
try
{
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(dtd);
JAXBContext jc=JAXBContext.newInstance(INPUT.class);
Unmarshaller um = jc.createUnmarshaller();
um.setSchema(schema);
INPUT i=(INPUT) um.unmarshal(fileOrigine);
return true;
}
catch(Exception ex){
ex.printStackTrace();
return false;
}
}
Nessun commento:
Posta un commento