2012-06-11 4 views
0

나는 여러 가지 방법으로 웹 서비스를 가지고있다. 각 메소드는 자체 응답과 요청 (POJO 클래스)을 가지고있다.JAXB를 사용하여 개별 XSD 파일을 생성하는 방법은 무엇입니까?

XSD 파일을 내 사용자에게 배포하려고하므로 JAXB를 사용하여 스키마 파일을 생성하기로 결정했습니다.

내 문제는 개별 파일 (서비스 당 하나)을 갖고 싶다는 것입니다!

내가 JAXB 시도했지만 당신은 JAX-WS와 웹 서비스로서을 게시 할 때 내가 할 모든 wsdl 모든 것을 알려줍니다, 내 모든 객체

+0

각 클래스에 대한 XSD를 또는 어떤 종류의 작은 범위를 생성 할 수 있습니까? 필요한 Java 파일 (이 경우에는 rq/rs java)을 지정하는 옵션이 있으며 schemagen은 필요한 것만 가져오고 다른 것은 필요하지 않습니다. –

+0

이 명령은 다음과 같습니다 : schemagen ClassA.java ClassB.java ClassC.java package-info.java ... 문제는 빌드 라이프 사이클에 작업을 추가해야 문제가 더욱 어려워집니다. – Rodrigo

+0

그래서 이 명령으로 당신은 여전히 ​​원치 않는 물건을 얻고 있습니까? 또는이 명령 행을 빌드에 통합하는 것이 쉽지는 않습니까? –

답변

1

와 큰 XSD 무엇 각 고객의 요구와 범위.

어쨌든 .. JAX-RS라고하니?

당신은 당신이 어떤 명령 줄을 시도 않았다 JAXBContext에 # generateSchema

public void generateSchema(final Class<?> classesToBeBound, 
          final OutputStream schemaStream) 
    throws JAXBException, IOException { 

    final JAXBContext context = JAXBContext.newInstance(classesToBeBound); 

    context.generateSchema(new SchemaOutputResolver() { 
     public Result createOutput(final String namespaceUri, 
            final String suggestedFileName) 
      throws IOException { 

      return new StreamResult(schemaStream) { 
       @Override 
       public String getSystemId() { 
        return suggestedFileName; 
       } 
      } 
     } 
    }); 
} 
관련 문제