Validar XML pelo XSD

4 respostas
G

Senhores, estou desenvolvendo para NFe.
Já consigo gerar o XML mas na hora de validar com o schema recebo a seguinte mensagem de erro:

org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘enviNFe’.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)

Não estou conseguindo resolver!!!

o XML:

<enviNFe>
  <idLote>1</idLote>
  <nFe>
    <NFe>
      <infNFe>
        <ide>
          <cUF>03</cUF>
          <cNF>3555</cNF>
          <natOp>VENDA DE MERCADORIA ADQUIRIDA OU RECEBIDA DE TERCEIROS</natOp>
          <indPag>2</indPag>
          <mod>01</mod>
          <serie>1</serie>
          <nNF>000019</nNF>
          <dEmi>20090929</dEmi>
          <dSaiEnt>20090929</dSaiEnt>
          <tpNF>1</tpNF>
          <cMunFG>243</cMunFG>
          <tpImp>1</tpImp>
          <tpEmis>1</tpEmis>
          <cDV>1</cDV>
          <tpAmb>2</tpAmb>
          <finNFe>1</finNFe>
          <procEmi>0</procEmi>
          <verProc>1.0.0</verProc>
        </ide>
        <emit>
          <CNPJ>00776236000114</CNPJ>
          <xNome>NEYMARX COM. DE MATERIAIS LTDA</xNome>
          <xFant>SHOP TINTAS</xFant>
          <enderEmit>
            <xBairro>CHAPADA</xBairro>
            <cMun>243</cMun>
            <xMun>MANAUS</xMun>
            <UF>AM</UF>
            <cPais>1058</cPais>
            <xPais>Brasil</xPais>
            <fone>[telefone removido]</fone>
          </enderEmit>
          <IE>ISENTO</IE>
          <IEST></IEST>
          <IM></IM>
          <CNAE></CNAE>
        </emit>
        <dest>
          <CNPJ>04052956000198</CNPJ>
          <xNome>RCD COM DE ROUPAS LTDA </xNome>
          <enderDest>
            <xBairro>ADRIANOPOLIS</xBairro>
            <cMun>243</cMun>
            <xMun>MANAUS</xMun>
            <UF>AM</UF>
            <CEP>69057080</CEP>
            <cPais>1</cPais>
            <xPais>BRASIL</xPais>
            <fone>[telefone removido]</fone>
          </enderDest>
          <IE></IE>
          <ISUF></ISUF>
        </dest>
        <det>
          <br.inf.portalfiscal.nfe.TNFe_-InfNFe_-Det>
            <prod>
              <cProd>1</cProd>
              <cean>1</cean>
              <xProd>UN ROSA</xProd>
              <extipi></extipi>
              <genero></genero>
              <cfop>5.102</cfop>
              <uCom>UND</uCom>
              <qCom>1.0000</qCom>
              <vUnCom>8.0000</vUnCom>
              <vProd>8.000</vProd>
              <ceanTrib></ceanTrib>
              <uTrib>UND</uTrib>
              <qTrib>1.0000</qTrib>
              <vUnTrib>8.0000</vUnTrib>
              <vFrete>0.00</vFrete>
              <vSeg>0.00</vSeg>
              <vDesc>0.00</vDesc>
            </prod>
            <imposto>
              <ICMS/>
            </imposto>
            <infAdProd></infAdProd>
            <nItem>1</nItem>
          </br.inf.portalfiscal.nfe.TNFe_-InfNFe_-Det>
        </det>
        <total>
          <ICMSTot>
            <vBC>0.00</vBC>
            <vICMS>0.00</vICMS>
            <vBCST>0.00</vBCST>
            <vst>0.00</vst>
            <vProd>8.00</vProd>
            <vFrete>0.00</vFrete>
            <vSeg>0.00</vSeg>
            <vDesc>0.00</vDesc>
            <vII>0.00</vII>
            <vIPI>0.00</vIPI>
            <vPIS>0.00</vPIS>
            <vCOFINS>0.00</vCOFINS>
            <vOutro>0.00</vOutro>
            <vNF>8.00</vNF>
          </ICMSTot>
          <ISSQNtot>
            <vServ>0.00</vServ>
            <vBC>0.00</vBC>
            <vISS>0.00</vISS>
            <vPIS>0.00</vPIS>
            <vCOFINS>0.00</vCOFINS>
          </ISSQNtot>
          <retTrib>
            <vRetPIS>0.00</vRetPIS>
            <vRetCOFINS>0.00</vRetCOFINS>
            <vRetCSLL>0.00</vRetCSLL>
            <vBCIRRF>0.00</vBCIRRF>
            <vIRRF>0.00</vIRRF>
            <vBCRetPrev>0.00</vBCRetPrev>
            <vRetPrev>0.00</vRetPrev>
          </retTrib>
        </total>
        <transp>
          <modFrete>0</modFrete>
          <veicTransp>
            <placa></placa>
            <UF>AM</UF>
            <RNTC></RNTC>
          </veicTransp>
          <vol>
            <br.inf.portalfiscal.nfe.TNFe_-InfNFe_-Transp_-Vol>
              <qVol>0.0</qVol>
              <esp></esp>
              <marca></marca>
              <nVol></nVol>
              <pesoL>0.000</pesoL>
              <pesoB>0.000</pesoB>
            </br.inf.portalfiscal.nfe.TNFe_-InfNFe_-Transp_-Vol>
          </vol>
        </transp>
        <cobr>
          <fat>
            <nFat>3555</nFat>
            <vOrig>8.00</vOrig>
            <vDesc>0.00</vDesc>
            <vLiq>8.00</vLiq>
          </fat>
          <dup>
            <br.inf.portalfiscal.nfe.TNFe_-InfNFe_-Cobr_-Dup>
              <nDup>4713</nDup>
              <dVenc>2009-09-29</dVenc>
              <vDup>8.00</vDup>
            </br.inf.portalfiscal.nfe.TNFe_-InfNFe_-Cobr_-Dup>
          </dup>
        </cobr>
        <infAdic>
          <infAdFisco></infAdFisco>
          <infCpl></infCpl>
        </infAdic>
        <versao></versao>
        <Id>NFe3555</Id>
      </infNFe>
    </NFe>
  </nFe>
  <versao>1</versao>
</enviNFe>

4 Respostas

RodyBr

não é no xml o problema, está na sua aplicação
Dá uma verificada neste tópico deste outro fórum, pois achei o problema semelhante ao seu.
:wink:

G

Blz, Vou dar uma olhada, qualquer coisa posto o resultado aki.

Obrigado!

G

RodyBr
dei uma lida no topico que vc me indicou, testei com o código sugerido lá mas continua dando o mesmo erro

Estou usando este código para validar

public static boolean validate( File xmlFile, File schemaFile ) throws ParserConfigurationException, SAXException, IOException {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        factory.setValidating(true);
        factory.setXIncludeAware(true);
        factory.setAttribute( "http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
        DocumentBuilder parser = factory.newDocumentBuilder();
        Document document = parser.parse( xmlFile );
        SchemaFactory sfactory = SchemaFactory.newInstance( XMLConstants.W3C_XML_SCHEMA_NS_URI );
        Source schemaSource= new StreamSource( schemaFile );
        Schema schema = sfactory.newSchema( schemaSource );
        Validator validator = schema.newValidator();
        validator.validate(new DOMSource(document)); 
        return true;
    }

o erro:

Error: URI=file:/C:/Desenvolvimento/Flora/enfNfe-1 Line=1: cvc-elt.1: Cannot find the declaration of element ‘enviNFe’.
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘enviNFe’.

G

descobri o problema, só não tenho a solução ainda

o problema é que estão faltando algumas coisas no xml

<?xml version="1.0" encoding="UTF-8"?>

não sei como fazer o XStream gerar estas informações :frowning:

Criado 29 de setembro de 2009
Ultima resposta 29 de set. de 2009
Respostas 4
Participantes 2