Main Content

Limitations to WSDL Document Support

Unsupported WSDL Documents

  • RPC-encoded WSDL documents.

  • Documents that the Apache™ CXF program cannot compile into complete code.

  • Documents that import other WSDL documents that contain WSDL type definitions.

     Workaround

  • On Windows®, documents that import other WSDL documents might fail if the imported URI contains certain punctuation characters.

  • Some documents with messages containing multiple parts.

  • Some documents with schemas containing anonymous complex types.

  • Some documents defining an input parameter to an operation as a simple type. When you invoke such an operation, for example GetMyOp, MATLAB® displays one of the following errors.

    Error using xxx/GetMyOp.  Too many input arguments.
    

    Or:

    Error using matlab.internal.callJava
    No GetMyOp method with appropriate signature exists in Java class $Proxy57
    
  • If the WSDL document defines schema types in multiple namespaces, an error might occur if types in different namespaces have the same names. Multiple namespaces usually occur when using import statements. MATLAB displays messages similar to the following.

    Error using matlab.wsdl.createWSDLClient (line 239) 
    Error processing WSDL: 
    file:/l:/02090080/incoming/service_w0_x0.xsd [149,4]: Two declarations cause a collision in the ObjectFactory class.

    To work around this problem, copy the imported files and edit them to rename the conflicting types.

  • XML Schema element all not recognized.

     Workaround

Documents Must Conform to Wrapper Style

Operations defined in the WSDL must conform to the rules for wrapper style, as described by item (ii) in section 2.3.1.2 of The Java API for XML Web Services (JAX-WS) 2.0. Error messages similar to the following are indications of this problem.

Error using matlab.internal.callJava
No authenticate method with appropriate signature exists in Java class com.sun.proxy.$Proxy55

Error in Service/Authenticate (line 107)
            matlab.internal.callJava('authenticate',obj.PortObj,fromMATLAB({'Authenticate','user'},
            user,'string',false,false),...

To work around this issue, edit the WSDL to conform to the wrapper style rules, or edit the generated MATLAB code to instantiate and pass in the Java® class object that contains the parameters.

SOAP Header Fields Not Supported

It is not possible to send messages that require Simple Object Access Protocol (SOAP) header elements. Only SOAP body elements are supported.