none
erro ao validar xml com xsd RRS feed

  • Pergunta

  • Bom dia,

    o método abaixo uso para validar um xml com o xsd, porém me retorna a seguinte exceção:

    "Elemento 'http://www.w3.org/2000/09/xmldsig#:Signature' não foi declarado."

     // método que valida o xml com o xsd
            public static bool IsValidXml(string caminhoXml, string XsdCaminho)
            {
                var xdoc = XDocument.Load(caminhoXml);
                var schemas = new XmlSchemaSet();
    
               
                schemas.Add(targetNameSpace, XsdCaminho);
    
                try
                {
                    xdoc.Validate(schemas, null);
                }
                catch (XmlSchemaValidationException ex)
                {
                    throw new XmlSchemaValidationException(@"Ocorreu uma exceção: ", ex);
                }
    
                return true;
            }

    Obrigado


    • Editado Hawk B quinta-feira, 14 de janeiro de 2016 11:45
    quinta-feira, 14 de janeiro de 2016 11:44

Respostas

  • Encontrei o problema,

    tem um import no xsd que nao funciona ou sei lá...

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>

    entrei nessa url e copiei o xsd e coloquei no mesmo diretorio do xsd problematico e funcionou.

    • Marcado como Resposta Hawk B sexta-feira, 15 de janeiro de 2016 12:12
    sexta-feira, 15 de janeiro de 2016 12:12

Todas as Respostas

  • O Problema está no seu arquivo XML. Falta um nó de assinatura dos elementos. Não esqueça que na criação voce precisa de uma tag chamada element para definir a assinatura conforme o exemplo abaixo 

    <element name="NomeDoElemento" type="ds:Tipo"/>
    <complexType name="Tipo">
    <sequence>
    <element ref="ds:Campo1"/>
    </sequence>
    <attribute name="Id" type="ID" use="optional"/>
    </complexType>
    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Sugerido como Resposta Erick WendelMVP quinta-feira, 14 de janeiro de 2016 12:25
    quinta-feira, 14 de janeiro de 2016 12:25
    • Sugerido como Resposta Erick WendelMVP quinta-feira, 14 de janeiro de 2016 12:26
    quinta-feira, 14 de janeiro de 2016 12:26
  • segui o exemplo e mostra o mesmo erro
    quinta-feira, 14 de janeiro de 2016 13:40
  • Encontrei o problema,

    tem um import no xsd que nao funciona ou sei lá...

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>

    entrei nessa url e copiei o xsd e coloquei no mesmo diretorio do xsd problematico e funcionou.

    • Marcado como Resposta Hawk B sexta-feira, 15 de janeiro de 2016 12:12
    sexta-feira, 15 de janeiro de 2016 12:12