FONTE NFE VB.NET
Ola , alguem conseguiu fazer consulta de Cadastro?
Quando tento validar o xml:
Public Function ValidarXML(ByVal documento As XmlDocument, ByVal SchemaNf As String) As String
Dim xmlSaida As Stream = New MemoryStream()
documento.Save(xmlSaida)
xmlSaida.Flush()
xmlSaida.Position = 0
Dim retorno As String = [Ô][Ô]
If (documento IsNot Nothing) AndAlso (File.Exists(SchemaNf)) Then
[ô]COMPARA XML COM ESQUEMA SELECIONADO
Dim cStreamReader As New StreamReader(xmlSaida)
Dim cXmlTextReader As New XmlTextReader(cStreamReader)
Dim reader As New XmlValidatingReader(cXmlTextReader)
Dim schemaCollection As New XmlSchemaCollection()
schemaCollection.Add([Ô]http://www.portalfiscal.inf.br/nfe[Ô], SchemaNf)
reader.Schemas.Add(schemaCollection)
AddHandler reader.ValidationEventHandler, AddressOf reader_ValidationEventHandler
Erro = [Ô][Ô]
Try
While reader.Read()
End While
Catch ex As Exception
Erro = ex.Message
End Try
reader.Close()
If Erro <> [Ô][Ô] Then
retorno = [Ô]Resultado da validação [Ô] & vbCr & vbLf & vbCr & vbLf
retorno += Erro
retorno += vbCr & vbLf & [Ô]...Fim da validação[Ô]
End If
Else
retorno = [Ô]Documento XML inválido ou arquivo do Schema não foi encontrado.[Ô]
End If
Return retorno
End Function
na linha em negrito da essa msg de erro:
[Ô]Tipo [ô]http://www.portalfiscal.inf.br/nfe:String[ô] é não declarado ou não é um tipo simples.[Ô]
já quebrei a cabeça, mais anida não consegui uma solução, alguém pode me ajudar?
Public Function ValidarXML(ByVal documento As XmlDocument, ByVal SchemaNf As String) As String
Dim xmlSaida As Stream = New MemoryStream()
documento.Save(xmlSaida)
xmlSaida.Flush()
xmlSaida.Position = 0
Dim retorno As String = [Ô][Ô]
If (documento IsNot Nothing) AndAlso (File.Exists(SchemaNf)) Then
[ô]COMPARA XML COM ESQUEMA SELECIONADO
Dim cStreamReader As New StreamReader(xmlSaida)
Dim cXmlTextReader As New XmlTextReader(cStreamReader)
Dim reader As New XmlValidatingReader(cXmlTextReader)
Dim schemaCollection As New XmlSchemaCollection()
schemaCollection.Add([Ô]http://www.portalfiscal.inf.br/nfe[Ô], SchemaNf)
reader.Schemas.Add(schemaCollection)
AddHandler reader.ValidationEventHandler, AddressOf reader_ValidationEventHandler
Erro = [Ô][Ô]
Try
While reader.Read()
End While
Catch ex As Exception
Erro = ex.Message
End Try
reader.Close()
If Erro <> [Ô][Ô] Then
retorno = [Ô]Resultado da validação [Ô] & vbCr & vbLf & vbCr & vbLf
retorno += Erro
retorno += vbCr & vbLf & [Ô]...Fim da validação[Ô]
End If
Else
retorno = [Ô]Documento XML inválido ou arquivo do Schema não foi encontrado.[Ô]
End If
Return retorno
End Function
na linha em negrito da essa msg de erro:
[Ô]Tipo [ô]http://www.portalfiscal.inf.br/nfe:String[ô] é não declarado ou não é um tipo simples.[Ô]
já quebrei a cabeça, mais anida não consegui uma solução, alguém pode me ajudar?
já ia esquecendo:
documento = XmlAssinado
SchemaNF = nfe_v2.00.xsd
documento = XmlAssinado
SchemaNF = nfe_v2.00.xsd
Public Sub ValidarXML(ByVal cRotaArqXML As String, ByVal cRotaArqSchema As String)
Dim lArqXML As Boolean = File.Exists(cRotaArqXML)
Dim lArqXSD As Boolean = File.Exists((Me.PastaSchema & [Ô]\[Ô]) + cRotaArqSchema)
If lArqXML AndAlso lArqXSD Then
Dim cStreamReader As New StreamReader(cRotaArqXML)
Dim cXmlTextReader As New XmlTextReader(cStreamReader)
Dim reader As New XmlValidatingReader(cXmlTextReader)
[ô] Criar um coleção de schema, adicionar o XSD para ela
Dim schemaCollection As New XmlSchemaCollection()
schemaCollection.Add([Ô]http://www.portalfiscal.inf.br/nfe[Ô], (Me.PastaSchema & [Ô]\[Ô]) + cRotaArqSchema)
[ô] Adicionar a coleção de schema para o XmlValidatingReader
reader.Schemas.Add(schemaCollection)
[ô] Wire up the call back. The ValidationEvent is fired when the
[ô] XmlValidatingReader hits an issue validating a section of the xml
AddHandler reader.ValidationEventHandler, AddressOf reader_ValidationEventHandler
[ô] Iterate through the xml document
Me.cErro = [Ô][Ô]
Try
While reader.Read()
End While
Catch ex As Exception
Me.cErro = ex.Message
End Try
reader.Close()
Me.Retorno = 0
Me.RetornoString = [Ô][Ô]
If cErro <> [Ô][Ô] Then
Me.Retorno = 1
Me.RetornoString = [Ô]InÃcio da validação...[Ô] & vbCr & vbLf & vbCr & vbLf
Me.RetornoString += [Ô]Arquivo XML: [Ô] & cRotaArqXML & vbCr & vbLf
Me.RetornoString += ([Ô]Arquivo SCHEMA: [Ô] & Me.PastaSchema & [Ô]\[Ô]) + cRotaArqSchema & vbCr & vbLf & vbCr & vbLf
Me.RetornoString += Me.cErro
Me.RetornoString += vbCr & vbLf & [Ô]...Final da validação[Ô]
End If
Else
If lArqXML = False Then
Me.Retorno = 2
Me.RetornoString = [Ô]Arquivo XML não foi encontrato[Ô]
ElseIf lArqXSD = False Then
Me.Retorno = 3
Me.RetornoString = [Ô]Arquivo XSD (schema) não foi encontrato[Ô]
End If
End If
End Sub
Private Sub reader_ValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs)
Me.cErro = (([Ô]Linha: [Ô] & e.Exception.LineNumber & [Ô] Coluna: [Ô]) + e.Exception.LinePosition & [Ô] Erro: [Ô]) + e.Exception.Message & vbCr & vbLf
End Sub
Dim lArqXML As Boolean = File.Exists(cRotaArqXML)
Dim lArqXSD As Boolean = File.Exists((Me.PastaSchema & [Ô]\[Ô]) + cRotaArqSchema)
If lArqXML AndAlso lArqXSD Then
Dim cStreamReader As New StreamReader(cRotaArqXML)
Dim cXmlTextReader As New XmlTextReader(cStreamReader)
Dim reader As New XmlValidatingReader(cXmlTextReader)
[ô] Criar um coleção de schema, adicionar o XSD para ela
Dim schemaCollection As New XmlSchemaCollection()
schemaCollection.Add([Ô]http://www.portalfiscal.inf.br/nfe[Ô], (Me.PastaSchema & [Ô]\[Ô]) + cRotaArqSchema)
[ô] Adicionar a coleção de schema para o XmlValidatingReader
reader.Schemas.Add(schemaCollection)
[ô] Wire up the call back. The ValidationEvent is fired when the
[ô] XmlValidatingReader hits an issue validating a section of the xml
AddHandler reader.ValidationEventHandler, AddressOf reader_ValidationEventHandler
[ô] Iterate through the xml document
Me.cErro = [Ô][Ô]
Try
While reader.Read()
End While
Catch ex As Exception
Me.cErro = ex.Message
End Try
reader.Close()
Me.Retorno = 0
Me.RetornoString = [Ô][Ô]
If cErro <> [Ô][Ô] Then
Me.Retorno = 1
Me.RetornoString = [Ô]InÃcio da validação...[Ô] & vbCr & vbLf & vbCr & vbLf
Me.RetornoString += [Ô]Arquivo XML: [Ô] & cRotaArqXML & vbCr & vbLf
Me.RetornoString += ([Ô]Arquivo SCHEMA: [Ô] & Me.PastaSchema & [Ô]\[Ô]) + cRotaArqSchema & vbCr & vbLf & vbCr & vbLf
Me.RetornoString += Me.cErro
Me.RetornoString += vbCr & vbLf & [Ô]...Final da validação[Ô]
End If
Else
If lArqXML = False Then
Me.Retorno = 2
Me.RetornoString = [Ô]Arquivo XML não foi encontrato[Ô]
ElseIf lArqXSD = False Then
Me.Retorno = 3
Me.RetornoString = [Ô]Arquivo XSD (schema) não foi encontrato[Ô]
End If
End If
End Sub
Private Sub reader_ValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs)
Me.cErro = (([Ô]Linha: [Ô] & e.Exception.LineNumber & [Ô] Coluna: [Ô]) + e.Exception.LinePosition & [Ô] Erro: [Ô]) + e.Exception.Message & vbCr & vbLf
End Sub
otavio não deu certo não, aconteceu o mesmo erro, obrigado pela atenção
fazendo alguns testes aqui vi que com os schemas 1.10 funciona,
mais com os schemas 2.00 não funciona.
mais com os schemas 2.00 não funciona.
pessoal consegui aqui era problema nos schemas, baixei eles do site oficial
e funcionou direitinho
vlw
e funcionou direitinho
vlw
KILLER poderia mandar um exemplo de um de seus XML feitos na versão 2.0 aqui para o site?
esta ficando assim, mais ainda contém alguns erros
Faça seu login para responder