Como gerar classes a partir de um schema XML.

Salve, salve galera,

Muita gente já precisou em algum momento gerar um classe que representasse um schema XML para poder utiliza-la como Model em alguma aplicação. Hoje em dia com a crescente demanda por emissão de documentos fiscais eletrônicos  (NFe, CTe, MDFe) a implementação nos sistemas legados tem se tornado alta.

Porem temos um problema muito grande, o schema XML da NFe por exemplo , tem muitas tags, e tipos complexos, o que demanda muito tempo de escrita de codigo, para minimizar (nao eliminar :D) esse problema, temos um recurso muito interessante no Visual Studio que nos permite criar uma classe apartir de um schema XML. Vamos ver ???

Primeiramente precisamos de um schema XML para trabalhar, nesse caso vou utilizar o schema atual da NFe.

Schema1

Tendo escolhido nosso schema, precisaremos abrir o Prompt de Comando do Visual Studio e nos dirigirmos ate a pasta onde se encontram esses schemas, no meu caso, esta nesse caminho

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2012\Visual Studio Tools

Schema2

Agora, para criarmos nossa classe basta utilizarmos o seguinte comando:


xsd.exe xmldsig-core-schema_v1.01.xsd nfe_v2.00.xsd /c

Teremos o seguinte resultado.

Schema3

Agora basta adicionarmos a classe gerada (que fica a principio com o mesmo nome do schema utilizado) e utiliza-la.

Segue um printzinho para termos uma ideia.

Schema4

 

Pessoal de uma maneira bem simples , temos uma classe Model do nosso schema, lembrando que, poderemos ter diferenças de funcionamento a cada conteúdo de schema (tipos complexos, e tudo mais). Mas isso já ajuda bastante.

Por hoje paro por aqui, espero ter ajudado.

 

Anúncios

5 pensamentos sobre “Como gerar classes a partir de um schema XML.

  1. Não estou conseguindo referenciar a classe que gerei em meu projeto. Como inserir esta classe no projeto, já que não foi criada dentro do mesmo ?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s