1
XML (Java) 용 Simple 프레임 워크를 처음 접하고 특정 클래스 구성을 직렬화하는 문제가 발생했습니다.확장하지 않고 ID로 필드 참조
@Root(name="static")
class StaticData {
@Attribute
private String id;
@Attribute
private String value;
...
}
및
@Root(name="listdata")
class ListData {
// Problem field
@Attribute
private StaticData ref;
@Element
private String name;
}
그리고 "
TransformException를 :를 지원하지 않는 클래스 StaticData의 변환"가 나타납니다
나는 두 개의 클래스가 있습니다. ListData의 ref-field를 정적 데이터 XML 구조로 확장하지 말고 (@Element는 괜찮을 것입니다.) 참조를 얻으려고합니다.
여기서 "foo"는 이미 내 응용 프로그램에로드 된 일부 StaticData 객체의 "id"에 유효한 값입니다.
는 JAXB에서 나는 XmlJavaTypeAdapter와 주석
@XmlAttribute(name="id")
@XmlJavaTypeAdapter(MyStaticDataAdapter.class)
을 사용하지만 간단한에서 작업 동등한를 찾을 수 없습니다.
감사합니다. 그게 정확히 내가 찾고 있던 것이 었습니다. 나는 내 자신의 변환기로 이미 시도했지만 ListData 대신 StaticData를 구현하려고 시도했다. 실패했다. – taranion
단점. ListData에서 Converter를 사용하는 두 가지 옵션이 있습니다 - 전체 클래스에 대해 전역 적으로 또는 단일 필드에 대해서만. 전체 클래스에 적용하면 일반적으로 좋은 결과를 얻을 수있는 * ALL * 다른 필드도 처리해야합니다. 기본 동작이없는 것 같습니다. 단일 필드로 사용하면 동일한 오류가 발생합니다. – taranion
필드에 변환기를 사용하는 경우에는 변환기에'@ Element'를 적용해야합니다. 예 : '@Element @Convert (WhatEver.클래스)'. 하지만 부모 Xml 노드에 액세스 할 수 있는지 확실하지 않습니다. –
ollo