Usuário com melhor resposta
erro ao validar xml com xsd

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
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
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:
Espero ter ajudado.
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
-
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
-
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"/>
-
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