segunda-feira, 10 de novembro de 2014

Validar XML contra múltiplos arquivos XSD

Se o XSD de validação de um XML foi quebrado em uma estrutura de diversos arquivos, utilize esse código para validar a integridade do XSD



package samples;

import java.io.File;

import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;

public class LeitorXML {

 public static void main(String[] args) {
  File dir = new File (args[0]);
  File[] xsds = dir.listFiles();
  StreamSource[] schemaDocuments = new StreamSource[xsds.length];
  for (int i = 0; i < xsds.length; i++) {
   File xsdFile = xsds[i];
   schemaDocuments[i] = new StreamSource(xsdFile);
  }
  
     Source xmlFile = new StreamSource(new File(args[1]));
     SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
     try {
         Schema schema = schemaFactory.newSchema(schemaDocuments);
         javax.xml.validation.Validator validator = schema.newValidator();
         validator.validate(xmlFile);
         System.out.println("Arquivo XML valido.");
     } catch (Exception e) {
         System.out.println(e.getMessage());
     }
 }

}

Nenhum comentário:

Postar um comentário