none
Problemas com Validação de XMLDocument por XSD RRS feed

  • Pergunta

  • Olá

    Estou desenvolvendo um webservice que receberá um XMLDocument como parâmetro de entrada, fará a validação do mesmo e gravará o resultado dessa validação num banco de dados e por fim salvará ele em disco.

    Estou tendo alguns problemas porém, na validação desse XML. Todos os tutoriais que vi a respeito disso recomendam o uso do XMLReader e XMLReaderSettings para carregamento do XML e por fim o a geração do XMLDocument, porém, o XMLDocument não estará gravado em disco até então, estará em memória, dispensando o uso do XMLReader.

    Estou utilizando a seguinte função

    Code Snippet


    Private Sub validarXML(ByVal XML As XmlDocument)
    XML.Schemas.Add("http://www.portalfiscal.inf.br/nfe",Server.MapPath(".") & "XSD\leiauteNFe_v1.10.xsd")


    Dim myevent As ValidationEventHandler = New ValidationEventHandler(AddressOf ValidationEvent)

    XML.Validate(myevent)
    End Sub

    Private Sub ValidationEvent(ByVal sender As Object, ByVal e As ValidationEventArgs)

    resultadoValidacao = New StringBuilder

    Select Case e.Severity
    Case XmlSeverityType.Error
    resultadoValidacao.AppendLine("Error: " & e.Message)
    Case XmlSeverityType.Warning
    resultadoValidacao.AppendLine("Warning: " & e.Message)
    End Select
    End Sub





    O problema é que quando eu chamo o Método Validate, o método ValidationEvent não é chamado, e uma exceção é jogada com o primeiro erro de validação, sendo que cada erro de validação deveria ser concatenado a uma string pelo StringBuilder. Não tenho certeza se isso ocorre por não estar usando os objetos XMLReader e XMLReaderSettings.

    Qual seria a solução para esse problema?
    quinta-feira, 22 de janeiro de 2009 19:24

Todas as Respostas

  • Cara poderá estar gerando exceção justamento por que o xml não está no padão do esquema xsd.

    Voce pode validar o xml usando o constutor  da class XMLReader conforme a linha abaixo.

    XMLReader

     

    .Create

    Se o problema for só de validação eu posto o codigo completo da validação para vc.

    FLw

    Espero ter ajudado


    Ubirajara Castro - Analista Programador
    sexta-feira, 5 de fevereiro de 2010 17:19