Special Argument Types

VuGen handles special argument types, as follows:

Argument Type Description
Derived Types Supported for WSDLs. When setting the properties for a Web Service Call, VuGen allows you to use the base type or derived type for the argument. After you select a type, VuGen updates the argument tree node to reflect the new type. For details, see New Web Service Call Dialog Box.
Abstract Types

A declaration type declared by the programmer. When an element or type is declared to be abstract, it cannot be used in an instance document. Instead, a member of the element's substitution group, provided by the XML schema, must appear in the instance document. In such a case, all instances of that element must use the xsi:type to indicate a derived type that is not abstract.

When VuGen encounters an Abstract type, it cannot create an abstract class and replay will fail. In this case, VuGen displays a warning message beneath the Type box, instructing you to replace the Abstract type with a derived type.

Optional Elements

In WSDL files, optional parameters are defined by one of the following attributes:



minoccurs = 0 indicates a truly optional element that can be omitted. Nillable means that the element can be present without its normal content, provided that the nillable attribute is set to 'true' or 1. By default, the minoccurs and maxoccurs attributes are set to 1.

In the following example, name is mandatory, age is optional, and phone is nillable.

<s:element minOccurs="1" name="name" type="s:string" />
<s:element minOccurs="0" name="age" type="s:int" />
<s:element minOccurs="1" name="phone" nillable="true" type="s:string" />

Option availability per parameter type


  • Nil radio button: disabled
  • Include arguments in call: disabled


  • Nil radio button: disabled
  • Include arguments in call: enabled


  • Nil radio button: enabled
  • Include arguments in call: disabled

To include a specific optional argument in the service call:

Click the node and select Include Argument in Call. The nodes for all included arguments are colored in blue. Arguments that are not included are colored in gray.

If you include an element on a parent level, it automatically includes all mandatory and nillable children elements beneath it. If it is a child element, then it automatically includes the parent element and all other mandatory or nillable elements on that level. If you specify Generate auto-value to a parent element, VuGen provides values for those child elements that are included beneath the parent.

Note: VuGen interprets whether elements are mandatory or optional through the toolkit implementation. This may not always be consistent with the element's attributes in the WSDL file.

Choice Optional Elements In a WSDL, defines a set of elements where only one of them appears in the SOAP message. In some cases, one of the Choice elements is optional, while the others are not. You can select the Choice element and still prevent its optional element from appearing in the SOAP envelope. In the Step Navigator, select the Choice element, and clear the Include argument in call option. In Script view, delete the line that defines the Choice argument.
Recursive Elements

Using the Properties dialog box, you can control the level of recursive elements to include in the Web Service call.

To exclude a certain level and exclude those below, select the lowest parent node that you want to include and select Include Argument in Call. VuGen includes the selected nodes, its mandatory children, and all of its parent nodes.

In the following example, three levels of the Choice argument are included—the rest are not. Excluded nodes are grayed out.

Base64 Arguments

An encoding method used to represent binary data as ASCII text. Since SOAP envelopes are plain text, you can use this encoding to represent binary data as text within SOAP envelopes.

When VuGen detects a WSDL element of base64Binary type, it lets you provide an encoded value. You can specify a value in two ways:

  • Get from file. Reference a file name.

  • Embed encoded text. Specify the text to encode.

For details, see Process Base64 Data - Simple Data Dialog Box.

Back to top