Aew galera estou com problemas na hora de consultar um nfe emitido para a receita quando testo no site da receita me retorna
PARSER XML: OK
TIPO DE MENSAGEM: NF-e
SCHEMA: OK
ASSINATURA XML: Assinatura VÁLIDA
mas quando consulto me retorna
<retConsReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"><tpAmb>2</tpAmb><verAplic>SP_NFE_PL_006h</verAplic><nRec>351000051441044</nRec><cStat>225</cStat><xMotivo>Rejeição: Falha no Schema XML do lote de NFe</xMotivo><cUF>35</cUF></retConsReciNFe>
Alguem ja passou por isso?
Amigo,
Tenta validar aqui http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx que pode te ajudar.
entao mas como eu falei ja validei esta tudo ok
PARSER XML: OK
TIPO DE MENSAGEM: NF-e
SCHEMA: OK
ASSINATURA XML: Assinatura VÁLIDA
É, cada caso é um caso.
Já tive problemas onde no meu validor XSD funcionava legal mas no da Sefaz RS indicava erro .
Dá uma olhada tbm se o xml tem prefixo namespace do tipo ns2: ns3:.
Aqui http://www.javac.com.br/jc/ vc tbm encontra ajuda.
ja estou buscando uma ajuda no forum javac e estao me ajudando, mas fiquei empacado nessa parte, nesse erro 588, entao postei aqui no guj tambem para mais usuarios visualizarem o problema e tentar me ajudar
Segue o erro que estou tendo agora, o xml esta validando normalmente no site da sefaz ja retirei todos os espaços
<retConsReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<tpAmb>2</tpAmb>
<verAplic>SP_NFE_PL_006h</verAplic>
<nRec />
<cStat>588</cStat>
<xMotivo>Rejeicao: Nao e permitida a presenca de caracteres de edicao no inicio/fim da mensagem ou entre as tags da mensagem</xMotivo>
<cUF>35</cUF>
</retConsReciNFe>
Esse tratamento vi aqui no guj em posts anteriores só mudei para fazer em cada linha de leitura do arquivo
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(pathXml), "UTF-8"));
while ((linha = in.readLine()) != null) {
xml.append(linha.replaceAll("\n", "")
.replaceAll("\r", "")
.replaceAll("\t", "")
.replaceAll(" ", "")
.replaceAll("> ", "")
.replaceAll(" <", "")
.replaceAll("> <", "><")
.trim());
}
in.close();
Acrescenta tbm:
.replaceAll(" </", "></")
Nessa mensagem aqui do forúm http://www.guj.com.br/java/220830-problemas-envio-da-nfe-588—rejeicao-nao-e-permitida-a-presenca-de-caracteres/5 tem algo falando tbm sobre a forma da assinaura que pode inserir caracteres de edição.
entao quanto a assinatura eu faço da seguinte maneira
[code]DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
Document doc = dbf.newDocumentBuilder().parse(new FileInputStream(arqXml));
System.out.println("| INFO: Documento OK");
NodeList elx = doc.getElementsByTagName("Signature");
if (elx.item(0) == null) {
getCertificadoPfx();
sig = XMLSignatureFactory.getInstance("DOM");
ArrayList<Transform> transformList = new ArrayList<Transform>();
Transform enveloped = sig.newTransform(Transform.ENVELOPED, (TransformParameterSpec) null);
Transform c14n = sig.newTransform(C14N_TRANSFORM_METHOD, (TransformParameterSpec) null);
transformList.add(enveloped);
transformList.add(c14n);
NodeList elements = doc.getElementsByTagName("infNFe");
org.w3c.dom.Element el = (org.w3c.dom.Element) elements.item(0);
String id = el.getAttribute("Id");
Reference r = sig.newReference("#".concat(id), sig.newDigestMethod(DigestMethod.SHA1, null),
transformList,
null, null);
si = sig.newSignedInfo(
sig.newCanonicalizationMethod(CanonicalizationMethod.INCLUSIVE,
(C14NMethodParameterSpec) null),
sig.newSignatureMethod(SignatureMethod.RSA_SHA1, null),
Collections.singletonList(r));
KeyInfoFactory kif = sig.getKeyInfoFactory();
List x509Content = new ArrayList();
x509Content.add(cert);
X509Data xd = kif.newX509Data(x509Content);
ki = kif.newKeyInfo(Collections.singletonList(xd));
DOMSignContext dsc = new DOMSignContext(getChavePrivada(), doc.getDocumentElement());
XMLSignature signature = sig.newXMLSignature(si, ki);
signature.sign(dsc);
OutputStream os = new FileOutputStream(arqXml);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer trans = tf.newTransformer();
trans.transform(new DOMSource(doc), new StreamResult(os));[/code]
Esse exemplo peguei no forum do javac, e olhando o xml nao vejo nada de espaço nem linhas em branco nada
caro amigo vc conseguiu resolver esse problema
2SP_NFE_PL_006h351000053327689225Rejeição: Falha no Schema XML do lote de NFe35
valew
helton.a.marinho resolvi o problema, da uma olhada na montagem dos demais xml, para consulta da nota emitida, o meu problema estava no xml de retEnvio que enviava para receita, este tive de tratar os caracteres invalidos