- 전체
- 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 [불친절한자수씨]
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.