/// <summary> /// Valida o XML de acordo com o schema. /// </summary> /// <param name="xml">A mensagem XML que deve ser verificada.</param> /// <param name="provedor">O provedor.</param> /// <param name="schema">O schema que será usado na verificação.</param> /// <returns>Se estiver tudo OK retorna null, caso contrário as mensagens de alertas e erros.</returns> protected RetornoWebservice ValidarSchema(string xml, string schema) { schema = Path.Combine(Config.Geral.PathSchemas, Name, schema); string[] errosSchema; string[] alertasSchema; if (!CertificadoDigital.ValidarXml(xml, schema, out errosSchema, out alertasSchema)) { var retLote = new RetornoWebservice { Assincrono = true, XmlEnvio = xml }; foreach (var erro in errosSchema.Select(descricao => new Evento { Codigo = "0", Descricao = descricao })) { retLote.Erros.Add(erro); } foreach (var alerta in alertasSchema.Select(descricao => new Evento { Codigo = "0", Descricao = descricao })) { retLote.Alertas.Add(alerta); } return(retLote); } return(null); }