2014-12-02 3 views
1

다음 문제가 있습니다. XLS의 속성을 정수로 정의해야합니다. XMLAdapter (나를 위해 정의)가 null 또는 empty를받는 대신 값을 받으면 내 경우에 부정확 한 de Integer parse emty ''값이 0이기 때문에 0을받습니다. 이 값이 "0"또는 "0"에서 오는 것인지 어떻게 알 수 있습니까? 속성 값이 ""인 경우 값은 Null이어야합니다. 0이면 0이되어야합니다. JAXB의 버그입니다. 나는 읽었다 :
JAXB: how to make JAXB NOT to unmarshal empty string to 0
그러나 저를위한 해결책 아닙니다.
어떻게해야합니까?! XLS 속성의 정의는 정수 여야하기 때문에, 내가 XmlAdapter<String, Integer>처럼 정의 해달라고
JAXB 빈 값 문자열을 null로 구문 분석하는 방법 정수

public class IntegerAdapter extends XmlAdapter<Integer, Integer> { 
    @Override 
    public Integer marshal(Integer arg0) throws Exception { 
     return arg0; 
    } 
    @Override 
    public Integer unmarshal(Integer v) throws Exception { 
     return v; 
    } 
} 

:
나는 마일 (때문에) XmlAdapter를 정의했다. 감사합니다.

답변

1

당신은 대신 다음을 사용합니다 다음 XLS 속성의 정의는 정수 여야하기 때문에

XmlAdapter<String, Integer> 

내가 XmlAdapter<String, Integer>처럼 정의 해달라고.

@XmlSchemaType 주석을 사용하여 원하는 스키마 유형을 설정할 수 있습니다.

@XmlJavaTypeAdapter(IntegerAdapter.class) 
@XmlSchemaType(name="integer") 
public Integer getAge() { 
    return age; 
} 
+1

Excelent! 고마워요! – Cralbert

+0

당신이 코드를 공유 할 수있는 방법을 실제로 달성했습니다 this.i 관리 할 수 ​​없습니다 오전 나는 롱과 같은 문제에 직면하고있다. – arjun

관련 문제