JAXB пишем Hello World – Devcolibri

  • Автор темы Lucania
  • 23
  • Обновлено
  • 05, May 2023
  • #1
Пример простейшей программы на JAXB для записи в XML файл "Hello, World!" выглядит следующим образом: javaCopy code
 import java.io.File;

import javax.xml.bind.JAXBContext;

import javax.xml.bind.Marshaller;

public class HelloWorld {

public static void main(String[] args) throws Exception {

// Создаем объект для маппинга данных в XML

HelloWorldData data = new HelloWorldData();

data.setMessage("Hello, World!");

// Создаем объект JAXB Context для настройки маппинга

JAXBContext jaxbContext = JAXBContext.newInstance(HelloWorldData.class);

// Создаем объект Marshaller для записи XML

Marshaller marshaller = jaxbContext.createMarshaller();

// Устанавливаем форматирование вывода

marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

// Записываем данные в XML файл

marshaller.marshal(data, new File("helloworld.xml"));

System.out.println("XML файл успешно создан!");

}

}

В данном примере используется класс
 HelloWorldData
для хранения данных, которые будут записаны в XML файл.

Этот класс должен быть аннотирован с помощью аннотаций JAXB для определения маппинга данных в XML.

В данном случае класс простой, он содержит только одно поле
 message
с сообщением "Hello, World!". javaCopy code
 import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class HelloWorldData {

private String message;

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}
После запуска программы будет создан файл "helloworld.xml" со следующим содержимым: xmlCopy code
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<helloWorldData>

<message>Hello, World!</message>
</helloWorldData>
Обратите внимание, что JAXB автоматически создал тег
 <helloWorldData>
для объекта
 HelloWorldData
, так как этот класс был аннотирован аннотацией
 @XmlRootElement
.

Lucania


Рег
02 Feb, 2023

Тем
27158

Постов
27328

Баллов
298908
Тем
49554
Комментарии
57426
Опыт
552966

Интересно