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 중국어 웹사이트의 기타 관련 기사를 참조하세요!