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

    quinta-feira, 14 de janeiro de 2016 11:59

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:13
    sexta-feira, 15 de janeiro de 2016 12:13

Todas as Respostas

  • Olá Hawk B,

    tudo bem?

    Obrigado por sua participação no fórum. Por gentileza, verifique se as informações nestes links abaixo te auxiliam em sua duvida:

    Link 01

    Link 02

    Link 03

    Link 04

    Espero ter ajudado.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e 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.


    • Editado Marcos SJ quinta-feira, 14 de janeiro de 2016 12:26
    quinta-feira, 14 de janeiro de 2016 12:25
  • 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:30
    • Marcado como Resposta Marcos SJ quinta-feira, 14 de janeiro de 2016 16:27
    • Não Marcado como Resposta Hawk B quinta-feira, 14 de janeiro de 2016 17:01
    quinta-feira, 14 de janeiro de 2016 12:30
  • Sim, realmente tirei essa tag por falta de conhecimento.

    usei este site para converter o XSD para o XML

    http://xsd2xml.com/

    e o mesmo me apresenta o seguinte erro:

    http://www.w3.org/2000/09/xmldsig#:Signature' element is not declared

    no xsd eu tenho a tag

    <xs:schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

    e a tag

     <xs:element ref="ds:Signature"/>

    quinta-feira, 14 de janeiro de 2016 13:00
  • 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:13
    sexta-feira, 15 de janeiro de 2016 12:13