Gerar Xml a parti de uma classe em um webservice.
05/12/2013
0
Eu tenho esse webservice, https://homologacao.selodigital.tjce.jus.br/wsselodigital/SolicitacaoSelo?wsdl, e não estou conseguindo gerar um xml a partir de uma classe contida nesse webservice, para depois validar o schema e enviar.
Agradeço a todos desde já pela ajuda.
Samuel Barros
Posts
06/12/2013
Gilson Joanelo
09/12/2013
Samuel Barros
Obrigado pela dica, já consegui referência-lo, mais a luta continua para deserializar e serializar da um erro de {"Erro no documento XML (1, 2)."}. Já consigo passar valores aos objetos do webservice .
acesso os objetos do webservice exemplo:
Dim solicitaSelo As New SolicitacaoSelo.TSolicitacaoSelo
'-------------Cabeçalho-----------------
Dim cabecalho As New SolicitacaoSelo.TCabecalho
Dim serventia As New SolicitacaoSelo.TServentia
cabecalho.versao = "0.1"
cabecalho.dataHora = Now
cabecalho.ambiente = "3"
serventia.codigoServentia = "0002"
cabecalho.serventia = serventia
solicitaSelo.cabecalho = cabecalho
'---------------------------------------
'------------Solicitante----------------
Dim solicitante As New SolicitacaoSelo.TPessoaSolicitacao
Dim documento As New SolicitacaoSelo.Documento
Dim telefones As New ArrayList
Dim telefone As New SolicitacaoSelo.Telefone
Dim emails As New ArrayList
Dim email As New SolicitacaoSelo.Email
solicitante.nomePessoa = "Samuel"
documento.tipoDocumento = 4
documento.numero = 4445
documento.descricao = "IDENTIDADE"
documento.orgaoEmissor = "SSP-CE"
documento.dataEmissao = Now
solicitante.documento = documento
telefone.tipoTelefone = 1
telefone.ddd = 85
telefone.numero = "32236098"
telefones.Add(telefone)
Dim telefoneArray As Array
telefoneArray = telefones.ToArray(GetType(SolicitacaoSelo.Telefone))
solicitante.telefone = telefoneArray
email.tipoEmail = 1
email.enderecoEmail = "samuel@swind.com.br"
emails.Add(email)
Dim emailArray As Array
emailArray = emails.ToArray(GetType(SolicitacaoSelo.Email))
solicitante.email = emailArray
solicitaSelo.solicitante = solicitante
'---------------------------------------
solicitaSelo.idSolicitacaoSelo = 1
'---------------Itens------------------
Dim itens As New ArrayList
Dim iten As New SolicitacaoSelo.TSeloSolicitacao
Dim codigoSelo As New SolicitacaoSelo.TCodigoSelo
iten.sequencial = 1
codigoSelo.codigo = "1"
iten.codigoSelo = codigoSelo
iten.quantidade = 100
itens.Add(iten)
Dim itenArray As Array
itenArray = itens.ToArray(GetType(SolicitacaoSelo.TSeloSolicitacao))
solicitaSelo.itens = itenArray
'---------------------------------------
'-----------Signature-------------------
'---------------------------------------
Dim solicitaSelos As New SolicitacaoSelo.solicitaSelos
solicitaSelos.arg0 = solicitaSelo
Dim arquivo As String = "C:\Users\Samuel\Documents\Visual Studio 2012\Projects\WebService\xml\xsSolicitacaoSelo.xml"
Dim XElement As XElement = XElement.Load(arquivo)
Dim tss As New SolicitacaoSelo.TSolicitacaoSelo
tss = Serializer.Deserializer(Of SolicitacaoSelo.TSolicitacaoSelo)(XElement) ' ocorre um erro nesse ponto de {"Erro no documento XML (1, 2)."}
Dim xmlReturn As XElement = Serializer.Serialize(Of SolicitacaoSelo.TSolicitacaoSelo)(solicitaSelos)
End Sub
tenho essa classe que deserializa e serializa
Public Class Serializer
Public Shared Function Deserializer(Of T)(xElement As XElement) As T
Using memoryStream = New MemoryStream(Encoding.ASCII.GetBytes(xElement.ToString()))
Dim xmlSerializer = New XmlSerializer(GetType(T))
Return DirectCast(xmlSerializer.Deserialize(memoryStream), T) ' Nesse ponto o erro que quando é chamado {"Erro no documento XML (1, 2)."}
End Using
End Function
Public Shared Function Serialize(Of T)(o As Object) As XElement
Using memoryStream = New MemoryStream()
Using streamWriter As TextWriter = New StreamWriter(memoryStream)
Dim xmlSerializer = New XmlSerializer(GetType(T))
xmlSerializer.Serialize(streamWriter, o)
Return XElement.Parse(Encoding.ASCII.GetString(memoryStream.ToArray()))
End Using
End Using
End Function
End Class
como citei está corredo de {"Erro no documento XML (1, 2)."} e ainda não consegui ver o pq??? agradeço a ajuda.
24/09/2014
Cristiano Fagundes
Clique aqui para fazer login e interagir na Comunidade :)