- 05, May 2023
- #1
Пример простейшей программы на JAXB для записи в XML файл "Hello, World!" выглядит следующим образом:
javaCopy code
Этот класс должен быть аннотирован с помощью аннотаций JAXB для определения маппинга данных в XML.
В данном случае класс простой, он содержит только одно поле
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
.