2017-05-17 1 views
0

JAX-WS 및 wsimport를 사용하여 웹 서비스 클라이언트를 생성했습니다. 나는 위의 웹 서비스 호출을하기 전에 주어진 스키마 트론 규칙에 대한 processStuffObject을 검증 할 필요가Schematron에 대한 WebService 메시지 유효성 확인

URL url = new URL("http://localhost:9999/ws/processstuff?wsdl"); 
QName qname = new QName("namespace", "ProcessStuffImplService"); 
Service service = Service.create(url, qname); 
ProcessStuffInterface processStuffInterface = service.getPort(ProcessStuffInterface.class); 

ProcessStuffObject processStuffObject = new ProcessStuffObject(); 
//Web service call 
processStuffInterface.processStuff(processStuffObject); 

:

이 내 클라이언트 코드입니다. 필자는 ph-schematron과 같은 라이브러리를 살펴 보았지만 유효성 검증은 File 또는 그와 유사한 객체에서만 가능하다고 보입니다. 누구든지 내 ProcessStuffObject과 같은 JAX-WS로 생성 된 객체를 Schematron 규칙과 비교하여 검증하는 방법을 알고 있습니까?

업데이트 :
가 지금은 산도 스키마 트론과 유효성을 검사 할 수있는 File 객체에 ProcessStuffObject를 정렬 화, 그러나 이것은 정말 어리석은 솔루션처럼 보인다.

답변

0

JAX-WS는 일반적으로 JAXB를 사용하여 객체를 XML로 마샬링하여 유선을 통해 전송하고 수신 된 XML을 객체로 마샬링합니다. JAXB API는 파일, 문자열, 바이트 배열 또는 기타 중간 표현을 먼저 마샬링하지 않고 XML과 같은 객체를 투명하게 처리하는 데 유용한 몇 가지 요소를 제공합니다.

필요한 클래스는 JAXBSource입니다. the javax.xml.transform.Source interface을 구현하고 객체와 JAXBContext 또는 Marshaller를 제공 할 수 있습니다. 그러한 인스턴스를 취하는 변환 또는 다른 메소드의 소스로이를 제공 할 수 있습니다. 일부 ph-schematron 메소드는 소스를 입력으로 사용합니다 (such as this one).

Schematron 파일을 XSLT로 사전 컴파일하면 Java XML 변환 API를 사용하여 소스를 변환기에 제공 할 수 있습니다.

관련 문제