2010-03-04 4 views
1

다른 개체와 공유되는 개체를 생성하는 데 사용되는 XSD 파일이 있습니다. 좀 더 구체적으로 구현함으로써 비즈니스 로직의 일부를 사용자 정의하고 싶습니다. 직렬화 할 필요가있는 새로운 필드를 추가하는 것이 아니라 다른 형식 매개 변수를 취할 수있는 setMethods를 추가하는 선을 따라 더 많이 추가합니다. 이 메소드는 데이터를 기본 객체가 필요로하는 형식으로 변환하는 작업을 수행합니다.JAXB를 통한 상속

문자열 인 JAXB 객체의 필드가있을 수 있지만 시스템에서 정수를 제공합니다. 그래서, 저의 기본 클래스를 확장하는 클래스에서 변환 작업을 처리하고 싶습니다.

그렇다면 JAXB가 직렬화를 요청한 객체의 하위 클래스에서 JAXB가 XmlRootElement를 찾도록하기 위해 수행해야 할 특별한 작업이 있습니까? 또는 더 구체적인 클래스에 @XmlRootElement 특성을 포함해야합니까?

감사합니다.

답변

1

예, @XmlRootElement/@XmlType이면 충분합니다. 하지만 생성 된 클래스에이 메소드를 추가하는 것이 어떨까요? (당신이 각각의 빌드에서 재생성하지 못하는 경우를 대비해).

그러나 다른 (변환기) 클래스/메소드로의 변환을 외부화하는 것이 좋습니다.

+0

개체가 데이터의 "이상화 된"표현이기 때문입니다. 데이터는 다양한 시스템에서 나오므로 이상화 된 형식으로 마사지해야합니다. 그래서, 최선의 해결책은 특정 객체에 대한 메소드를 호출하여 해당 구현에 적합하게 만드는 모든 작업을 처리하는 것이라고 생각했습니다. 더 나은 방법을 알고 있다면 알려주세요! –

+0

또한 XSD의 각 빌드에서 생성해서는 안된다는 것에 동의하지 않습니다. 깨끗하게 처리하면 생성 된 파일이 사라집니다. 이 방법으로 신뢰할 수있는 소스가 하나뿐입니다.이 파일은 XSD 파일입니다. –

관련 문제