2012-08-28 5 views
0

xjc를 사용하여 클래스를 생성하는 데 문제가 있습니다. 스키마에서 나는 nillable = "false"를 가지지 만 생성 된 필드에는 주석 (@XmlElement (nillable = false))으로 추가되지 않습니다. 이로 인해 Jackson은 필드가 비어있을 때 필드를 제거하지 않도록합니다. nillable = true로 변경하면 클래스가 예상대로 반영되도록 업데이트됩니다.xjc가 생성 된 필드에 @XmlElement (nillable = false)를 추가하지 않습니다.

아이디어가 있으십니까?

+1

기본적으로 'nillable'은 false입니다 (즉, @XmlElement (nillable = false) 및 @XmlElement()가 동일 함). –

+1

Jackson은 JAXB (JSR-222) 호환 구현이 아닙니다. 표준 JAXB 주석을 해석하는 방법에 대한 보장은 없습니다. –

+0

그게 내가 직면 한 것 같아. 생성 된 소스 파일에 수동으로 XmlElement (nillable = false)를 추가하면 Jackson이 예상대로 작동합니다. 따라서 Jackson @ XmlElement (nillable = false)는 @XmlElement()와 같지 않습니다. – Erlend

답변

0

그래서 maven-jaxb2-plugin에 대한 자체 플러그인을 작성하여 속성을 확인하고 누락 된 항목을 추가했습니다. @XmlElement(nillable = false).