Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Spring
- hadoop
- 스프링 배치
- design pattern
- Spring Batch
- elastic search
- SBT
- hdfs
- docker
- elasticsearch
- Linux
- Java
- Angular2
- hibernate
- 엘라스틱서치
- Spring XD
- nginx
- DDD
- scala
- spark
- 제주
- Spring Boot
- Hbase
- 도메인주도설계
- Gradle
- Domain Driven Design
- apache storm
- Clean Code
- intellij
- Storm
Archives
- Today
- Total
욱'S 노트
JAXB - Annotating Classes 본문
Mapping interfaces
W3C XML Schema로부터 나온 XML 타입과 자바 타입 시스템의 차이 때문에, JAXB는 인터페이스를 out of box로 바인딩을 하지 못하지만, 몇 가지 요소들을 제공한다.
@XmlRootElement
인터페이스가 많은 서브 클래스로 구현된다면 XmlRootElement를 사용하는 것을 고려할 수 있다.
@XmlRootElement
class Zoo {
@XmlAnyElement
public List<Animal> animals;
}
interface Animal {
void sleep();
void eat();
...
}
@XmlRootElement
class Dog implements Animal { ... }
@XmlRootElement
class Lion implements Animal { ... }
결과는 다음과 같이 표현될 것이다.
<zoo>
<lion> ... </lion>
<dog> ... </dog>
</zoo>
주요 속성은 다음과 같다.
1. 구현체는 제한이 없다. : 누구든지 주어진 인터페이스를 구현할 수 있다. 비록 다른 모듈 다른 사람에 의해 개발되더라도 그것들은 JAXBContext.newInstance 메소드에 제공되어져야 한다. 모든 장소에 있는 모든 구현체의 클래스가 리스트될 필요가 없다.
2. 각 인터페이스의 구현체는 유니크한 엘리먼트 이름을 가져야 한다.
3. 인터페이스의 모든 참조는 XmlElementRef를 가질 필요가 있다.
Comments