- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
JAVA 자료구조 [JAXB] JAXB Annotation 설명~ Part. 2
2019.10.24 22:22
[JAXB] JAXB Annotation 설명~ Part. 2
출처: http://www.caucho.com/resin-3.1/doc/jaxb-annotations.xtp
@XmlElements
다중 @XmlElement를 정의할 때 사용
super class의 sub class 들을 따로 관리할 때 사용하면 용의할 것 같음
01 |
class Bean { |
02 |
@XmlElements({ |
03 |
@XmlElement(name="a",type=BeanA.class), |
04 |
@XmlElement(name="b",type=BeanB.class) |
05 |
}) |
06 |
private List<SubBean> data = new List<SubBean>(); |
07 |
} |
08 |
09 |
class BeanA extends SubBean { |
10 |
@XmlValue |
11 |
private String data; |
12 |
} |
13 |
14 |
class BeanB extends SubBean { |
15 |
@XmlValue |
16 |
private String data; |
17 |
} |
XML Document
1 |
<Bean> |
2 |
<a>Some BeanA Data</a> |
3 |
<b>Some BeanB Data</b> |
4 |
<a>Another BeanA Data</a> |
5 |
</Bean> |
@XmlElementWrapper
list 형식의 Element를 serialized 하기 위한 annotate
1 |
class Bean { |
2 |
@XmlElementWrapper(name="values") |
3 |
private List<String> data = new ArrayList<String>(); |
4 |
} |
XML Document
1 |
<Bean> |
2 |
<values> |
3 |
<data>Some data</data> |
4 |
<data>Another item</data> |
5 |
<data>Third item</data> |
6 |
</values> |
7 |
</Bean> |
@XmlJavaTypeAdapter
-_-;;;;; 설명하기에는 영어실력이 딸려서.. ㅠ_ㅠ
XmlAdapter를 이용해서 Java Type에 맞게 convert해주는 것을 정의하는 것 같음....
01 |
class Bean { |
02 |
@XmlJavaTypeAdapter(MyMapAdapter.class) |
03 |
private HashMap<String,String> map; |
04 |
} |
05 |
06 |
class MyMapAdapter |
07 |
extends XmlAdapter<Temp,Map<String,String>> { |
08 |
... |
09 |
} |
10 |
11 |
class Temp { |
12 |
@XmlElement |
13 |
private List<Item> entry = new ArrayList<item>(); |
14 |
} |
15 |
16 |
class Item { |
17 |
@XmlAttribute |
18 |
private String key; |
19 |
20 |
@XmlAttribute |
21 |
private String value; |
22 |
} |
XML Document
1 |
<Bean> |
2 |
<entry key="a" value="data-a"/> |
3 |
<entry key="b" value="data-b"/> |
4 |
<entry key="c" value="data-c"/> |
5 |
</Bean> |
@XmlRootElement
xml에서 최상위 노드를 annotate.
하지만 하위노드에서도 사용을 한다.. 이유는???
1 |
@XmlRootElement(name="my-bean") |
2 |
class Bean { |
3 |
public String data; |
4 |
} |
XML Document
1 |
<my-bean> |
2 |
<data>A sample value</data> |
3 |
</my-bean> |
@XmlTransient
unserialrizable을 mark.....
이걸 찾으려고 이 고생을... ㅠ_ㅠ XmlAccessorType.FIELD 로 해도 되는 거 였구나...
예제는 없습니다. ㅋㅋㅋ
@XmlValue
하나의 property나 field만 있을 경우 해당 property나 field에 serialized.
1 |
class Bean { |
2 |
@XmlValue |
3 |
private String data; |
4 |
} |
XML Document
1 |
<Bean>Sample Data</Bean> |
출처: https://vicki.tistory.com/21 [불친절한자수씨]
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

