2012-02-04 7 views
0

최근에 일부 데이터를 XML로 저장하는 특정 요구 사항이있는 프로젝트로 이동했습니다.Castor Generated Classes (XML 마샬링) - XSD를 사용할 수 없음

이전 팀에서는 Castor 생성 클래스를 사용하여 데이터를 마샬링 및 언 마샬링했습니다.

나는 지금이 XML에 몇 가지 추가 (아직 선택 사항) 필드를 추가 할 저를 필요로하는 새로운 요구 사항이 있습니다. 그러나 이전 팀이 XSD를 전혀 체크인하지 않았다는 것을 알았고 그들에게 다가 갈 방법이 없습니다.

약 50 개의 클래스를 생성하기 때문에 XSD가 크고 복잡했습니다. 따라서 XSD를 다시 작성하는 것은 오류가 발생하기 쉬울뿐만 아니라 이전 XML과 호환되는 XML을 작성하게 될 위험이 있습니다.

내가 생각했던 또 다른 대안은 XML Spy와 같은 도구를 사용하여 XSD를 XML에서 리버스 엔지니어링하는 것이었지만 XSD를 생성하기 위해 20 가지 이상한 XML을 리버스 엔지니어링해야하므로 너무 어려워 보입니다. XML에 여러 옵션 섹션이 있으므로 모든 XSD를 하나로 병합하십시오. 이 접근법에는 여전히 오류 요소가 있습니다. 그러나 캐스터가 가정으로이 기능을 지원하지 않습니다 - 내가 생각할 수있는

최선의 선택은 역 XSD로 수업을 설계한다. 그래서 저는이 Castor 생성 클래스를 XSD로 다시 변환 할 수있는 방법이 없습니다! Castor에 의해 생성 된 클래스에는 Castor 특정 메소드가 있지만, Castor 특정 메소드가 무시되는 경우에는 Pojos입니다.

Java 클래스에서 XSD를 가져 오거나 생성하는 방법에 대한 제안 사항이 있습니까? 논의한 문제를 해결하기위한 다른 제안이 있습니까?

감사합니다. 내가 찾던의 100 %를 달성하지 않은 상태

답변

0

그냥 업데이트, 나는 성공적 JAXB의에서는 schemagen 도구를 사용하여 XSD를 리버스 엔지니어링 할 수 있었다.

그냥 그게에서는 schemagen 도구에 입력으로 XXXDescriptor 클래스를 통과하지 못한 실제 XSD에 매핑되지 않기 때문에이 캐스터는 각각의 클래스를 가진 XXXDescriptor을 발생주의.

에서는 schemagen 도구는 getter 메소드와 함께 작동 및 캐스터의 유효성 검사, 정렬 화와 비 정렬과 같은 방법을 무시합니다.

그래서 일이 내가 먼저 질문을 게시했을 때의 상황에 비해,이 시점에서 상당히 희망을 본다.

감사합니다.