2010-08-09 3 views
1

JAXB를 통해 Map<String, Map<String, Serializable>>을 마샬링/비 정렬하려고합니다. 두 가지 문제점이 있습니다. 1. JAXB는 복잡한 맵을 처리 할 수 ​​없습니다. 2. JAXB는 인터페이스를 처리 할 수 ​​없습니다 (이 경우 Serializable). JAXB를 통해 어떻게 얻을 수 있습니까?JAXB 및 복잡한지도

+1

자신에게 물어보십시오. 출력으로 볼 XML은 무엇입니까? XML이 나타내는지도에 매우 좋지 않다 ... – skaffman

+0

@skaffman : XML은 오랫동안 키와 값이 XML에서 표현할 수만큼 아주 잘지도를 나타낼 수 ... ...을 ... richj

+0

@richj : XML 모델링이 좋지 않다고 생각합니다. 신호가 너무 많습니다. – skaffman

답변

1

JAXB가 마샬링 할 수 있어야하는 주요 문제는 인터페이스라고 생각합니다. < String, ConcreteType>. 인터페이스의 문제점은 JAXB demarshalling이 인터페이스를 구현하는 데 사용할 구체적인 유형을 알지 못한다는 것입니다. 정렬 화 스트림은 Java 코드에서 가져온 것이 아니기 때문에 스트림에 구체적인 유형 정보를 포함 할 수 없습니다. JAXB는 구현을 선택해야하며이를 수행하는 데 도움이 필요합니다. Mapping your favorite class

JBoss Built-in JAXB Providers

이 웹 서비스 마샬링과 일반적인 문제입니다

JAXB: How should I marshall complex nested data structures

. 강력한 방법 중 하나는 데이터 전송을 위해 WSDL에서 정확하게 정의 할 수있는 구체적인 유형을 포함하는 데이터 전송 객체를 사용하는 것입니다. 응용 프로그램 코드에서 도메인 객체를 이러한 DTO 안팎으로 매핑해야하는 단점이 있습니다. 이 방법의 한 가지 이점은 응용 프로그램이 데이터 전송 형식에 느슨하게 결합되어 있다는 것입니다.

0

알다시피 XML은 맵 유형을 지원하지 않습니다. 그래서 이것을 사용하여 시도 할 수 있습니다

<item key="somekey" value="hello" /> 

하지만 중복 키를 직접 확인해야합니다.