Problema Validação XML

4 respostas
T

Beleza galera!

Estou tentando validar um arquivo XML da NFe versão 2.00 com o seguinte código:

try {
      SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
      Schema schema = schemaFactory.newSchema(new File("leiauteNFe_v2.00.xsd"));
      
      Validator validator = schema.newValidator();      
      
      DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
      FileInputStream input = new FileInputStream("NFe25100409268517007143551010000016971313866003.xml");
      Document doc = db.parse(input);
      input.close();
      
      validator.validate(new DOMSource(doc));
} catch (IOException e) {
      System.out.println(IOException.class.getName() + ": " + e.getMessage());
} catch (SAXException e) {
      System.out.println(SAXException.class.getName() + ": " + e.getMessage());
} catch (ParserConfigurationException e) {
      System.out.println(ParserConfigurationException.class.getName() + ": " + e.getMessage());
}

Só para testar. Mas ele retorna um erro que é o seguinte:

org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'NFe'.

Alguém sabe o que pode estar acontecendo?

4 Respostas

janjan

vc esta pegando o xsd errado pra validar!
tem que pegar o nfe_v200.xsd
ou coisa parecida!
vlw

T

Eu mudei e deu mesmo erro. Eu devo carregar o leiauteNFe_v2.00.xsd também.

janjan

Aqui voce acha uma classe para validação!
http://www.guj.com.br/posts/list/510/72325.java

Abraços!

T

Valeu janjan!

Mas eu resolvi antes de vc postar esse link.

O meu erro era só dizer que o xml podia ser validado com o método DocumentBuilderFactory.setValidating(boolean b), passando como argumento true.

Mas valeu pelo link.

Criado 23 de abril de 2010
Ultima resposta 27 de abr. de 2010
Respostas 4
Participantes 2