2014-12-30 4 views
1

"ActionType"열거 형을 포함하는 상위 클래스가 있습니다.Jaxb - 알 수없는 속성 무시

@XmlRootElement(name="Action") 
public class ActionDto { 
[...] ActionType type; 
} 

및 ActionDto를 확장하고 password (LoginDto)와 같은 특수 속성을 갖는 일부 하위 클래스.

이것은 서버 - 클라이언트 연결입니다. 내 클라이언트에서 내 서버로 일부 데이터를 보내려고합니다. 그래서 나는 그것을 (Jaxb를 사용하여) 으로 serialize하고 ActionDto 객체에 대해 그것을 비 직렬화한다.

LoginDto - 객체에 대한 예 : - 나는 그것이 암호 속성에 의해 발생하는 것 같아요 내가 ActionDto - 객체에 직렬화하는 경우

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Action> 
<type>LOGIN</type> 
<password>Testpassword</password> 
</Action> 

오류가 발생합니다. Jaxb-unmarshaller가 알 수없는 속성을 무시하도록 할 수 있습니까?

내 LoginDto-Object에 직접 비 정렬화할 수있는 다른 방법이 있습니까 (서버가 xml-String을 수신하고 특수 유형을 모르는 경우)?

답변

1

기본적으로 JAXB 구현은 알 수없는 요소를 무시합니다. 예외를 던지면 에서 기본값 ValidationEventHandler이 대체되었습니다. 덜 민감한 것으로 교체해야합니다.