Fala Galera, boa tarde, tive o mesmo problema com Goiania, e tenho certeza que outros Terão este memso problema.
para solucionar esse erro, tivemos de montar um validador do XML, passando o mesmo para uma classe que fazia a validação, e retornava um erro, no caso onde estava com erro.
public static string ValidarXML(XmlSchemaCollection xmlscSchema, string sXML)
{
string retorno = string.Empty;
//Cria novo validador
MemoryStream xmlStream = new MemoryStream(Encoding.Default.GetBytes(sXML));
XmlValidatingReader xmlReader = new XmlValidatingReader(new XmlTextReader(xmlStream));
//Adiciona o Schema no XmlValidatingReader
xmlReader.Schemas.Add(xmlscSchema);
xmlReader.ValidationType = ValidationType.Schema;
try
{
while (xmlReader.Read()) { }
}
catch (Exception ex)
{
retorno = ex.Message;
}
return retorno;
}
public static XmlSchemaCollection CarregaSchemaRecepcionarLoteRps()
{
string sPath = "C:\\XSD\\"; <<-- Pasta onde esta os arquivos
XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
schemaCollection.Add("http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd", sPath + "\\\\nfse_gyn_v02.xsd"); << -- XSD
schemaCollection.Add("http://www.w3.org/2000/09/xmldsig#", sPath + "\\\\xmldsig-core-schema20020212.xsd"); << -- Schemas
return schemaCollection;
}
ta bem porco, mas nos ajudou muito.
no caso basta selecionar o XSD e o xmlsid destro desta pasta que o sistema faz o resto.
a Solução esta em C#.