Bloccato mssoap1.dll

  • venerdì 15 luglio 2005 15:33
     
     

    Hi

    I am having a few problem using the MSSOAP1.dll

    Basically I want to be able to connect to a webservice and extract a list of methods and the schema definitions for each.

    The sample "very basic"code shows how I have created a WSDLReader and then step down to through the Services , PORTS and Operations to get to the ENUMSOAPMAPPER.  The problem I have is that the schema of the SERVICE is complex and for exampel looks like this

    <Create xmlns="http://www.elite.com/openapi/matterload">
          <matter>
            <MMATTER>string</MMATTER>
            <MNAME>string</MNAME>
            <MODEL>string</MODEL>
            <MRTCODE>string</MRTCODE>
            <MDEPT>string</MDEPT>
        </matter>
          <startDate>string</startDate>

    If I message out the Elementname of the SoapMapper I only get <Matter> and <Startdate>.

    The question is How  can I  get to the sub elements? Am I going about this the wrong way. Ideally I'd like to get hold of the actual XML of the service  itself and then parse the XML myself.

    Any help would be apprecdiated.


    Dim Reader As WSDLReader
          Dim Reader2 As WSDLReader
        Dim EnumService As EnumWSDLService
        Dim Service As WSDLService
        Dim EnumPort As EnumWSDLPorts
        Dim Port As WSDLPort
        Dim EnumOperation As EnumWSDLOperations
        Dim Operation As WSDLOperation
        Dim EnumMapper As EnumSoapMappers
        Dim Mapper As SoapMapper
        Dim Fetched As Long
        Dim ENUMPARTS As EnumSoapMappers
       
        Dim objWSDLOperation As WSDLOperation
        Dim objOperationPart As Object
       
        Dim bAddParts As Boolean
     
     

       '  Set Operation = New WSDLOperation
     
        Set Reader = New WSDLReader
        Reader.Load WSDLFileName, WSMLFileName
       
        Reader.GetSoapServices EnumService
        EnumService.Next 1, Service, Fetched
           
        Dim m_PortAddress As String
        Dim m_SoapAction As String
        
       
        Do While Fetched = 1
            Service.GetSoapPorts EnumPort
            EnumPort.Next 1, Port, Fetched
           
          
            Do While Fetched = 1
         
               Port.GetSoapOperations EnumOperation
               EnumOperation.Next 1, Operation, Fetched
               
                         
                Do While Fetched = 1
                
                            m_PortAddress = Port.address
                            m_SoapAction = Operation.soapAction
                    MsgBox Operation.soapAction
                  
                                  
                    Operation.GetOperationParts EnumMapper

                        EnumMapper.Next 1, Mapper, Fetched
                                   
                    Do While Fetched = 1
                   
                       MsgBox Mapper.elementName
                                         
                     EnumMapper.Next 1, Mapper, Fetched
                   
                    Loop
                  

                    EnumOperation.Next 1, Operation, Fetched
                    
                Loop

                EnumPort.Next 1, Port, Fetched
            Loop

            EnumService.Next 1, Service, Fetched
        Loop
        Set BuildOperation = objWSDLOperation
        MsgBox "end"