>  기사  >  Java  >  JAXB에서 맵을 '값' 형식으로 마샬링하는 방법은 무엇입니까?

JAXB에서 맵을 '값' 형식으로 마샬링하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-21 08:59:09202검색

How to Marshal a Map into `value` Format in JAXB?

JAXB: 지도를 value 형식

컨텍스트

JAXB는 기본적으로 Map을 다음과 같은 구조로 마샬링하는 것을 지원합니다.

<map>
  <entry>
    <key> KEY </key>
    <value> VALUE </value>
  </entry>
  <entry>
    <key> KEY2 </key>
    <value> VALUE2 </value>
  </entry>
  ...
</map>

그러나 어떤 경우에는 XML을 생성해야 할 수도 있습니다. 키는 요소 이름이 되고 값은 요소의 내용이 됩니다.

<map>
  <key> VALUE </key>
  <key2> VALUE2 </key2>
 ...
</map>

해결책 1: 동적 요소 이름을 피하세요

런타임에 지도 콘텐츠에 대한 종속성이 발생하므로 이러한 유형의 XML 생성은 일반적으로 피하는 것이 좋습니다. 이는 XML 스키마(XSD)에 정의된 인터페이스 계약에 영향을 미칠 수 있습니다.

대신, 열거형 유형을 맵의 키로 사용하여 컴파일 타임에 요소 이름이 알려지고 JAXB가 스키마를 생성할 수 있도록 하는 것이 좋습니다. 이는 XML의 요소를 제한합니다.

해결책 2: XML 구조 사용자 정의

기본 생성 구조를 단순화하려면 예:

<map>
    <item key="KEY" value="VALUE"/>
    <item key="KEY2" value="VALUE2"/>
</map>

지도를 MapElement 배열로 변환하는 맞춤 MapAdapter를 구현하세요.

위 내용은 JAXB에서 맵을 '값' 형식으로 마샬링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.