Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Chapter 3 CLR IT Component Implementations : WSDL Definition Limitations

WSDL Definition Limitations
There are some limitations to consider when using the WSDL-first approach and svcutil to create Contract files.
Declared Faults
When the WSDL contains declared faults:
Specify the /UseSerializerForFaults argument during proxy code generation. For example:
   svcutil /UseSerializerForFaults *.wsdl *.xsd.
If a portType of an operation includes Fault child node, the operation must use Document style.
Supported

 
<message name="SimpleTypeFault">
  <part name="SimpleTypeFault" element="ns2:StringFaultElement" />
</message>

 
The following is incorrect for faults:
Not Supported

 
<message name="SimpleTypeFault">
  <part name="SimpleTypeFault" type="xs:string" />
</message>

 
Removing OperationFormatStyle.Rpc Attribute
The OperationFormatStyle.Rpc attribute is not supported if the operation also has the fault contract attribute.
If the generated proxy code contains an attribute OperationFormatStyle.Rpc, then you must regenerate the WSDL from the code after deleting the attribute.
Identical part Elements
The part elements of messages cannot be same. If the elements are identical, svcutil throws an error. For example, this definition is allowed:
Supported

 
<message name="MultipartInputElement">
  <part name="Fortune" element="ns2:PersonDetailsElementsOne" />
  <part name="Person" element="ns2:PersonDetailsElementsTwo" />
</message>

 
This definition, where the parts refer to same element, is incorrect:
Not Supported

 
<message name="MultipartInputElement">
  <part name="Fortune" element="ns2:PersonNestedElements" />
  <part name="Person" element="ns2:PersonNestedElements" />
</message>

 
Mixed Type Messages
Mixed type messages are not supported. All message parts must refer to either element or type.
For example, the following definition is not permitted:
Not Supported

 
<message name="MultipartInputElement">
  <part name="Fortune" element="ns2:PersonDetailsElementsOne" />
  <part name="Person" type="xs:string" />
</message>

 
 

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved