Databinding

XML 문서의 XSD Schema를 기준으로 XML문서와 JavaBeans 객체를 매핑하는 것을 Databinding이라고 하며, Web Services에서 서버와 클라이언트 간의 XML 문서를 주고 받아서 일을 수행하려고 할때 사용 되는 기술이다.
Apache CXF는 Databinding을 위해 JAXB를 디폴트로 사용하며 Aegis, MTOM을 추가적으로 지원한다.


Databinding의 종류는 다음과 같다.
  • JAXB

  • Java Architecture for XML Binding의 약자로 XML Schema로부터 클래스 데이터를 바인딩하여 XML로부터 객체를 Unmarshalling 하거나, 반대로 객체를 XML로 저장하는 Marshalling을 수행할 수 있도록 해 준다.
  • Aegis

  • Aegis는 JAXB와 다르게 표준(Spec.)이 아니며, Apache CXF에서만 제공되는 기능으로 JAXB와 역할이 동일하다. Xfire 프로젝트의 일부로 시작되었으나 Celtix와 Xfire의 합체로 현재 Apache CXF에 포함되어 발전되고 있다.
  • MTOM

  • Message Transmission Optimization Mechanism의 약자로 SOAP 메시지 통신 최적화 메커니즘이다. 웹 서비스를 통해 바이너리 데이터를 효과적으로 편리하게 전송할 수 있도록 하는 표준이다.
Databinding 기술 종류를 그림으로 살펴보면 다음과 같다.
보통 JAXB, JAXB+MTOM, Aegis, Aegis+MTOM 의 형태로 Databinding 기술이 사용된다. 그림에서 JAXB와 Aegis의 공통 영역이 존재하는 이유는 Aegis를 사용하면서 몇가지 JAXB Annotation을 함께 사용할 수 있기 때문이다.

다음은 각각의 Databinding 기술 별로 어떻게 사용하는지에 대한 사용법이다.

Resources