2014-09-17 2 views
0

오늘 XSD -> POJO 또는 POJO -> XSD에 이르기 전에이 게시물을 발견했습니다. JAXB 및 REST - XSD 값?

Java to XSD or XSD to Java

그것은 우리가 심지어 우리의 시나리오에서 XSD를을 귀찮게해야하는지 의문을 제기했다. 우리는 XSD를 작성하고 Java POJO를 생성 한 다음 POJO를 사용하여 REST 서버와 클라이언트간에 데이터를 전송해야한다고 가정했습니다. 하지만 필요한 주석이있는 POJO를 직접 작성할 수 있다면 이러한 XSD의 가치는 무엇입니까?

우리는 XSD를 손으로 코딩하는 대신 사용자 지정 XSD GUI 도구를 작성하는 것이 도움이 될 수 있다고 생각했습니다. 그러면 XSD를 사용하면 얻을 수있는 이점 중 하나 일 수 있습니다. 하지만 JAXB beans를 만들기위한 GUI 툴이 있다고 가정하고 있습니까?

우리의 시나리오에서 컴파일 시간 전에 클래스를 생성해야하는 추가 프로젝트의 복잡성으로 인해 XSD를 갖는 것이 가치가 있습니까?

+0

의견을 보내 주셔서 감사합니다. 저는 XSD에서 데이터 전송 객체를 정의하고 시간과 노력을 낭비하는 등 나쁜 경로로 나아갈 수 없다는 확신을 원했습니다. 나는 두 가지 대답을 모두 upvoted했지만, 프로젝트의 정확한 세부 사항을 모른 채로이 질문에 대한 정답은 없다고 생각합니다. – medloh

답변

1

요구 사항에 따라 다릅니다. 경우에 따라 xsd가 클래스를 작성하는 데 필요한 모든 정보 (데이터 유형 등)를 제공 할 수 있으므로 XSD 문서의 수단으로 요청/응답의 요구 사항이 정의됩니다. 이러한 경우 POJO를 직접 생성하면 이미 제자리에 xsd가 있습니다.

먼저 xsd를 작성한 다음 POJO 객체를 생성해야하는 경우 오버 헤드가 될 수 있습니다.

당신에게 맞는 것을 보시고, 현명하게 선택하십시오!

2

JAXB 주석 클래스 집합에 대한 XML 스키마의 장점 중 하나는 "외부"통신 파트너에 대한 정의가 있다는 것입니다. 어쩌면 지금은 필요 없겠지만 내일은 어떨까요?

XML 스키마를 사용하는 다른 좋은 이유는 (현명하게 사용되는 경우) 유형을 쉽게 (언) 마샬링으로 제한한다는 것입니다. 직렬화하기가 어려운 POJO 클래스를 작성할 수 있습니다.

내가 생각할 수있는 세 번째 이유는 모든 javax.xml.annotation 주석 클래스에 대처하는 방법을 배울 필요가 없다는 것입니다. 그것은 일 수도 있고 일 것입니다. (XML Schema 접근법을 통해 트릭이나 두 가지를 할 수도 있습니다.)하지만 XML 스키마를 작성하고 xjc를 처리하는 것이 더 편리하다는 것을 알았습니다. 나를위한 핵심 세부 사항.