Developer Guide to BPEL Designer: The WSDL Editor
Last Updated: 23 October 2006
Contributed and maintained by
Jeff Stein
Contents
Developer Guide to BPEL Designer
About the WSDL Editor
The WSDL Editor enables you to edit Web Services Description Language (WSDL) files.
WSDL is an XML-based language for describing web services.
A WSDL file contains information about the functionality of the web service,
as well as information about how to access the web service.
The editor supports version 1.1 of the WSDL specification.
In a BPEL Module project, you use WSDL files to define the interfaces for business processes and their partner services.
You can create a WSDL file from scratch, or based on an existing WSDL file.
The WSDL Editor provides a Source view and a WSDL view.
A WSDL file has the following major elements:
data types,
messages,
port types,
bindings, and
services.

You can add the following BPEL extensibility elements
to a WSDL file: partner link types, properties, and property aliases.

The WSDL Editor includes a validation tool.
The validation tool reviews the WSDL file for problems with syntax and semantics.
The Output window displays any errors or warnings.
top
Creating a WSDL File
When you create a WSDL file, you must choose one of the following approaches:
- Create a WSDL file from scratch. A wizard guides you through the process.
- Create a WSDL file based on an existing WSDL file.
The output from the wizard is a well-formed, valid WSDL file that contains an interrelated set of elements,
including the necessary messages,
one port type
(with its corresponding partner link type),
one binding, and
one service.
You can modify the file afterward by using the WSDL Editor.
To create a WSDL file from scratch:
- In the Projects window, right-click the Process Files folder and choose New > WSDL Document.
- In the Name and Location wizard page, do the following:
- Supply a name for the file. You cannot enter a name that already exists in the project.
- (Optional) Change the default folder by clicking Browse and selecting the new folder.
- Enter the target namespace for the WSDL file. The target namespace will appear in the root element.
- Specify any XML Schema files that you want to import.
- Click Next.
- In the Abstract Configuration wizard page, do the following:
- Supply a name for the port type.
- Supply a name for the operation.
- Select the category of operation.
- Depending on the category of operation,
you supply message information for the input, the output, or both the input and output.
Each message contains one or more logical parts.
The Add and Remove buttons enable you to add and remove message parts.
- (Optional) If the category of operation is Request-Response or Solicit-Response,
then you can supply message information for a fault.
- Click Next.
- In the Concrete Configuration wizard page, do the following:
- Supply a name for the binding.
- The binding subtype options indicate how to translate the binding to a SOAP message.
If your settings for message parts and the binding subtype do not conform to
the WS-I Basic Profile, an error message appears at the bottom of the wizard page.
- Supply a name for the service.
- Supply a name for the port.
- Click Finish.
The WSDL file is created. The WSDL Editor appears in WSDL view.
- The port's SOAP address node includes a location property, which specifies the address of the port.
The wizard generates a dummy value for the location property.
The location property must be unique; that is, the value must not conflict with any other WSDL files
that are deployed to the same application server.
To create a WSDL file based on an existing WSDL file:
- In the Projects window, right-click the Process Files folder and choose New > File/Folder.
- In the Choose File Type wizard page, do the following:
- In the Categories list, select the XML node.
- In the File Types list, select the External WSDL Document(s) node.
- Click Next.
- In the Specify Resource Location wizard page, do one of the following:
- To create a WSDL file based on a running service:
- Select the From URL button.
- Enter the URL of the service's WSDL file.
- Click Finish.
- To create a WSDL file using an existing WSDL file located in the local file system:
- Select the From Local File System button.
- Specify the folder where the WSDL file is located.
- Click Finish.
The WSDL file is created. The WSDL Editor appears in WSDL view.
top
Views in the WSDL Editor
The WSDL Editor provides a Source view
and a WSDL view.
The WSDL Editor toolbar has two buttons that you can use to access the different views.
Source View
In the Source view, the underlying XML source code appears. You can directly edit the XML.
The top of the Source Editor has a tab for each open document.
Each tab shows the name of the document.
If the document has been modified and has not been saved, then an asterisk (*) appears after the name.
You can access various commands by right-clicking a tab.
A toolbar is located at the top of the Source Editor window.
Source code displayed in the Source Editor is syntactically colored.
The Source Editor status line is located beneath the horizontal scroll bar.
To toggle between insert mode and overwrite mode, use the Insert key.
WSDL View
In the WSDL view, you use GUI components to configure the elements and attributes of the WSDL file.
The WSDL view has two subviews: tree view and column view.
To switch between the subviews, use the buttons in the WSDL Editor toolbar.

Some component nodes allow you to add extension attributes.
In the Add Extension Attribute dialog box, you can specify the name and namespace.
Once you add the attribute, you can specify the value from the Properties window.
These component nodes also allow you to remove extension attributes.
If you right-click a component node and choose Go To Source,
then the Source view appears with the cursor positioned at the beginning of the component's block.
You can perform refactoring:
- If you right-click a component node and choose Find Usages,
then the IDE shows which components use the component that you selected.
- If you right-click a component node and choose Refactor > Rename,
then you can rename all occurrences in the associated XSD, WSDL, and BPEL files.
- If you right-click a component node and choose Refactor > Safely Delete,
then you can check for references to the component before you perform the delete.
You can also rename a component by changing the value of the Name property.
The WSDL Editor renames all occurrences in the same file, but not in other files.
top
Configuring WSDL File Components
This section describes how to configure the root element of the WSDL file,
how to add documentation to any element,
and how to import XML schemas and WSDL files.
- If you add import statements using the Source view, or if you copy files with URL references
into your project, the referenced WSDL file may only be accessible through a URL.
In this case, your project may not contain the true closure of all the documents.
Since the WSDL files are referenced, the IDE will perform the same logic that is used when retrieving
WSDL resources using the External WSDL Document(s) wizard and transparently fetch the documents and store
them in a non-version controlled area.
This may cause a delay the first time these documents are accessed on your machine, because the referenced
documents are not local. Subsequent accesses will be faster.
Adding Documentation
You can add documentation to any element in the WSDL file.
To add documentation:
- In the WSDL view, right-click an element and choose Add > Documentation.
A documentation node appears.
- Select the documentation node.
- If the Properties window is not visible, choose Window > Properties.
- Enter the documentation text.
Importing XML Schemas and WSDL Files
You can use the WSDL Editor to import an XML schema file or another WSDL file that is part of your project.
To import an XML schema:
- In the WSDL view, right-click the root node and choose Add > Import Schema.
The Import Customizer dialog box opens.
- In the Location list, expand the By File or By Namespace nodes to navigate to and select the XML schema file.
The Namespace field below the Location list is filled in by the IDE.
- (Optional) In the New Prefix field, type the prefix that you want to use.
- Click OK.
To import another WSDL file:
- In the WSDL view, right-click the root node and choose Add > Import WSDL.
The Import Customizer dialog box opens.
- In the Location list, expand the By File or By Namespace nodes to navigate to and select the WSDL file.
The Namespace field below the Location list is filled in by the IDE.
- (Optional) In the New Prefix field, type the prefix that you want to use.
- Click OK.
top
Configuring WSDL Data Types
The WSDL Editor provides support for the built-in simple types in W3C XML Schema.
The built-in simple types include such types as string, date, and integer.
You can define your own data types by adding an inline schema.
The WSDL Editor allows you to configure one or more global properties and to define the structure.
To add an inline schema:
- In the WSDL view, right-click the Types node and choose Add > Inline Schema.
The inline schema node appears.
To configure the global properties of the inline schema:
- If the Properties window is not visible, choose Window > Properties.
- Select the inline schema node.
- You can perform one or more of the following optional tasks:
- Specify a unique ID.
- Specify whether locally declared attributes must be qualified with the namespace prefix.
- Specify whether locally declared elements must be qualified with the namespace prefix.
- Specify the default value of the block attribute, which controls the use of substitution.
- Specify the default value of the final attribute, which controls the use of type derivation.
- Specify the version of the schema.
- Specify the target namespace of the schema.
To define the structure of the inline schema:
- Add one or more of the following XML Schema components as necessary.
The interface is the same as the Schema view that appears when you edit an XML schema.
- Complex types
- Simple types
- Elements
- Attributes
- Attribute groups
- Global groups
top
Configuring WSDL Messages
You can use the WSDL Editor to create messages.
In a WSDL file, a port type
contains one or more related operations that the web service can perform.
An operation receives a message, sends a message, or does both.
Each message must contain one or more logical parts.
For each part, you must specify the name and the type of content.
If you change the name of a message or part,
then the WSDL Editor renames all occurrences in the same file.
To rename all occurrences in associated XSD, WSDL, and BPEL files as well,
right-click the component node and choose Refactor > Rename.
To create a message:
- In the WSDL view, right-click the Messages node and choose Add Message.
A message node appears. The message contains a default part.
To change the name of a message:
- If the Properties window is not visible, choose Window > Properties.
- Select the message node.
- Set the Name property to the new name.
To change the properties of a part:
- If the Properties window is not visible, choose Window > Properties.
- Select the part node.
- Set the Name property to the new name.
Be sure to enter a descriptive name, such as searchInput or resultOutput.
- The Element or Type property specifies the type of content.
To set the value, click the ellipsis (...) button.
The Element or Type dialog box enables you to select any of the built-in types in W3C XML Schema.
If you added an inline schema or imported a schema, then you can select a type from the schema.
To add a part to an existing message:
- Right-click the message node and choose Add > Part.
A part node appears.
To remove a message or part:
- Right-click the message or part node and choose Delete.
top
Configuring WSDL Port Types
You can use the WSDL Editor to create port types.
In addition, you can use the WSDL Editor to add operations to an existing port type.
In a WSDL file, a port type contains one or more related operations that the web service can perform.
An example of an operation is GetQuote.
The WSDL 1.1 specification defines the following categories of operations:
- One-way. The operation receives a message as input.
- Request-response. The operation receives a message as input, and sends a message as output.
- Solicit-response. The operation sends a message as output, and receives a message as input.
- Notification. The operation sends a message as output.
Each message contains one or more logical parts.
For each part, you must specify the name and the type of content.
If you change the name of a port type or operation,
then the WSDL Editor renames all occurrences in the same file.
To rename all occurrences in associated XSD, WSDL, and BPEL files as well,
right-click the component node and choose Refactor > Rename.
To create a port type:
- In the WSDL view, right-click the Port Types node and choose Add Port Type.
The Create New Port Type dialog box appears.
- Supply a name for the port type.
- Supply a name for the operation.
- Select the category of operation.
- Depending on the category of operation, you supply message information
for the input, the output, or both the input and output.
You can create a message from scratch by entering a new message name, or you can select an existing message.
For a new message, the Add and Remove buttons enable you to add and remove message parts.
- (Optional) If the category of operation is Request-Response or Solicit-Response,
then you can supply message information for a fault.
- Click OK.
A port type node appears. The port type node contains an operation node.
If you created one or more messages, then the message nodes appear.
In addition, a partner link type is automatically generated.
To add an operation to an existing port type:
- In the WSDL view, right-click the port type node and choose Add Operation.
The Create New Operation dialog box appears.
- Supply a name for the operation.
- Select the category of operation.
- Depending on the category of operation, you supply message information
for the input, the output, or both the input and output.
You can create a message from scratch by entering a new message name, or you can select an existing message.
For a new message, the Add and Remove buttons enable you to add and remove message parts.
- (Optional) If the category of operation is Request-Response or Solicit-Response,
then you can supply message information for a fault.
- Click OK.
An operation node appears.
If you created one or more messages, then the message nodes appear.
To change the name of a port type:
- If the Properties window is not visible, choose Window > Properties.
- Select the port type node.
- Set the Name property to the new name.
To change the properties of an operation:
- If the Properties window is not visible, choose Window > Properties.
- Select the operation node.
- Set the Name property to the new name.
- If you want to specify the parameter order of an operation, set the Parameter Order property accordingly.
To remove a port type or operation:
- Right-click the port type or operation node and choose Delete.
top
Configuring WSDL Bindings
You can use the WSDL Editor to create bindings.
In addition, you can modify bindings that were generated by the New WSDL Document wizard.
In a WSDL file, a binding defines message format and protocol details for a port type.
You can bind the binding to the SOAP 1.1 protocol.
The binding contains a SOAP binding node and one or more operations.
Each operation can contain the following elements:
- The soap:body element provides information for the SOAP Body element.
- The soap:header and soap:headerfault elements provide information for the SOAP Header element.
- The soap:fault element provides information for the SOAP Fault Details element.
If you change the name of a binding,
then the WSDL Editor renames all occurrences in the same file.
To rename all occurrences in associated XSD, WSDL, and BPEL files as well,
right-click the binding node and choose Refactor > Rename.
Creating a Binding and Service From a Port Type
You can quickly create a binding and a service from an existing port type.
If you want to modify the binding afterward, then see the appropriate steps in
Creating a Binding.
To create a binding and service from a port type:
- In the WSDL view, right-click the port type node choose Add > Binding and Service Port.
The Generate Binding and Service Port dialog box appears.
- Supply a name for the binding.
- The only supported binding type in this release is the SOAP protocol.
- The binding subtype options indicate how to translate the binding to a SOAP message.
If your settings for message parts and the binding subtype do not conform to
the WS-I Basic Profile, an error message appears.
- Supply a name for the service.
- Supply a name for the port.
- Click OK.
A binding node and a service node appear.
The binding node contains a SOAP binding node and one or more operations.
The service node contains a port node.
- The port's SOAP address node includes a location property, which specifies the address of the port.
The wizard generates a dummy value for the location property.
Be sure to replace the dummy value with a valid value.
Creating a Binding
Instead of quickly creating a binding and service from an existing port type,
you can create the binding, service, and their subnodes individually.
This section describes how to create the binding, and then how to configure the SOAP information.
- The binding subtype options in the Generate Binding and Service Port dialog box
are a combination of the style and use properties described in this section.
To create a binding:
- In the WSDL view, right-click the Bindings node and choose Add Binding.
A binding node appears.
- If the Properties window is not visible, choose Window > Properties.
- Select the binding node.
- (Optional) Set the Name property to the new name.
- Set the Type property to the port type that the binding will reference.
- Right-click the binding node and choose Add > Binding Operation.
- If the binding's port type has more than one operation, then the Select Operation dialog box appears.
Choose one or more operations, and click OK.
One or more operation nodes appear.
To add a SOAP binding node:
- In the WSDL view, right-click the binding node and choose Add > SOAP Binding.
A SOAP binding node appears.
- If the Properties window is not visible, choose Window > Properties.
- Select the SOAP binding node.
- The style property indicates how to translate the binding to a SOAP message.
Set the value to document or RPC.
To configure the SOAP elements for an operation:
- In the WSDL view, right-click the operation node and choose Add > SOAP Operation.
A SOAP operation node appears. This node contains information for the operation as a whole.
- If the Properties window is not visible, choose Window > Properties.
- Select the SOAP operation node.
- The soapAction property specifies the value of the SOAPAction header for the operation.
- The style property indicates how to translate the binding to a SOAP message.
Set the value to document or RPC.
- Depending on your scenario, add elements to Input, Output, and Fault nodes.
- The Input node allows you to add the following elements:
soap:body and soap:header.
- The Output node allows you to add the following elements:
soap:body and soap:header.
- The Fault node allows you to add the following element:
soap:fault.
- To add a soap:headerfault element, right-click the soap:header node and choose Add headerfault.
- If you added a soap:body element, then you can set the following properties.
- The Parts property indicates which message parts appear somewhere in the SOAP Body element.
- The encodingStyle property can be set to a list of URIs that represent encodings used in the message.
- The use property indicates how to translate the binding to a SOAP message.
Set the value to literal or encoded.
- The namespace property provides information for encoded uses.
- If you added a soap:header element, then you can set the following properties.
The Message and Part properties are required.
- The Message and Part properties reference the message part that defines the header type.
- The use property indicates how to translate the binding to a SOAP message.
Set the value to literal or encoded.
- The encodingStyle property can be set to a list of URIs that represent encodings used in the message.
- The namespace property provides information for encoded uses.
- If you added a soap:headerfault element, then you can set the following properties.
The Message and Part properties are required.
- The Message and Part properties reference the message part that defines the header type.
- The use property indicates how to translate the binding to a SOAP message.
Set the value to literal or encoded.
- The encodingStyle property can be set to a list of URIs that represent encodings used in the message.
- The namespace property provides information for encoded uses.
- If you added a soap:fault element, then you can set the following properties.
- The encodingStyle property can be set to a list of URIs that represent encodings used in the message.
- The use property indicates how to translate the binding to a SOAP message.
Set the value to literal or encoded.
- The namespace property provides information for encoded uses.
Removing Bindings
You can remove a binding from the WSDL file.
To remove a binding:
- In the WSDL view, right-click the binding node and choose Delete.
top
Configuring WSDL Services
You can use the WSDL Editor to create services.
In addition, you can modify services that were generated by the New WSDL Document wizard.
In a WSDL file, a service indicates which binding to use
and where clients can access the web service.
Creating a Binding and Service From a Port Type
You can quickly create a binding and a service from an existing port type.
If you want to modify the service afterward, then see the appropriate steps in
Creating a Service.
To create a binding and service from a port type:
- In the WSDL view, right-click the port type node choose Add > Binding and Service Port.
The Generate Binding and Service Port dialog box appears.
- Supply a name for the binding.
- The only supported binding type in this release is the SOAP protocol.
- The binding subtype options indicate how to translate the binding to a SOAP message.
If your settings for message parts and the binding subtype do not conform to
the WS-I Basic Profile, an error message appears.
- Supply a name for the service.
- Supply a name for the port.
- Click OK.
A binding node and a service node appear.
The binding node contains a SOAP binding node and one or more operations.
The service node contains a port node.
- The port's SOAP address node includes a location property, which specifies the address of the port.
The wizard generates a dummy value for the location property.
Be sure to replace the dummy value with a valid value.
Creating a Service
Instead of quickly creating a binding and service from an existing port type,
you can create the binding, service, and their subnodes individually.
This section describes how to create the service, and then how to configure the SOAP information.
Before you can configure the service's port, you must create the binding.
To create a service:
- In the WSDL view, right-click the Services node and choose Add Service.
A service node appears.
- If the Properties window is not visible, choose Window > Properties.
- Select the service node.
- (Optional) Set the Name property to the new name.
- Right-click the service node and choose Add > Service Port.
A port node appears.
- Select the port node.
- (Optional) Set the Name property to the new name.
- Set the Binding property to the desired binding.
To add a SOAP address node:
- Right-click the port node and choose Add > SOAP Address.
A SOAP address node appears.
- If the Properties window is not visible, choose Window > Properties.
- Select the SOAP address node.
- Set the Location property to the base URI for the port.
Removing Services and Ports
You can remove a service or port from the WSDL file.
To remove a service or port:
- In the WSDL view, right-click the service or port node and choose Delete.
top
Adding BPEL Extensibility Elements
You can add the following BPEL extensibility elements to the WSDL file:
Adding a Partner Link Type
Before you can add a partner link to a BPEL process,
you must add a partner link type to the WSDL file.
In a BPEL process, a partner link represents the interaction between the BPEL process and a partner service.
Each partner link is associated with a partner link type.
A partner link type characterizes the conversational relationship between two services.
The partner link type can have one or two roles.
A role describes the function that a service has in the relationship.
Examples of roles are loanRequestor and loanProcessor.
Each role must specify the port type that the service will use to receive messages.
To add a partner link type automatically
- When you do either of the following tasks, a partner link type is automatically generated.
The partner link type has a default role.
- Create a WSDL file from scratch.
- Create a port type.
- (Optional) To add a second role, do the following:
- Right-click the partner link type node and choose Add > role.
- If the Properties window is not visible, choose Window > Properties.
- Select the role.
- (Optional) Change the default name.
- Specify the port type.
To add a partner link type manually:
- In the WSDL view, right-click the root node and choose Add > PartnerLinkType.
A partner link type node appears under the Extensibility Elements node.
The partner link type has a default role.
- (Optional) To add a second role, right-click the partner link type node and choose Add > role.
- If the Properties window is not visible, choose Window > Properties.
- For each role, do the following:
- Select the role.
- (Optional) Change the default name.
- Specify the port type.
Defining Properties and Property Aliases
The BPEL Service Engine runtime uses a mechanism called correlation
to track the multiple, stateful, long-running exchanges of messages
that typically take place between a BPEL process and its partner services.
The procedure for enabling correlation in a BPEL process includes the following initial steps,
which must be performed in the WSDL file:
- Define one or more properties in the WSDL file.
A property creates an association between business data and a name that can play an important role
in the global context of the BPEL process.
Each property consists of a globally unique name (for example, claimNumberProperty)
and a type (for example, xsd:string).
- Define property aliases in the WSDL file.
A property alias maps a specific property to a specific element or attribute in a message part.
When you create a property alias, you must specify the property and the message.
Once you perform these steps in the WSDL file, you can define a correlation set in the BPEL process.
The correlation set references one or more properties.
The correlation set can then be used by message activities (Invoke, Reply, and Receive)
and by the onMessage branches of Pick elements.
To define a property:
- In the WSDL view, right-click the root node and choose Add > Property.
A property node appears under the Extensibility Elements node.
- If the Properties window is not visible, choose Window > Properties.
- Select the property node.
- (Optional) Change the default name.
- You can set the Element or Type property to a built-in simple type, such as string or date.
To define a property alias:
- In the WSDL view, right-click the root node and choose Add > Property Alias.
A property alias node appears under the Extensibility Elements node.
- If the Properties window is not visible, choose Window > Properties.
- Select the property alias node.
- Specify values for the Property Name and Message Type properties.
These properties enable you to map data from a message into a property value.
- You can specify a value for the following optional property: Part.
- To add a query, right-click the property alias node and choose Add query.
A query node appears.
The query node enables you to set the following optional attribute: queryLanguage.
top
Finding Usages of WSDL Components
You can quickly determine where a WSDL component is used in the WSDL file.
To find usages of a WSDL component:
- In the WSDL view, right-click the component and choose Find Usages.
The XML Usages window opens in the lower part of the IDE. The window has three parts:
- Toolbar. The toolbar buttons let you refresh information in the window, expand and collapse nodes in the
tree pane, and cycle through the found usages.
- Tree pane. The tree pane contains nodes for the results of the query.
- Graph pane. The graph pane shows a graphical representation of the results.
- To zoom out, right-click the graphic and drag up. To zoom in, right-click the graphic and drag down.
- To pan, click and drag in any direction.
- To drag a node, click and drag the node.
top
Copyright and Trademark Notice