Boa tarde a todos!
Pessoal, estou fazendo o projeto da NFe (Nota Fiscal Eletrônica) e estou com problemas na validação do xml através do xsd disponibilizado pela SEFAZ.
Está dando o erro:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘NFe’.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.validation.StreamValidatorHelper.validate(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(Unknown Source)
at javax.xml.validation.Validator.validate(Unknown Source)
at teste.Teste2.validaXML2(Teste2.java:120)
at teste.Teste2.main(Teste2.java:37)
o meu código (fiz um código pra testar) é:
try {
xml = new FileInputStream("C:\\Program Files\\jboss-5.1.0.GA-jdk6\\jboss-5.1.0.GA\\mundial\\notas_assinadas\\33090733304981000110550010000003680000003681-nfe.xml");
InputStream xsd1 = new FileInputStream("D:\\Projetos\\NFe\\Sefaz\\xsd\\leiauteNFe_v1.10.xsd");
InputStream xsd2 = new FileInputStream("D:\\Projetos\\NFe\\Sefaz\\xsd\\tiposBasico_v1.02.xsd");
InputStream xsd3 = new FileInputStream("D:\\Projetos\\NFe\\Sefaz\\xsd\\xmldsig-core-schema_v1.01.xsd");
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
StreamSource src1 = new StreamSource(xsd1);
StreamSource src2 = new StreamSource(xsd2);
StreamSource src3 = new StreamSource(xsd3);
Source[] sources = new Source[] {src3, src2, src1};
// Source[] sources = new Source[] {src1, src2, src3};
Schema schema = factory.newSchema(sources);
javax.xml.validation.Validator v = schema.newValidator();
v.validate(new StreamSource(xml));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
alguém me ajude por favor!!!.. já estou a dois dias nisso e não consigo sair do lugar.
Se tiverem outras sugestões de como fazer essa validação também será bem vinda!!!
abraços e obrigado.
