onvif 미디어 WSDL http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl에 대해 wsdl2h/soap2cpp을 사용하여 코드를 생성하려고합니다. 이 wsdl에는 몇 가지 종속성이 있습니다.인터넷 연결없이 gSOAP 코드 생성기를 실행하는 방법은 무엇입니까?
wsdl2h media.wsdl
soapcpp2 -2ix media.h -I /usr/share/gsoap/import
을하지만이 필요 가지고 다음 gSOAP 자주 묻는 질문 http://www.cs.fsu.edu/~engelen/soapfaq.html 읽기
, 드디어 gSOAP 코드 생성기 실행 올바르게 매핑을
trt = "http://www.onvif.org/ver10/media/wsdl"
tt = "http://www.onvif.org/ver10/schema"
wsnt = "http://docs.oasis-open.org/wsn/b-2"
wsrfbf = "http://docs.oasis-open.org/wsrf/bf-2"
wstop = "http://docs.oasis-open.org/wsn/t-1"
xop="http://www.w3.org/2004/08/xop/include"
wsa5 = <http://www.w3.org/2005/08/addressing>
typemap.dat 다음에 필요한 네임 스페이스를 추출 인터넷 연결. 로컬에 저장된 파일로 빌드하고 싶습니다.
이-i는 (고급 옵션)를 가져올 수 없습니다
그래서 나는 다운로드 wsdl2h으로 다운로드 한 것을 :
wsdl2h 도움말 흥미로운 보이는 옵션이 있습니다- http://www.onvif.org/onvif/ver10/schema/onvif.xsd
- http://docs.oasis-open.org/wsn/b-2.xsd ,363,210
- http://www.w3.org/2004/08/xop/include
- http://docs.oasis-open.org/wsrf/bf-2.xsd
wsdl2h -im media.wsdl onvif.xsd b-2.xsd include bf-2.xsd t-1.xsd
soapcpp2 -2ix media.h -I /usr/share/gsoap/import
그러나 이것은 출력 이런 종류의 실패 media.h 코드 참조에서
** The gSOAP code generator for C and C++, soapcpp2 release 2.8.7
** Copyright (C) 2000-2011, Robert van Engelen, Genivia Inc.
** All Rights Reserved. This product is provided "as is", without any warranty.
** The soapcpp2 tool is released under one of the following two licenses:
** GPL or the commercial license by Genivia Inc.
media.h(164): syntax error
media.h(163): Syntax error: declaration expected
media.h(173): syntax error
...
구조 ws-addressing에서 왔습니다. 다음으로 나는 xsd를 더 가져 오는 다른 것들을 시도했지만 빠진 의존성을 해결할 방법을 찾지 못했습니다. 아마도 로컬 파일을 빌드하는 적절한 방법이 아닙니다. 어쨌든 은 wsdls과 xsd 파일의 수정을 피하고 싶습니다. 다른 대안으로는 원격 URL을 로컬 URL (예 : Apache CXF)에 매핑하는 카탈로그가 있지만 gSOAP 설명서에서 이와 같은 것을 찾지 못했습니다.
경험을 공유해 주셔서 감사합니다.