>Java >java지도 시간 >JAXB를 사용하여 키-값 요소가 포함된 사용자 정의 XML 형식으로 맵을 마샬링하는 방법은 무엇입니까?

JAXB를 사용하여 키-값 요소가 포함된 사용자 정의 XML 형식으로 맵을 마샬링하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-13 03:38:02321검색

How to Marshal a Map to a Custom XML Format with Key-Value Elements Using JAXB?

JAXB를 사용하여 지도를 사용자 정의 XML 형식으로 마샬링

질문:

마샬링하는 방법 키 값 쌍이 다음과 같이 표시되는 사용자 정의 XML 형식으로의 맵 <키>값 요소?

토론:

지도 마샬링을 위한 기본 JAXB 접근 방식은 다음과 같은 구조의 XML을 생성합니다.

<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 요소가 지도의 런타임 콘텐츠에 종속되게 하므로 권장되지 않습니다. 인터페이스 레이어 사용에는 바람직하지 않습니다. 대신, 열거형을 맵의 키로 사용하는 것이 좋습니다.

public enum KeyType {
  KEY,
  KEY2;
}

@XmlJavaTypeAdapter(MapAdapter.class)
Map<KeyType, String> mapProperty;

해결책 2: 기본 구조 단순화

기본 생성을 단순화하려는 경우 구조를 다음과 같이:

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

지도를 배열로 변환하는 지도 어댑터를 사용할 수 있습니다. 맵 요소:

class MapElements {
    @XmlAttribute
    public String key;
    @XmlAttribute
    public String value;
    
    ...
}

public class MapAdapter extends XmlAdapter<MapElements[], Map<String, String>> {
    ...
}

위 내용은 JAXB를 사용하여 키-값 요소가 포함된 사용자 정의 XML 형식으로 맵을 마샬링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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