Object를 XML형식으로 빠르게 변환할 수 있다..!
1. 루트 클래스 선언
@XmlRootElement : 말그대로 루트 엘리먼트(최상위 요소)를 지정한다. 나중에 JAXBContext에 등록해주어야 함
@XmlAccessorType : 바인딩 시 필드 및 특성..(?) PUBLIC_MEMBER, FIELD, PROPERTY, NONE의 네 가지 속성이 있음
- FIELD - 클래스의 모든 필드(static이 아니고 transient가 아닌)를 모두 XML에 바인딩
- NONE - 어노테이션으로 지정하지 않는한 모든 필드는 XML에 바운딩되지 않는다.
- PROPERTY - getter/setter를 가진 모든 필드들은 자동으로 XML에 바운드된다.
- PUBLIC_MEMBER - 모든 public getter/setter들은 자동으로 XML에 바운드된다.
@XmlRootElement(name = "ROOT")
@XmlAccessorType(XmlAccessType.FIELD)
public class ButtonXml {
@XmlElement(name = "BTN")
private List<Button> buttons;
public List<Button> getButtons() {
return buttons;
}
public void setButtons(List<Button> buttons) {
this.buttons = buttons;
}
}
BTN들을 감싸는 최상위 요소(<ROOT>)를 만들었다고 보면 된다..
<ROOT>
<BTN></BTN>
<BTN></BTN>
</ROOT>
2. 객체 생성
여기도 마찬가지로 XmlRootElement와 XmlAccessorType을 지정해줬다.
@XmlRootElement(name = "BTN")
@XmlAccessorType(XmlAccessType.FIELD)
@Getter
@Setter
@ToString
public class Button {
/* 생략 */
}
3. XML생성!
public void convertButtonListToXml(List<Button> buttons) {
ButtonXml buttonXml = new ButtonXml();
buttonXml.setButtons(buttons);
try {
// Create JAXB Context
JAXBContext jaxbContext = JAXBContext.newInstance(ButtonXml.class);
// Create Marshaller
Marshaller marshaller = jaxbContext.createMarshaller();
// Print XML String to Console
StringWriter stringWriter = new StringWriter();
// Write XML to StringWriter
marshaller.marshal(buttonXml, stringWriter);
// Verify XML Content
String xmlContent = stringWriter.toString();
System.out.println(xmlContent);
} catch (JAXBException e) {
e.printStackTrace();
}
}
JAXB Write Java Object to XML Example - HowToDoInJava
Java example to write Java object to XML. Information stored in Java objects fields can written into XML file or simply XML string as well. 1) Convert Java Object to XML String To write Java object to XML String, first get the JAXBContext. It is entry poin
howtodoinjava.com
+) 참고
A Guide to JAXB Annotations - HowToDoInJava
Learn about JAXB annotations in detail along with their usage during marshalling and unmarshalling operations eg. @XmlRootElement, @XmlElement and @XmlList,
howtodoinjava.com
'STUDY > Java' 카테고리의 다른 글
Java | Builder패턴 (Lombok @Builder) (0) | 2021.03.29 |
---|---|
Java | MultipartFile image width와 height 알아내기 (0) | 2021.03.25 |
Java | java 11 설치하기 (0) | 2020.12.15 |
Java | Primitive Types ( + Overflow/Underflow ) (0) | 2020.08.24 |
Java | 추상클래스(abstract class) / 인터페이스(Interface) (0) | 2020.05.18 |