Skip to content

Exemplo de uso da API JAXB para parse de arquivos XML no Java 15+ ☕️📄

License

Notifications You must be signed in to change notification settings

manoelcampos/xml-parsing-jaxb

Repository files navigation

Convertendo XML de/para objetos Java usando API JAXB GitHub Actions Workflow Status

1. Introdução

JAXB é uma API atual para realizar o mapeamento (marshalling / unmarshalling) de XML para objetos Java e vice-versa. O projeto em Java 21 apresenta a classe XmlParser.java que permite indicar a URL de um arquivo XML. A classe então lê tal arquivo e instancia um objeto de uma classe indicada, armazenando os dados lidos do XML.

2. Exemplo de uso

A classe XmlParser é genérica e pode ser usada para fazer o parse de qualquer arquivo XML. No exemplo de uso disponibilizado na classe Main.java, é lido um arquivo contendo uma lista de produtos, a partir de products.xml. Em seguida é instanciado um objeto Products.java contendo os dados lidos.

O exemplo usa a API JAXB para fazer o binding do conteúdo XML para objetos Java. Como podem ver, é extremamente simples utilizar tal API. O código da classe XmlParser é bastante reduzido. A chave é utilizar as anotações da JAXB nas suas classes de negócio, que representam a estrutura do arquivo XML (neste exemplo as classes Product.java e Products.java), para permitir converter o XML para objetos Java e vice-versa.

3. Detalhes

A classe XmlParser só é necessária, pois ela faz o download de arquivos XML a partir de uma URL e inclui outras facilidades. Mas a conversão de ou para é feita com uma única linha de código:

  • XML para objetos Java: método JAXB.unmarshal()

  • Objetos Java para XML: método JAXB.marshal()

No entanto, usar estes métodos diretamente requer a passagem de alguns parâmetros adicionais.

4. Outras versões

Existem versões em Java 8, Java 11 e Java 15 que não são mais atualizadas.