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.
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.
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.