php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #57666 Visual Studio Consumption of SCA Generated WSDL
Submitted: 2007-05-11 07:24 UTC Modified: 2007-06-29 08:59 UTC
From: michael dot caplan at henryschein dot com Assigned: tuscany 1297 (profile)
Status: Closed Package: SCA_SDO (PECL)
PHP Version: 5.2.1 OS: CentOS 4
Private report: No CVE-ID: None
 [2007-05-11 07:24 UTC] michael dot caplan at henryschein dot com
Description:
------------
MS Visual Studio (I'm using Visual Web Dev 2005 Express Edition) will not import a SCA generated WSDL.  It complains that it does not validate because of the following element attributes:

xsi:type="tns3:tBody"  of <tns3:body>
xsi:type="tns3:tAddress" of <tns3:address>

Stripping out these attributes resolved the VS WSDL import problem.

It would be great if the type attribute for these elements could be suppressed when generated.

Expected result:
----------------
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://Labnet_API_LabnetOnline_001_Implementation" xmlns:tns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://Labnet_API_LabnetOnline_001_Implementation">
  <types>
<!-- Stripped -->
  </types>

  <message name="getRestorationsRequest">
    <part name="getRestorationsRequest" element="tns2:getRestorations"/>
  </message>
  <message name="getRestorationsResponse">
    <part name="return" element="tns2:getRestorationsResponse"/>
  </message>
  <message name="getEnclosuresRequest">

    <part name="getEnclosuresRequest" element="tns2:getEnclosures"/>
  </message>
  <message name="getEnclosuresResponse">
    <part name="return" element="tns2:getEnclosuresResponse"/>
  </message>
  <message name="getAlloysRequest">
    <part name="getAlloysRequest" element="tns2:getAlloys"/>
  </message>
  <message name="getAlloysResponse">

    <part name="return" element="tns2:getAlloysResponse"/>
  </message>
  <message name="getPracticeDoctorsRequest">
    <part name="getPracticeDoctorsRequest" element="tns2:getPracticeDoctors"/>
  </message>
  <message name="getPracticeDoctorsResponse">
    <part name="return" element="tns2:getPracticeDoctorsResponse"/>
  </message>
  <message name="getAvailableCallsRequest">

    <part name="getAvailableCallsRequest" element="tns2:getAvailableCalls"/>
  </message>
  <message name="getAvailableCallsResponse">
    <part name="return" element="tns2:getAvailableCallsResponse"/>
  </message>
  <message name="newCaseRequest">
    <part name="newCaseRequest" element="tns2:newCase"/>
  </message>
  <message name="newCaseResponse">

    <part name="return" element="tns2:newCaseResponse"/>
  </message>
  <portType name="Labnet_API_LabnetOnline_001_ImplementationPortType">
    <operation name="getRestorations">
      <input message="tns2:getRestorationsRequest"/>
      <output message="tns2:getRestorationsResponse"/>
    </operation>
    <operation name="getEnclosures">
      <input message="tns2:getEnclosuresRequest"/>

      <output message="tns2:getEnclosuresResponse"/>
    </operation>
    <operation name="getAlloys">
      <input message="tns2:getAlloysRequest"/>
      <output message="tns2:getAlloysResponse"/>
    </operation>
    <operation name="getPracticeDoctors">
      <input message="tns2:getPracticeDoctorsRequest"/>
      <output message="tns2:getPracticeDoctorsResponse"/>

    </operation>
    <operation name="getAvailableCalls">
      <input message="tns2:getAvailableCallsRequest"/>
      <output message="tns2:getAvailableCallsResponse"/>
    </operation>
    <operation name="newCase">
      <input message="tns2:newCaseRequest"/>
      <output message="tns2:newCaseResponse"/>
    </operation>

  </portType>
  <binding name="Labnet_API_LabnetOnline_001_ImplementationBinding" type="tns2:Labnet_API_LabnetOnline_001_ImplementationPortType">
    <operation name="getRestorations">
      <input>
        <tns3:body use="literal"/>
      </input>
      <output>
        <tns3:body use="literal"/>
      </output>

    </operation>
    <operation name="getEnclosures">
      <input>
        <tns3:body use="literal"/>
      </input>
      <output>
        <tns3:body use="literal"/>
      </output>
    </operation>

    <operation name="getAlloys">
      <input>
        <tns3:body use="literal"/>
      </input>
      <output>
        <tns3:body use="literal"/>
      </output>
    </operation>
    <operation name="getPracticeDoctors">

      <input>
        <tns3:body use="literal"/>
      </input>
      <output>
        <tns3:body use="literal"/>
      </output>
    </operation>
    <operation name="getAvailableCalls">
      <input>

        <tns3:body use="literal"/>
      </input>
      <output>
        <tns3:body use="literal"/>
      </output>
    </operation>
    <operation name="newCase">
      <input>
        <tns3:body use="literal"/>

      </input>
      <output>
        <tns3:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="Labnet_API_LabnetOnline_001_ImplementationService">
    <port name="Labnet_API_LabnetOnline_001_ImplementationPort" binding="tns2:Labnet_API_LabnetOnline_001_ImplementationBinding">
      <tns3:address location="http://sandbox.int.labnet.net/michael/labnet_online/api/public_html/online001/index.php"/>
    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->

Actual result:
--------------
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://Labnet_API_LabnetOnline_001_Implementation" xmlns:tns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://Labnet_API_LabnetOnline_001_Implementation">
  <types>
<!-- Stripped -->
  </types>

  <message name="getRestorationsRequest">
    <part name="getRestorationsRequest" element="tns2:getRestorations"/>
  </message>
  <message name="getRestorationsResponse">
    <part name="return" element="tns2:getRestorationsResponse"/>
  </message>
  <message name="getEnclosuresRequest">

    <part name="getEnclosuresRequest" element="tns2:getEnclosures"/>
  </message>
  <message name="getEnclosuresResponse">
    <part name="return" element="tns2:getEnclosuresResponse"/>
  </message>
  <message name="getAlloysRequest">
    <part name="getAlloysRequest" element="tns2:getAlloys"/>
  </message>
  <message name="getAlloysResponse">

    <part name="return" element="tns2:getAlloysResponse"/>
  </message>
  <message name="getPracticeDoctorsRequest">
    <part name="getPracticeDoctorsRequest" element="tns2:getPracticeDoctors"/>
  </message>
  <message name="getPracticeDoctorsResponse">
    <part name="return" element="tns2:getPracticeDoctorsResponse"/>
  </message>
  <message name="getAvailableCallsRequest">

    <part name="getAvailableCallsRequest" element="tns2:getAvailableCalls"/>
  </message>
  <message name="getAvailableCallsResponse">
    <part name="return" element="tns2:getAvailableCallsResponse"/>
  </message>
  <message name="newCaseRequest">
    <part name="newCaseRequest" element="tns2:newCase"/>
  </message>
  <message name="newCaseResponse">

    <part name="return" element="tns2:newCaseResponse"/>
  </message>
  <portType name="Labnet_API_LabnetOnline_001_ImplementationPortType">
    <operation name="getRestorations">
      <input message="tns2:getRestorationsRequest"/>
      <output message="tns2:getRestorationsResponse"/>
    </operation>
    <operation name="getEnclosures">
      <input message="tns2:getEnclosuresRequest"/>

      <output message="tns2:getEnclosuresResponse"/>
    </operation>
    <operation name="getAlloys">
      <input message="tns2:getAlloysRequest"/>
      <output message="tns2:getAlloysResponse"/>
    </operation>
    <operation name="getPracticeDoctors">
      <input message="tns2:getPracticeDoctorsRequest"/>
      <output message="tns2:getPracticeDoctorsResponse"/>

    </operation>
    <operation name="getAvailableCalls">
      <input message="tns2:getAvailableCallsRequest"/>
      <output message="tns2:getAvailableCallsResponse"/>
    </operation>
    <operation name="newCase">
      <input message="tns2:newCaseRequest"/>
      <output message="tns2:newCaseResponse"/>
    </operation>

  </portType>
  <binding name="Labnet_API_LabnetOnline_001_ImplementationBinding" type="tns2:Labnet_API_LabnetOnline_001_ImplementationPortType">
    <operation name="getRestorations">
      <input>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </output>

    </operation>
    <operation name="getEnclosures">
      <input>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </output>
    </operation>

    <operation name="getAlloys">
      <input>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </output>
    </operation>
    <operation name="getPracticeDoctors">

      <input>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </output>
    </operation>
    <operation name="getAvailableCalls">
      <input>

        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </output>
    </operation>
    <operation name="newCase">
      <input>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>

      </input>
      <output>
        <tns3:body xsi:type="tns3:tBody" use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="Labnet_API_LabnetOnline_001_ImplementationService">
    <port name="Labnet_API_LabnetOnline_001_ImplementationPort" binding="tns2:Labnet_API_LabnetOnline_001_ImplementationBinding">
      <tns3:address xsi:type="tns3:tAddress" location="http://sandbox.int.labnet.net/michael/labnet_online/api/public_html/online001/index.php"/>

    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-05-11 07:28 UTC] michael dot caplan at henryschein dot com
For reference, check out this discussion thread:

http://groups.google.com/group/phpsoa/browse_thread/thread/7c43a5d025c54aea/5c09bc6828875ab6
 [2007-05-23 11:56 UTC] mfp@php.net
Actually I have just realised that this probably answers my question about the other defect where the wsdl will not validate - it will be the xsi:type attributes.
 [2007-06-12 07:52 UTC] mfp@php.net
We currently have JIRA 1297 as the target defect for both this defect and 11004
 [2007-06-29 08:59 UTC] mfp@php.net
I believe we have suppressed all the xsi:types and this is fixed in 1.2.2, so I am closing. Please feel free to reopen if you find the problem is still there.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 28 16:01:29 2024 UTC