Tenha um bom dia,
Quando GRC gera XML para parceiros B2B que começa assim:
<? xml version = "1.0" encoding = " UTF-8" >
<nfeProc versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"> ...
Observe como nfeProc e NFe elementos ambos têm namespace idênticos.
Quando esta mensagem é enviada para PI , por algum motivo este namespace redundante de NFe fica descartada assim que chega em PI como :
<? xml version = "1.0" encoding = " UTF-8" >
<nfeProc versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<NFe> ...
Mesmo que este XML valida fino em SEFAZ um dos nossos parceiros está exigindo a namespace redundantes no elemento NFe para dizer: xmlns =" http://www.portalfiscal.inf.br/nfe". Tentei adicionar esta com uma XSLT mapeamento no PI , mas desde que o nome é redundante o sistema resiste adicionando-o exemplo de mapeamento XSLT. :
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl : copy >
</xsl : template>
<xsl:template match="*[local-name() = 'NFe']" priority="1">
<xsl:element name="{local-name()}" namespace="http://www.portalfiscal.inf.br/nfe">
<xsl:apply-templates select="@*|node()"/>
</xsl: element>
</xsl : template>
</xsl: stylesheet>
Este exemplo só funciona se eu mudar o namespace a ser ligeiramente diferente do namespace do elemento nfeProc raiz.
Alguém tem o mesmo problema? Como você trabalha em torno dele?
Muito obrigado,
Aaron