Mudanças entre as edições de "XSD To Java Object (JAXB Plugin)"
(Criou página com 'É possível utilizar o Java para gerar Objetos que representam as informações usados em um WebService. Para criar esses objetos vamos precisar primeiro dos arquivos XSD do webservice. De posse dos XSD devemos coloca-los em alguma pasta dentro do projeto, mesmo que temporariamente, para que a IDE possa encontra-lo. Agora basta seguir os passos abaixo: '''1.''' Clique com o botão direito, no menu Generate > JAXB Classes... para abrir o wizard. File:XSDToJava1.jpg...') |
|||
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 21: | Linha 21: | ||
Para os serviços da NFe, recomendo que para cada XSD gerado se crie um pacote separado para esses arquivos mesmo que muitos arquivos possam ser reaproveitados (por serem o mesmo tipo internamente). Acredito que seja melhor ter alguns arquivos repetidos do que conflitos futuros por versões diferentes dos serviços publicados da SEFAZ.}} | Para os serviços da NFe, recomendo que para cada XSD gerado se crie um pacote separado para esses arquivos mesmo que muitos arquivos possam ser reaproveitados (por serem o mesmo tipo internamente). Acredito que seja melhor ter alguns arquivos repetidos do que conflitos futuros por versões diferentes dos serviços publicados da SEFAZ. | ||
Além disso, a cada XSD que se criam novos arquivos, muitos se sobrepõe por usarem o mesmo tipo e arquivos de dependências entre os XSDs. Caso alguma alteração/adaptação tenha sido realizada nos objetos criados anteriormente, ela será perdida nos arquivos que forem sobrepostos. Alterações como '''@XMLRootElement()''' precisarão ser refeitas. | |||
}} | |||
{{nota|Falta do @XMLRootElement()|Ao criar os objetos a partir do XSD da SEFAZ, o JAXB não inclui a annotation de identificação do objeto raíz nos elementos necessários por conta da estrutura com o XSD da SEFAZ foi montado. | |||
Para solucionar isso, em cada objeto que representa uma tag raiz de algum serviço é necessário incluir a annotation manualmente para que o JAXB consiga serializar/desserializar o XML corretamente. | |||
Exemplo: na Classe TEnviNFe, que representa a tag enviNFe utilizada no serviço de envio de NFe para autotização, é necessário adicionar a seguinte annotation à classe: | |||
<pre>@XmlRootElement(name = "enviNFe")</pre> | |||
}} | }} |
Edição atual tal como às 19h37min de 29 de agosto de 2023
É possível utilizar o Java para gerar Objetos que representam as informações usados em um WebService.
Para criar esses objetos vamos precisar primeiro dos arquivos XSD do webservice. De posse dos XSD devemos coloca-los em alguma pasta dentro do projeto, mesmo que temporariamente, para que a IDE possa encontra-lo.
Agora basta seguir os passos abaixo:
1. Clique com o botão direito, no menu Generate > JAXB Classes... para abrir o wizard.
2. Escolha o projeto onde as classes geradas devem ser colocadas
3. Na tela seguinte defina o package que deseja colocar as classes e clique em Finish.
![]() |
|
![]() |
|