2011-06-14 4 views
1

Microsoft Project Server Project 웹 서비스에서 프로젝트 정보를 검색하려고합니다.gSOAP는 웹 서비스에서 정보를 반환하지 않지만 스키마 만 반환합니다.

gSOAP을 사용하여 클라이언트를 구현합니다. > __ 어떤 기록 된 - 내가 (파일 PROJECTINFO.XML을 열 때하는 read_project_status_response.ReadProjectStatusResult

<soap:Envelope ...> 
    <soap:Body ...> 
     <ReadProjectStatusResponse ...> 
      <ReadProjectStatusResult> 
       <xs:schema ...> 
       ... 
       </xs:schema ...> 
       <diffgr:diffgram ...> 
        <ProjectDataSet ...> 
        .... 
        </ProjectDataSet> 
       </diffgr:diffgram> 
      </ReadProjectStatusResult> 
     </ReadProjectStatusResponse> 
    </soap:Body> 
</soap:Envelope>     

: 같은 프로젝트 서버에서 응답이 보이지만

if (project.ReadProjectStatus(&read_project_status_message, &read_project_status_response) == SOAP_OK) 
{ 
    ofstream project_info("C:\\PROJECTINFO.XML"); 
    project_info << read_project_status_response.ReadProjectStatusResult->__any; 
} 

: 여기처럼 내 코드는 모습입니다), 나는 단지

<xs:schema ...> 
    ... 
</xs:schema> 

부분을 볼 수 있습니다. 프로젝트 정보는 없습니다.

왜 이런 일이 일어나고 gsoap을 사용하여 프로젝트 상태 정보를 검색 할 수 있는지 알 수 있습니다.

미리 감사드립니다.

답변

0

너무 너무 늦었지만 간다 ...

프로젝트 서버에서 제공하는 WSDL은 완전하지 않습니다. 이 모양입니다.

<s:element name="ReadProjectStatusResponse"> 
    <s:complexType> 
     <s:sequence> 
     <s:element minOccurs="0" maxOccurs="1" name="ReadProjectStatusResult"> 
      <s:complexType> 
      <s:sequence> 
       <s:any namespace="http://schemas.microsoft.com/office/project/server/webservices/ProjectDataSet/" /> 
      </s:sequence> 
      </s:complexType> 
     </s:element> 
     </s:sequence> 
    </s:complexType> 
    </s:element> 

다음으로 변경하고 (s : any 앞에 s : 요소를 적어 두십시오) gsoap을 사용하여 다시 컴파일하십시오. 이제 gsoap은 2 개의 멤버 변수 (xsd__schema와 __any)를 생성합니다. xsd__schema는 스키마를 포함하고 __any는 올바른 데이터를 전달합니다.

<s:element name="ReadProjectStatusResponse"> 
    <s:complexType> 
     <s:sequence> 
     <s:element minOccurs="0" maxOccurs="1" name="ReadProjectStatusResult"> 
      <s:complexType> 
      <s:sequence> 
       <s:element ref="s:schema"/> 
       <s:any namespace="http://schemas.microsoft.com/office/project/server/webservices/ProjectDataSet/" /> 
      </s:sequence> 
      </s:complexType> 
     </s:element> 
     </s:sequence> 
    </s:complexType> 
    </s:element>