Runtime Environments
Runtime Environments
IBM
About this PDF
© International Business Machines Corporation 1992, 2024.
This PDF was generated from the content of the IBM® Developer for z/OS® online documentation. It is
provided for reference only. Many of the links in this PDF do not lead to a target location on the IBM
Developer for z/OS IBM Documentation site. For the most recent content, go to https://www.ibm.com/
docs/en/developer-for-zos/latest.
Some of the content in the IBM Developer for z/OS IBM Documentation site is embedded from other
IBM product documentation sites. Because of this content reuse, the embedded content might not be
included in the generated PDFs.
Developing with Db2 for z/OS
Use Db2® for z/OS Development tooling to connect to Db2 databases on a z/OS system, to run and tune
SQL statements in COBOL, PL/I, and SQL files, and to develop and deploy stored procedures.
For what's new in Db2 for z/OS Development, see “What's new” on page 12.
For notes on workspace migration of Db2 for z/OS Development features, see Db2 for z/OS Development
migration notes.
Tuning SQL
After you connect to a Db2 SQL Tuning Services server, you can select and tune SQL statements from the
COBOL, PL/I, SQL, or z Systems LPEX Editor.
1. Open the editor on a file that contains SQL statements.
Prior versions
For a list of what's new in product versions prior to version 17.0.0, see Db2 for z/OS Development 16.0.x
change history.
Db2 licensing
Obtaining and configuring a Db2 license
Db2 for z/OS Development tooling uses the IBM Data Server Driver for JDBC and SQLJ (sometimes
referred to as the JDBC driver) to manage connectivity between the Eclipse Java™ platform and the Db2
for z/OS subsystem.
This driver requires a Db2 Connect license to be purchased and either activated on the Db2 for z/OS
server, or imported into the IBM Developer for z/OS client.
Database connections
Connecting to Db2
You can connect to a Db2 for z/OS location and to a Db2 Tuning Services server from the Remote Systems
view.
The following example shows the properties for using the Java truststore and Java KeyStore.
When the client connects to a tuning services server, it obtains a session token for the user ID that is
connected. If the token becomes invalid or expires, the client attempts to refresh the session token and
resubmit any failed tuning operation.
Importing connection profiles from IBM Data Studio or Eclipse Data Tools
If you defined Db2 for z/OS database connection profiles in either IBM Data Studio or Eclipse Data tools,
you can export them from an IBM Developer for z/OS version 15.0.x or earlier workspace, and then
import them into version 16.0.6 or version 17.0.0. The import wizard supports connection profiles that
are exported from the Data Source Explorer view of the Data perspective.
Restriction: The import wizard does not support connection profiles that are exported from these
locations:
• The Data > Data Descriptors option on the File > Export window.
• The Data Studio Enterprise Deployment > Configurations option on the File > Export window.
• The Export pop-up menu on the Data Project Explorer view.
• The Export toolbar button on the Server Profile Manager view.
3. Select the Db2 for z/OS connection profiles you want to export.
4. To choose an export file location and specify an export file name, click Browse. The default folder is
the current workspace folder. The file type for export files is .xml. The following screen capture shows
an example of an export file location.
Demonstration
This animation demonstrates the export and import scenario in which existing z/OS connections
match the host names in the profiles, and the Suggest z/OS Connections function assigns profiles to
connections.
3. To choose or set a different connection for the source file, select a connection from the list.
4. To add a new Db2 for z/OS connection:
a. Open the Db2 connection list.
b. Select Create a Db2 for z/OS connection. The new connection wizard opens.
c. From the Remote z/OS system list, select a z/OS system connection and click Next. The Db2 for
z/OS Connection Properties window opens. For more information about setting properties for a new
Db2 for z/OS connection, see the related information.
Tip: If the z/OS system where the database is located is not in the list, select Create z/OS
connection to add it. This action opens the New Connection wizard. For more information about
creating a connection to a z/OS system, see the related information.
Navigating catalogs
Expand the Catalog folder to browse the database objects for a Db2 for z/OS connection. The catalog
navigation function requires a connection to Db2 for z/OS version 12.1.1 or later.
2. Right-click a table name and select View Data or Edit Data. The table data opens in the Remote
System Details view. The initial row limit is 500 rows. The column headers display the column name,
the data type, and the data length, if relevant.
Editing data
You can edit table data directly in the Remote System Details view, in the Properties view, or in a Table
Cell Editor.
Remote System Details view
• To edit a table cell, do one of these actions:
– To locate the first editable cell in the table, place cursor focus in the Remote System Details view
and press Enter.
– To jump to the next editable cell, press the Tab key, or to jump to the previous editable cell, press
Shift+Tab.
Generating declarations
Use the Declarations Generator to generate language-specific DECLARE TABLE and DECLARE VIEW
statements for C, COBOL, and PL/I programs. This wizard calls the DCLGEN command to generate these
statements, generate corresponding host variable structures, and place these table and view declarations
into a member of a partitioned data set that you can include in a program.
Prerequisites
The DCLGEN command and the Declarations Generator require the following software levels and
components:
• Db2 13 for z/OS or Db2 12 for z/OS with APAR PH28863/PTF UI74277.
• Installation of Db2-supplied routines using DSNTIJRT.
• A WLM-established stored procedures address space and authorization for the ADMIN_COMMAND_DSN
stored procedure, as described in ADMIN_COMMAND_DSN stored procedure.
Overview
The SQL editor is the default editor for files with the .sql or .spsql file extension. It provides these
functions:
• Run all SQL statements in the editor or selected statements.
• Tune an SQL statement that is selected in the editor.
• Format the content of the editor using formatting options that are set in the Preferences.
• Associate the SQL file with a Db2 connection. For more information about this function, see “Associating
a source file or script with a Db2 connection” on page 23.
• Save the SQL script to a local or remote location by using the File > Save As menu option.
Getting started
1. Define and connect to a Db2 for z/OS system. For instructions, see “Connect to a Db2 location” on
page 4.
2. If you want to use the SQL tuning tools, connect to the SQL tuning Services server. For instructions, see
“Connect to an SQL Tuning Services server” on page 9.
3. Right-click the connection name and select New SQL Script. The SQL editor opens in the editor area.
Editing SQL
Use these tools for editing SQL:
• Toggle buttons in the tool bar control word wrapping, block selection, and whitespace
characters.
• To expand or collapse SQL statements, click and in the editor margin. To preview a collapsed
statement, hover over the Expand icon.
• To comment out the line that has cursor focus, right-click and select Source > Toggle Line Comment.
• To show information about syntax warnings, hover over the warning icon in the
margin:
Running SQL
You can run SQL from the COBOL, PL/I, SQL, or z Systems LPEX Editor.
1. Open the editor on a file that contains SQL statements.
2. In a COBOL or PL/I file: Select the contents of an SQL statement, and then right-click and select Db2
for z/OS > Run Selected SQL (Ctrl+Alt+R or ⌥+⌘+R).
3. In an SQL file: You can run selected SQL or all SQL in the file:
• Select one or more SQL statements and right-click and select Db2 for z/OS > Run Selected SQL.
• Right-click in the editor and select Db2 for z/OS > Run All SQL.
Tip: For more information about preferences for SQL content, see Defining SQL content types. To set
options for the Run SQL commands, select the Run SQL Options menu item. The context-sensitive
helps describe the options available on the Run SQL Options page.
If any SQL statement takes parameters or contains host variables, a window prompting you to enter
the parameter or variable value opens. If the SQL statement has been run against the active database
recently, the window can be populated with recent values for the Data Type, Null, and Value fields. The
query results are displayed in the Execution Status window and the Remote System Details view. For
more information about viewing and editing table data in this view, see “Viewing and editing table data”
on page 27.
procedures:
• Support for Java stored procedures in the SQL editor includes two templates:
createProcedureJavaInOut and createProcedureJavaResultSet. To see the SQL templates,
open the Preferences window, and navigate to z/OS Solutions > Db2 for z/OS > Db2 Templates.
• If you choose to reuse any IBM Data Studio Data Development projects that you might have in
a Developer for z/OS15.0.x workspace, you can import them into the Java Explorer view. Data
Development projects are Java projects.
• If you want to have the Db2 for z/OS Development tooling in the same perspective as your Java
projects, you can add the z/OS Projects view and the Remote Systems view to the Java perspective:
1. Open the Java perspective.
2. From the menu bar, select Window > Show View > Other.
3. In the Show View window, expand Remote Systems, and then select Remote Systems and click
Open.
4. From the menu bar, select Window > Show View > Other.
5. In the Show View window, expand z/Os Project Views, and then select z/Os Projects and click
Open.
Demonstration
The following animation shows the end-to-end debugging process.
Tuning SQL
After you connect to a Db2 SQL Tuning Services server, you can select and tune SQL statements from the
COBOL, PL/I, SQL, or z Systems LPEX Editor.
1. Open the editor on a file that contains SQL statements.
2. Select an SQL statement, and then right-click and select Db2 for z/OS > Tune Selected SQL
(Ctrl+Alt+T or ⌥+⌘+T).
Tip: To set options for the Tune SQL commands select the Tune SQL Options menu item. The context-
sensitive helps contain descriptions of the options on the Tune SQL Options page.
3. On the Tuning Actions window, select one or more tuning actions, and then click OK.
The tuning data is displayed in the Remote System Details view.
4. To see the output of each tuning action, select it and click Open Results.
For more information about the tuning actions, see these topics:
• Visual Explain
• Statistics Advisor
• Capture Query Environment
Db2 for z/OS SQL Stored *.spsql, *.javaspsql Db2 for z/OS SQL Editor
Procedure
Text Editor
Generic Text Editor
Db2 for z/OS SQL User-Defined *.udfsql Db2 for z/OS SQL Editor
Function
Text Editor
Generic Text Editor
To add more file name extensions or additional editors to these content types, do these steps:
1. In the Preferences window, navigate to General > Content Types.
2. In the Content types list, expand Text and select Db2 for z/OS SQL or one of the subtypes.
3. To add more file name extensions or editors to the File associations or Associated editors lists, click
Add.
Notice: The default file name extensions are locked, as indicated by the Lock icon. You cannot edit
or remove these file name extensions, but you can add new ones to the list.
Related information
Preferences
Content Types
Exporting preferences
To export Db2 for z/OS Development preference settings:
3. Click Browse, navigate to the location where you want to save the export file, type a name for the file,
for example, db24zos, and click Save.
4. After you verify that the other settings on this window are correct, for example, the preference
selections and the overwrite option, click Finish. The export file is saved to the location you selected.
It includes the content of these preference pages:
• Db2 for z/OS
• SQL Formatter
• EXEC SQL statements
Importing preferences
To import Db2 for z/OS Development preferences:
1. In the Preferences window, click the icon.
2. On the Import Preferences window, click Browse and select the export file.
Related tasks
“Setting the CICS level for COBOL and PL/I programs” on page 55
You can set the level of CICS in use at your installation to aid more accurate content assistance and
syntax checking.
Related reference
“Default CICS preprocessor options” on page 57
The default preprocessor options are based on the CICS product that is installed on the workstation.
What's new
Set auxiliary alignment hairlines in the BMS Map Editor
To add vertical or horizontal guides to the Design page, click the vertical or horizontal ruler. You can
align fields by attaching them to a guide. You can also move a guide on the Design page so that all
fields that are attached to the guide move along with it.
To delete a guide, select it and press the Delete key. Undo/Redo is supported for the guide actions.
The guide is shown only if the ruler is visible. Turning the ruler on or off is available as a preference
option. The default for TUI-based editors is to show the rulers.
Editor features
BMS map sets and their associated projects are listed in the Project Explorer view. The Palette view
provides both click-and-drop and drag-and-drop access to the BMS map components. The editor provides
more capability with the Outline and Properties views.
The BMS Map Editor provides the following pages for designing and viewing a map set:
Design
Contains the Design canvas and display customization options, including map filtering. Pop-up menus
provide more formatting and display options.
Source
Provides a text editor for editing the map set file code directly. To make this page read-only, set an
option on the BMS Map Editor preference page.
Preview
Provides terminal-style and web preview modes.
Object properties
To see the properties of a field, map, or map set, select the item in the Outline view. The properties are
displayed in the Properties view. You can also view and configure a map set component by using the
Design page menu.
Limitation
Existing BMS maps might contain the keyword SUFFIX= with no specified value. You must specify a value
or remove the keyword.
MAPATTS=(COLOR,HILIGHT,PS,VALIDN)
DSATTS=(COLOR,HILIGHT,PS,VALIDN)
Map only
Is equivalent to the following setting:
MAPATTS=(COLOR,HILIGHT,PS,VALIDN)
If you select the blank value, the EXTATT operand is omitted from the new map set file.
6. Click Finish to finish creating the map set.
A map set file is created.
Creating a project
Map sets can be created only in an existing project. To create a project:
1. From the main menu, select File > New > Project.
2. In the New Project wizard that opens, expand General > Project. Click Next.
3. Type Test project as the project name. Click Finish to close the wizard and create the project.
Test project is listed in the Project Explorer view. To open this view from the main menu, select
Window (on Windows) or IBM Developer for z/OS (on macOS) > Show View > Other and type Project
Explorer as the filter text.
2. Click Toggle Black and White Mode, , in the upper-right corner of the Design canvas to view the
selected map more easily.
3. Right-click the highlighted map in the Design canvas and select Map Properties from the menu to
modify the settings.
To modify map properties under the Source tab, complete the following steps:
1. Click the Source tab below the Design canvas.
2. Locate the Map1 label.
3. Place the cursor in the source code and change the map size parameters to SIZE=(14,60). This
action changes the height of the map to 14 columns and the width to 60 columns. The change is
shown in the Properties view.
3. If the label field is not shown with the map in the Outline view, select Show Unnamed Fields, , to
show the label field.
4. Left-click the field in the Design canvas and type a new label value.
5. Double-click the field in the Design canvas.
Design canvas
The Design canvas provides the space for customizing a map set. Use the scroll bars to view the entire
visual editing space.
To see the available design, filter, and edit options, right-click the canvas to open the menu.
To add an item to the canvas, click the item icon on the palette and then click the canvas location that you
want. You can also drag the item to the canvas.
Important: The Undo and Redo operations apply to operations performed in either the Outline view or
the Design canvas. For example, if you cut a field in the Design canvas, the Undo Cut option is enabled in
the Outline view menu.
Display options
Use the following display options to customize the Design canvas.
Terminal Size
This selector creates maps for several potential CICS screen sizes. The default value is 24 × 80.
Toggle Gridlines
This option hides or shows the grid lines in the Design canvas.
Toggle Samples Values
This option shows the type of data allowable in a variable field and the size of the field. For example, a
numeric field of four units shows a sample value of 9999. An alphanumeric field shows XXXX.
Toggle Black and White Mode
This mode shows fields and maps in a high-contrast canvas.
Zoom Level
This option controls the zoom level of the Design canvas.
Printing
To print the design canvas, click File > Print from the menu bar. You can also use the Ctrl+P key
combination or select Print from the menu.
Note: You cannot print individual maps or fields that are in the design canvas.
Bidirectional options
If you enable bidirectional support, a Toggle Bidirectional Mode button is displayed on the Design page
toolbar.
The following toggle options are available:
Visual Data
Toggles between visual ordering of text and the default logical ordering.
RTL Map Set
Toggles the orientation of the map set and the horizontal ruler between left-to-right to right-to-left.
Symmetric Swapping
Resets swappable characters. For example, in a right-to-left string, the opening parenthesis ( and
closing parenthesis ) are reversed.
Numeric Swapping
Sets an inversion of the screen, which causes Hindi numerals to be replaced by their Arabic
counterparts and Arabic numerals to be replaced by their Hindi counterparts.
Bidirectional options
If you enable bidirectional support, a Bidirectional Settings option is displayed on the Design page
menu. The same options are on the bidirectional toggle button.
Show Source
The Show Source option of the Design canvas menu displays the BMS source for a selected map set,
map, or field.
You can also perform this action by pressing Alt+Shift+S.
Source page
The Source page enables you to modify the BMS source macros directly by using a text editor.
Standard editing features are provided, such as Find, Replace, Undo, and Redo. The menu provides
additional options:
• Customized color highlighting.
Items such as macro names, field names, attribute names and values, and comments are colored
differently to help you differentiate parts of a BMS statement. You can customize the colors by using the
“BMS Map Editor preferences” on page 89 window.
• Line numbers
Line numbers are displayed in the left margin of the editor window. You can hide line numbers by using
the “BMS Map Editor preferences” on page 89 window.
• Error markers
If syntax errors are encountered during a save or validation and build operation, an error icon is
displayed in the left margin of the line that contains the error. Errors also are displayed in the Problems
view.
Preview page
The Preview page provides a read-only display of the map set, as it appears in an emulator.
Display options
Use the following display options to customize the map set preview:
Preview Mode
This option shows the map set as it appears in Web or Normal (terminal emulator) form. The Web
option is available even if a Web page is not created from the map set file.
Filters
This option enables you to preview and prioritize a subset of the available maps. By default, all maps
are shown. You create new filters to display customized groupings of maps.
Sample Values
If the Sample Values button is set to true on the Design page, the variable fields are shown with the
sample values in the preview mode.
Click Refresh to update the map set preview.
Filters
Filters enable you to customize your view of a map set by grouping maps together in a display order. Filter
configurations are saved in the current workspace and cannot be transferred to another workspace.
Note: This option is not available for the Source page.
Filters display the enabled maps in order, as you look at the Preview pane or Design canvas. The name of
the current filter is displayed below the button.
Select a filter
Use the Filter tool on the Design page toolbar to select a filter from the list of available filters. If a filter is
currently being applied, the name of the filter is displayed below the button.
Click New to create a filter. Click Remove to delete the current filter.
Maps
You can use the Map palette item to create and size maps in a map set.
As you add maps to the Design canvas, the items are displayed in the Outline view. For details about
adding and sizing maps, see “Adding maps” on page 70. You must include at least one map in each map
set for the BMS map to properly compile.
You can also change the order of the palette by using the Customize window.
Adding maps
To create a map in the Design canvas, complete the following steps:
1. Click the Map button in the palette.
2. Place the pointer in the Design canvas.
3. Click and hold the left mouse button at the location that you want.
4. Draw the map (using the pop-up box for sizing information) and release the mouse button.
You can use the Select tool to move and resize maps in the Design canvas.
Constant fields
The constant fields in the palette are protected normal fields. When added to a map, these fields are in
direct-edit mode, so that you can easily edit the label text.
The following constant fields are provided by default:
• Column heading
• Help
• Instructions
• Label
• Title
You can modify the properties of the fields in the “Palette entries preferences” on page 91 preferences.
At least one field must be defined per map.
Click the Constant Fields drawer label to show or hide the item list. You can hide, remove, or change the
order of fields by customizing the “Palette view” on page 77.
Adding fields
As you add fields to the Design canvas, the items are displayed in the Outline view.
Note: You can add fields only to an existing map.
To add a field to a map in the Design canvas:
1. In the Palette view, click the field that you want. The item is highlighted.
2. Place the pointer in the Design canvas. A drop box is added to the pointer.
3. Click and hold the left mouse button at the location that you want.
4. Using the pop-up box for sizing information, draw the field to the width that you want, and release the
mouse button.
Note: The height of the drawn box can be only 0 or 1 character. If the height in pop-up information box
is equal to or greater than two characters, the field is not created.
Variable fields
The variable fields in the palette are unprotected normal or numeric-only fields. These fields
automatically add a zero-length protected field after the input field; this action prevents unwanted visual
wrapping when the map set is compiled and run on the remote system.
The following variable fields are provided by default:
• Input field
• Numeric field
• Password field
• Message
• Output field
• MDT field
This field has the MDT tag set to TRUE by default.
You can modify the properties of the fields in the “Palette entries preferences” on page 91 preferences.
At least one field must be defined per map.
Click the Variable Fields drawer label to show or hide the item list. You can hide, remove, or change the
order of fields by customizing the “Palette view” on page 77.
Adding fields
As you add fields to the Design canvas, the items are displayed in the Outline view.
Note: You can add fields only to an existing map.
To add a field to a map in the Design canvas:
1. In the Palette view, click the field that you want. The item is highlighted.
2. Place the pointer in the Design canvas. A drop box is added to the simple pointer.
3. Click and hold the left mouse button at the location that you want.
4. Using the pop-up box for sizing information, draw the field to the width that you want, and release the
mouse button.
Note: The height of the drawn box can be only 0 or 1 characters. If the height in pop-up information
box is equal to or greater than two characters, the field is not created.
5. If the field you are adding is an input, numeric, password, or MDT field, a pop-up properties panel is
displayed when you finish drawing the field. Mark the checkbox, Add stopper fields to add a stopper
field to the input field.
You can use the Select tool to move and resize fields in the Design canvas.
Stopper fields
Stopper fields keep input fields from accepting more characters than the defined length of the input field.
Advanced palette
The Advanced design palette provides specific items for inclusion in a map. These items require a
minimum configuration before you can add them to a map.
Click the Advanced drawer label to show or hide the item list. You can also change the order of options
with the Customize menu option.
Note: You can add fields only to an existing map.
To add an item to a map in the Design canvas:
1. In the Palette view, click the item that you want. The item is highlighted.
2. Move the cursor to the Design canvas. It is not necessary to hold down the mouse button.
3. Click the location that you want on the Design canvas. If a location that you want is not valid, the item
cannot be added to the Design canvas.
4. Set the required properties in the configuration wizard.
As you add maps and fields to the Design canvas, the items are displayed in the Outline view. The
Properties view shows the specific settings for each item.
Array
Use the Array tool to create a simple or complex array.
Types of arrays
Simple Arrays
A simple array is a single BMS field that repeats either vertically or horizontally.
Complex Arrays
A complex array is a two-dimensional array that is repeated both vertically and horizontally creating
both rows and columns.
Where field(1) is the first to appear in the source, field(2) the second field to appear in the
source, and so on.
A horizontal array has fields defined as follows:
e. Use the table at the bottom of the Create a Field Array wizard to define the fields to populate
into the complex array. For more information about defining fields, see Defining Fields in Complex
Arrays.
Note: You cannot edit this table to provide the array fields until you have provided the length of
each field
5. Click Finish to create the array.
A warning appears if the array cannot fit in the specified location.
Regardless of the type of array created after the field array is drawn on the canvas, the fields behave as
individual fields and can be edited individually.
Adding fields
To add fields to a complex array, click the Add button directly to the right of the table.
1. In the Define Field window that opens, specify a value in the Row Offset field. This value is the offset
from the first row containing an array field. Often, this row corresponds to the location you click in the
Design Panel.
2. Specify a value in the Column Offset field. This value is the offset from the first column containing an
array field. Often, this row corresponds to the location you click in the Design Panel.
3. Specify a value in Number of Fields. This value is the number of times the field repeats.
Note: If the array direction is specified as vertical, then the fields repeat from the top to the bottom of
the BMS map. If the array direction is specified as horizontal, then the fields repeat from the left to the
right of the BMS map.
4. Select Input field if the defined fields are input fields.
5. Select Add Stopper Fields to add stopper fields to the defined fields.
6. Click OK to close the window. The new field is listed in the table.
Removing fields
To remove a field, select the field in the table and click the Remove button to the right of the table.
Structure
Use the Structure tool to create an array of multiple fields that are repeated vertically on the screen.
To place a structure:
1. Click the Structure button in the Advanced palette.
2. Click the cursor in the Design canvas.
3. Specify the following parameters:
• Structure name
• Occurs
This values specifies the number of times that the defined set of fields is repeated in the structure.
4. Click Add to specify additional fields in the structure.
You can set the following parameters:
• Field name
• Width
• Row offset
• Column offset
• Input field
Note: Once a structure is resolved, changing the input field attribute on fields does not make the
fields appear with a green underline as they would if you initially mark the input field attribute. This
condition does not mean the fields of the structure are not input fields. Instead, it is meant to avoid
possible overriding of individual, visual customization of the fields.
The offset values specify the location of the field in relation to where you click the mouse on the
Design canvas. For example, if you click the mouse at location (4,4) on the canvas, and the field in the
structure has a row offset of 1 and a column offset of 2, then the location of this field is (5,6).
Each field in the structure has the specified row and column offset relative to the original mouse click.
5. Click Finish to create the structure.
A warning opens if the structure cannot fit in the specified location.
Editing structures
The following edit capabilities are available:
• Delete
To delete the structure, select any field, and then select the Delete key.
• Edit
To edit the structure properties, select any field in the array, right-click, and select Edit Structure. The
Edit Structure wizard opens. The wizard displays all current structure values. Update the values and
click Finish. The structure reflects the value changes. The source also reflects these changes.
To change the individual field properties, select the particular field, right-click, and select Field
Properties.
Views
The BMS Map Editor provides several editor views.
Palette view
The Palette view provides Design page selection tools and BMS Map Editor map set components.
The Palette view includes the following drawers:
• Default (see “Default drawer” on page 77)
• Basic (see “Maps” on page 70)
• Constant Fields (see “Constant fields” on page 70)
• Variable Fields (see “Variable fields” on page 71)
• Advanced (see “Advanced palette” on page 72)
Click the specific drawer label to show or hide the item list.
Default drawer
The Default drawer contains the Select and Marquee tools that come with Eclipse for editing files
(including BMS map sets) that are based on the Graphical Editing Framework (GEF). For information about
how to use these tools to select and move items, see “Design page in BMS Map Editor” on page 65.
Outline view
The Outline view displays map and field information for a specific map set file.
The following display options are available:
• Show Initial Value
Displays the initial value for all fields in the map set.
• Show Unnamed Fields
Displays fields that are not important to the function of the map (that is, unnamed fields).
By default, all fields are shown in the Outline view. Disable this function to hide all unnamed fields in
the Outline view.
• Show Hidden Maps
Displays maps that are hidden in the current filter.
By default, all maps are shown. Turn the function off to remove hidden maps from the Outline display.
When you select an item in the Outline view, that item is highlighted in the Design canvas and the Source
page. The property value information is shown in the Properties view.
The Outline view is displayed by default. You can change the BMS Map Editor preferences to hide this
view.
Important: The Undo and Redo operations apply to operations performed in either the Outline view or
the Design canvas. For example, if you cut a field in the Design canvas, the Undo Cut option is enabled in
the Outline view menu.
When selecting a map set, you can also choose Generate JSF Web pages from the menu.
Properties view
The Properties view displays property value information for a field or map that is selected in the Design
canvas or the Outline view.
For a map set, the following properties are displayed:
• Language
• Map type
• Name
For a map, the following properties are displayed:
• Column
• Height
• Name
• Row
• Width
For a field, the following properties are displayed:
• Column
• Group name
• Initial value
• Length
• Name
• Occurs
• Row
• Type
The Properties view is displayed by default. You can change the BMS Map Editor preferences to hide this
view.
Field properties
To open the Field Properties window, double-click a field in the Design canvas or right-click the field and
select Field Properties from the menu.
Basic
You can specify the following basic properties:
• Name
• Comments
• Row
• Column
• Length
• Initial Value
• Color
Select the color that you want. Use the Inherit option to take the value from the parent.
Presentation
You can specify the following presentation properties:
• Intensity
Values are as follows:
– Dark
– Normal
– Bright
• Highlighting
Values are as follows:
– Inherit
The highlighting value is inherited from the parent.
– Off
– Underline
– Reverse
– Blink
• Transparency
Background transparency is determined by terminal capability. Values are as follows:
– Inherit
The transparency value is inherited from the parent.
– Yes
– No
• Border settings are as follows:
– Outline (box)
This option supersedes the other border options.
– Border over
Attributes
You can specify the following field attributes:
• Type
Specifies type of field. Values are as follows:
– Protected
– Protected (automatic skip)
– Unprotected
– Unprotected (numeric only)
• Detectable
• Initial cursor
Cursor is initially placed in this field.
• Modified data tag
This tag indicates whether the field has been modified or not. For the read command that CICS normally
uses, this bit determines whether the field is included in the inbound data or not. If the bit is on
(indicating that the field is changed), the 3270 sends the field; if not, the field is not sent.
• Validation
Settings are as follows:
– Must fill
– Must enter
– Trigger
A trigger field causes the terminal to transmit its contents if the operator moves the cursor out of the
field when it is primed.
– User exit
Advanced
You can specify the following advanced properties:
• Group name
• Occurs
This setting specifies the number of times that the field is repeated, as part of an array.
• Picture in
This setting indicates that a COBOL or PL/I picture is applied to the field for an IN or INOUT map.
• Picture out
This setting indicates that a COBOL or PL/I picture is applied to the field for an OUT or INOUT map.
• SOSI
This setting places Shift-Out and Shift-In characters indicating that double-byte characters might be
present.
Basic
The Comment property associates a comment statement with a field element. The comment length can
be up to 69 characters. When the comment string is entered into the Comments field it is associated with
the BMS field element and the source code is annotated with the comment statement.
You can verify that the association is made by selecting the field element and opening the properties
window. When You change the comments in the properties window, the changes are made in the source
code as well.
Usage
• The BMS Editor automatically creates a comment for each array or structure field. For each of these
fields as with other fields you can create your own comment.
• You can also create a comment that is associated with the overall structure.
• Comments cannot span multiple lines in the source code.
• Any comments associated with BMS variable, array, or structure fields are carried forward into the
generated copybook.
Basic
You can specify the following basic properties:
• Name
• Row
Specifies row on which formatting of data is to begin. Values are as follows:
– Unspecified
– Row number
– Next
Specifies that formatting of data is to begin on the next available empty line.
– Same
Specifies that formatting of data is to begin on the same line that is used for a preceding BMS
command.
• Column
Specifies the location of the left or right map margin. Values are as follows:
– Unspecified
– Column number
– Next
Specifies that the left or right map margin is to be placed in the next available column from the left or
right on the current line.
– Same
Specifies that the left or right map margin is to be established in the same column as the previous
map.
Presentation
You can specify the following presentation properties:
• Highlighting
Values are as follows:
– Inherit
The highlighting value is inherited from the parent.
– Off
– Underline
– Reverse
– Blink
• Transparency
Background transparency is determined by terminal capability. Values are as follows:
– Inherit
The transparency value is inherited from the parent.
– Yes
– No
• Border settings are as follows:
– Outline (box)
This option supersedes the other border options.
– Border over
– Border under
– Border left
– Border right
Attributes
You can specify the following map attributes:
• Validation
Settings are as follows:
– Must fill
– Must enter
– Trigger
A trigger field causes the terminal to transmit its contents if the operator moves the cursor out of the
field when it is primed.
– User exit
• Horizontal justification
Values are as follows:
– Unspecified
Supported attributes
You can specify whether to support the following attributes:
• Symbolic map
Settings are as follows:
– Extended color
– Extended highlighting
– Field outlining
– Programmed symbol
Notifies the terminal that the map requires a specific symbol set.
– Double-byte SOSI
Indicates that double-byte characters are delimited by Shift-Out and Shift-In characters.
– Background transparency
Background transparency is determined by terminal capability.
– Validation
• Physical map
Settings are as follows:
– Extended color
– Extended highlighting
– Field outlining
– Programmed symbol
Notifies the terminal that the map requires a specific symbol set.
– Double-byte SOSI
Indicates that double-byte characters are delimited by Shift-Out and Shift-In characters.
– Background transparency
Background transparency is determined by terminal capability.
– Validation
• Extended attributes support
Values are as follows:
– No
– Yes
Advanced
You can specify the following control properties:
• Unlock keyboard
• Sound alarm
• Reset modified data tag
Resets the tag that indicates whether the map is modified.
• Print length
Values are as follows:
– Unspecified
– L40
– L64
– L80
– HONEOM
• Header
• Trailer
• TIAO prefix
• SOSI
This Shift-Out, Shift-In setting indicates that the map might contain a mixture of EBCDIC and DBCS
data.
Symbolic Map
You can specify the following properties that affect what information is included when a symbolic map is
generated:
Alternate Map Name
Enter or modify an alternative map name. This alternative map name is displayed in the generated
symbolic map. Symbolic map names must conform to the following conventions:
• The first character must be alphabetic: A-Z or a-z.
• Characters must come from the following set: A-Z, a-z, 0-9, $, @, #, - (hyphen) and _ (underscore).
• Length cannot exceed 30 characters.
Alternate Structure Starting Level
Enter or modify an alternative structure starting number. This value must be in the range 01 - 49.
The alternative structure start level defines the level at which the structure starts in the generated
symbolic map.
Attention: Modifications to the alternative map name and the alternative structure start level show
up in the Source page as a comment that looks similar to the following examples:
where altName is the alternate map name where altLvl is the alternative structure start
that is set in Properties and mapName is the level that is set in Properties, originalLvl is the
name of the map. original structure start level, and mapName is the
map name.
Basic
You can specify the following basic properties:
• Name
• Map type
Values are as follows:
– Unspecified
– Symbolic
– Physical
– &SYSPARM
– Template
• Language
Values are as follows:
– Unspecified
– COBOL
– COBOL2
– C
– PL/I
– ASM
• Mode
Values are as follows:
– Unspecified
– Input
– Output
– Input and output
• Terminal
Values are as follows:
– ALL
– CRLP
– DISK
– TWX
Presentation
You can specify the following presentation properties:
• Highlighting
Values are as follows:
– Unspecified
– Off
– Underline
– Reverse
– Blink
• Transparency
Background transparency is determined by terminal capability. Values are as follows:
– Yes
– No
• Border settings are as follows:
– Outline (box)
This option supersedes the other border options.
– Border over
– Border under
– Border left
– Border right
Supported attributes
You can specify whether to support the following attributes:
• Symbolic map
Settings are as follows:
– Extended color
– Extended highlighting
– Field outlining
– Programmed symbol
Notifies the terminal that the map requires a specific symbol set.
– Double-byte SOSI
Indicates that the double-byte characters should be delimited by Shift-Out and Shift-In characters.
– Background transparency
Background transparency is determined by terminal capability.
– Validation
• Physical map
Settings are as follows:
– Extended color
– Extended highlighting
– Field outlining
– Programmed symbol
Notifies the terminal that the map requires a specific symbol set.
– Double-byte SOSI
Indicates that the double-byte characters should be delimited by Shift-Out and Shift-In characters.
– Background transparency
Background transparency is determined by terminal capability.
– Validation
• Extended attributes support
Values are as follows:
– Unspecified
– No
– Yes
– Map only
Advanced
You can specify the following advanced properties:
• Validation
Settings are as follows:
– Must fill
– Must enter
– Trigger
General preferences
You can modify the following BMS Map Editor preferences:
• Make source page read-only
Prevents changes from being made directly to the source page.
• Show line numbers in source page
Displays line numbers in the left column of the Source page.
• Automatically open Outline view with editor
Opens the Outline view when the BMS Map Editor is started.
• Automatically open Properties view with editor
Opens the Properties view when the BMS Map Editor is started.
• Automatically open Palette view with editor
Opens the Palette view when the BMS Map Editor is started.
• Naming Conventions
Sets name prefixes for new maps, input fields, and password fields.
Related reference
“Design page preferences” on page 90
You can modify Design Page preferences in the Preferences window. These preferences pertain to the
attributes of the Design Page such as the background color, font types, and visual attributes.
“Source styles preferences” on page 92
You can modify source style preferences in the Preferences window. These preferences pertain to visual
attributes of the source page such as the background and foreground colors and comment color.
“Symbolic map preferences” on page 93
Preferences
In the navigation pane of the Preferences window, expand the BMS Map Editor > Design Page category.
You can modify the following Design Page preferences:
• Background color
Sets the background color of the Design canvas.
• Grid color
Sets the color for vertical and horizontal grid lines.
• Highlight fields
Places a box around fields. Select the box color that you want.
• Show rulers
Shows or hides the vertical and horizontal rulers.
• Font name
Sets the font used in the Design canvas.
Note: You should use only monospace fonts.
• Font size
Sets the font size used in the Design canvas (works in conjunction with the Zoom feature).
• Visually demonstrate blinking fields
Fields that are marked as blink are displayed with an italicized font.
Use the Preview pane, part of the BMS Map Editor, to evaluate style changes before applying them.
Preferences
In the navigation pane of the Preferences window, expand the BMS Map Editor > Design Page >
Bidirectional Settings category.
Select Bidirectional options enabled to allow modification of the following bidirectional language
preferences. When this options is selected, the following set of bidirectional settings are made available in
the BMS editor toolbar. Selected preferences specify the default for each newly loaded map set.
Preferences
In the navigation pane of the Preferences window, expand the BMS Map Editor > Design Page > Palette
Entries category.
You can modify the following options for the items in the Constant Fields and Variable Fields drawers:
• Default field name
• Color
Values are as follows:
– Blue
– Red
– Pink (magenta)
– Green
– Turquoise (cyan)
– Yellow
– Neutral (white)
• Intensity
Values are as follows:
– Dark
– Normal
– Bright
• Highlighting
Values are as follows:
– Off
Preferences
In the navigation pane of the Preferences window, expand the BMS Map Editor > Source Styles category.
You can modify the following source style preferences:
• Background color
Sets the background color of the Source page editor. The default is white.
• Foreground colors
Sets foreground color for the following items:
– Default text
Color for default text (all text that is not included in one of the categories listed later in this section).
– Macro names
Color for DFHMSD, DFHMDI, and DFHMDF indicators.
– Attribute names
Color for attribute names.
– Strings
Color for regular strings, such as initial value.
– Comments
Color for comments.
Click Bold to further emphasize any specific foreground item, regardless of color.
Use the Preview pane to evaluate the style changes before applying them.
Preferences
In the navigation pane of the Preferences window, expand the BMS Map Editor > Symbolic Map
category.
You can modify the following symbolic map preferences:
Always generate alphanumeric data type, including fields defined as numeric
Select this option to generate all data types as alphanumeric when the symbolic map is generated. For
example, numeric fields that generate PIC 9(...) are generated as PIC X(...).
Generate aligned data structure
Select this option to generate a symbolic map as aligned. If this option is unselected, the symbolic
map is generated unaligned.
Generate data structure length field (for COBOL only)
Select this option to create a 01 entry in the generated symbolic map containing the length of the
entire data structure.
Bidirectional support
The BMS Map Editor supports bidirectional options for Arabic and Hebrew maps. Some features apply
only to Arabic maps, as indicated in the documentation. By default, bidirectional support is not enabled.
For additional information about specific issues related to bidirectional functions and support, see
“Bidirectional considerations” on page 97.
Note: The following conditions apply to the BMS Map Editor bidirectional support:
• All bidirectional maps must have UTF-8 text file encoding.
• The Copy and Paste functions are not supported for bidirectional data.
Bidirectional preferences
The following bidirectional settings are available.
• Enable visual data ordering
Sets visual ordering of text, instead of the default logical ordering.
• Enable bidirectional settings button
Places a Bidirectional settings button on the Design page options bar
• Default RTL orientation
Sets a right-to-left text flow in the display.
• Default right alignment
Causes fields added in the Design view to be right-aligned. In the source file right-aligned fields are
padded with leading spaces.
• Enable symmetric swapping
Resets swappable characters. For example, in a right-to-left string, the parentheses characters ( and )
are reversed.
• Enable numeric swapping
This structure is created with an orientation opposite to map set when this option is not set to the default;
for example, RTL structure in LTR map set.
Bidirectional considerations
To work with bidirectional text, you must enable bidirectional support. When working with bidirectional
text, you might encounter the following issues.
Error tracing
If general logging is enabled, you can trace bidirectional function errors by checking the log files.
The following bidirectional functions are logged:
• Screen Reverse
• Numerical Swapping
• Symmetrical Swapping
• Push and Autopush
• Switching between Hindi and Arabic numerals
• Field Reverse
• Switching between Visual and Logical modes
Arabic considerations
For Arabic content, the following Seen tail character limitations exist:
• In BMS map set files that are uploaded to the remote system, Seen tail characters are displayed as Seen
3/4 (without tail) in emulators such as Personal Communications or Host On-Demand.
• When downloading a BMS map set file from the remote system, Seen tail characters are not read
correctly.
You can use the BMS Map Editor to replace the empty tail character. Select the Source tab to directly
edit the map code. Put a space character in the location of the empty tail character.
Editor features
The Palette view of the editor provides both click-and-drop and drag-and-drop access to the format
definition components. MFS macros are added and edited using the Outline and Properties views.
The MFS Editor provides the following pages for designing a device format definition.
• Design
Contains the Design canvas and display customization options, including map filtering. More formatting
and display options are opened in the Properties view when a MFS macro is selected.
• Source
Provides a text editor for editing the MFS source code directly.
• Preview
Provides terminal-style and web preview modes of MFS source code.
Object properties
To see the properties of an object, select the item in the Outline view. The properties are displayed in the
Properties view. You can also view and configure a format definition component by using the Design page
menu.
100 Developer for z/OS: Developing with Db2, CICS, and IMS
1. Click File > New > Other. You can also use the keystroke combination Ctrl+N.
2. Expand the z/OS Development category.
3. Click MFS > MFS Message Definition.
4. Click Next.
5. On the Select the MFS Device Format file page, select the target device format file.
MFS Message Definitions are appended only to MFS device format files with all of the following
characteristics:
• The MFS device format file exists in a local project or PDS that has a z/OS file system mapping to an
extension of MFS.
• The MFS device format file contains correctly formatted MFS source.
• The MFS device format file MFS source contains no parse or syntax errors.
If the file you select in the wizard does not meet all these characteristics, then an error message is
displayed.
6. Click Next.
7. Specify the following message definition attributes:
Message name
Specify the message name. Valid names are from one to eight characters. This entry is required.
Description
The description is added to the MFS source code prologue as a comment. This input is optional.
Type
Select the message type from the drop-down list. Valid values are Input and Output.
Corresponds to the message parameter, TYPE=. This parameter is required.
Fill
Specify the fill character. This input is optional and is valid only for messages of type output.
Corresponds to the message parameter, FILL=. If you specify a fill type of C'c', replace 'c' with
the character to use as the fill value. For example, to specify a fill value of periods, provide the
string: C'.'.
Paging
Specify whether operator logical paging or forward and backward paging, is provided for
messages that are edited by using this control block. The default is for only forward paging of
physical pages to be provided. Corresponds to the message parameter, PAGE=. This option is
available only for the output type and is optional.
Ignore
Specify whether device features are to be ignored for this device. Corresponds to the IGNORE
keyword specified in the SOR= message parameter. This parameter is optional.
8. To specify more message attributes such as the logical page name, segment name, and message
fields, click Next.
9. On the Message Attributes page, specify the following attributes:
Logical page name
Specify a name to uniquely identify this statement. The length is from one to eight alphanumeric
characters. This input is optional. Regardless of whether a logical page name is specified or not,
the MFS message is always created with an LPAGE statement.
Device page name
Select the DPAGE name from the drop-down menu that defines the device format for this logical
page. Only those device fields that are defined in the DPAGE are available to add as message
fields to the logical page. This input is required
Segment name
Specify the segment name. Valid names are from one to eight characters in length. This input is
optional.
Palette view
The Palette view provides Design page selection tools and device format definition components.
The Palette view includes three drawers with design tools: Default, Basic, and Advanced. Click a drawer
label to show or hide the item list. The Default drawer contains tools that are used for editing the MFS
files, while the Basic and Advanced drawers provide MFS elements that can be added to the design page.
102 Developer for z/OS: Developing with Db2, CICS, and IMS
The design page displays only the lowest level MFS element that is defined in the device format definition.
When an element is added to the design canvas, it updates the source to reflect the addition of the
element. Since added elements immediately update the source, elements added to the design page must
stay in valid MFS hierarchy order. It is invalid for an element that is higher in the hierarchy to be added "on
top" of a lower element in the hierarchy. For example, after an MFS device page is added to a MFS device,
a division cannot be added from the palette view since it is higher in the MFS hierarchy. Depending on the
structure of the device format file, some MFS elements are invalid to add through the Palette view.
Whenever adding an element is invalid, a red prohibited icon is displayed when you hover the cursor over
the design canvas to add an element.
Physical pages are the lowest container of the MFS hierarchy that is displayed on the design page. After a
physical page is added to a device format file, then no container higher in the MFS hierarchy can be added
through the Palette view for that device. Multiple physical pages can be added to the design canvas with
the Palette view, but only if the parent device page has Multiple physical pages checkbox marked in the
Properties view.
It is valid MFS syntax to allow more than one of some constructs. If you want to add more MFS device,
divisions, or device pages, subsequent MFS elements of these types can be created through the Outline
view.
Default drawer
The Default drawer contains the Select and Marquee tools that come with Eclipse for editing files that
are based on the Graphical Editing Framework (GEF), such as MFS files in the MFS editor. You can use
these tools to select and move items in the Design page.
Basic drawer
The Basic design palette drawer contains MFS elements that can be added to the device format
definition.
MFS Device
Use the MFS Device palette item to add devices to a format definition file. This action is equivalent to
creating the DEV statement.
When you add a device to the design canvas, the Outline view is updated.
Note: If a device is already added to the format, then subsequent devices must be added through the
Outline view.
To create a device in the design canvas:
1. Select the MFS Device icon in the palette.
2. Click the left mouse button at any location in the design canvas. The Outline view is updated with a
device icon, and the Properties view is opened.
3. In the MFS Device Properties window, you can specify properties for the device.
Note: When you first create a device, you can select from all supported formats provided in the New
Device dialog. After you resolve the device, in the Properties view, only those device formats that
are similar are available in the drop down menu. For example, if you specify the device type to be
3270P, then in the Properties view after resolution, only device types 3270P, 3270P,1 and 3270P,2
are selectable from the drop-down menu.
Related information
“Device properties” on page 110
When a device is selected in the Outline view, or the DEV statement in the MFS source is selected, the
device properties are displayed in the Properties view.
MFS Division
Use the MFS Division palette item to create divisions in a format definition file. This action is equivalent to
creating the DIV statement.
When you add a division to the design canvas, the Outline view is updated.
Note: If a division exists for the device, then subsequent divisions must be added through the Outline
view.
To create a division in the design canvas:
1. Select the MFS Division icon from the palette.
2. Click the left mouse button at any location in the design canvas. The Outline view is updated with a
device icon, and the Properties view is opened.
3. In the MFS Division Properties window, you can specify many properties.
Related information
“Division properties” on page 112
104 Developer for z/OS: Developing with Db2, CICS, and IMS
When a division is selected in the Outline view, or the DIV statement in the MFS source is selected, the
division properties are displayed in the Properties view.
Device Page
Use the Device Page palette item to create device pages in a format definition file. This action is
equivalent to creating the DPAGE statement.
When you add a device page to the design canvas, the Outline view is updated.
Note: If a device page already exists for the device, then subsequent device pages must be added through
the Outline view.
To create a device page in the design canvas:
1. Click the Device Page button in the palette.
2. Click the left mouse button at the location that you want in the design canvas. The Outline view is
updated with the device page icon, and the Properties view is opened.
3. In the MFS Device Page Properties window, you can specify many different properties.
Related information
“Device page properties” on page 113
When a device page is selected in the Outline view, or the DPAGE statement in the MFS source is selected,
the device page properties are displayed in the Properties view.
Physical page
Use the Physical Page palette item to create physical pages in a format definition file.
As you add physical pages to the design canvas, the Outline view is updated. Physical pages are added to
the device page that is active, or brought to the front.
Note: When you create a device page for the first time, it is automatically resolved with the first physical
page created. You can view the physical page, and other created MFS elements, in the Outline view.
To create a physical page in the design canvas:
1. Click the Physical Page button in the palette.
2. Click the left mouse button at the location that you want in the design canvas.
To change the properties of the physical page, use the Properties view.
To bring a device page to the front:
1. In the Outline view, right click the MFS Device Page that you want to bring to the front.
2. In the right-click menu that opens, select Bring to Front. This action lists the MFS device page and the
physical pages and device fields below it in the hierarchy at the bottom of the Outline view.
Now when you add a physical page, it is automatically added to this device page. You must repeat these
steps if you want to add a physical page to a different device page.
Multiple physical pages can be created for a device page only when the device page properties have the
Multiple physical pages check box marked. Adding physical pages through the outline view or palette
view is disabled until this checkbox is marked.
Related information
“Physical page properties” on page 113
When a physical page is selected in the Outline view the physical page properties are displayed in the
Properties view.
Label field
The label field is a protected normal field.
To create a label field in the design canvas:
1. Click the Label field icon in the palette.
Input field
The input field is an unprotected normal field.
As you add fields to the design canvas, they are displayed in the Outline view. To create an input field in
the design canvas:
1. Click the Input field icon in the palette.
2. Draw the field in the design canvas where you want to place it.
Note: Input fields are required to have a label, or DFLDNAME for MFS source to be correctly generated.
To change the properties of an input field, use the Properties view.
Related information
“Field properties” on page 113
When you select a field through the Outline view, on the design canvas, or a DFLD macro in the Source
page, the properties that are associated with the field are populated and displayed in the Properties view.
Output field
The output field is an unprotected normal field.
As you add fields to the design canvas, they are displayed in the Outline view. To create an output field in
the design canvas:
1. Click the Output field icon in the palette.
2. Draw the field in the design canvas where you want to place it.
Note: Output fields are required to have a label, or DFLDNAME for MFS source to be correctly
generated.
To change the properties of an output field, use the Properties view.
Related information
“Field properties” on page 113
When you select a field through the Outline view, on the design canvas, or a DFLD macro in the Source
page, the properties that are associated with the field are populated and displayed in the Properties view.
Password field
The Password field in the palette is an unprotected normal field. This field is the location of the IMS
password field for input messages.
As you add fields to the design canvas, they are displayed in the Outline view. To create a password field
in the design canvas:
1. Click the Password field icon in the palette.
2. Draw the field in the design canvas where you want to place it.
Note: Passwords cannot have a length greater than eight for MFS source to be correctly generated.
Alternatively, if you created an input field, you can mark the Password check box in the input field
properties to make the input field a password field.
106 Developer for z/OS: Developing with Db2, CICS, and IMS
To change the properties of a password field, use the Properties view.
Related information
“Field properties” on page 113
When you select a field through the Outline view, on the design canvas, or a DFLD macro in the Source
page, the properties that are associated with the field are populated and displayed in the Properties view.
System Message
The System Message field is an unprotected normal field of length 79.
As you add fields to the design canvas, they are displayed in the Outline view. To create a system
message field in the design canvas:
1. Click the System message field icon in the palette.
2. Draw the field in the design canvas where you want to place it.
Note: System message fields are created with length of 79. If the location on the design page you
select does not have 79 available bytes, then the field is wrapped to the next line.
To change the properties of a system message field, use the Properties view.
Related information
“Field properties” on page 113
When you select a field through the Outline view, on the design canvas, or a DFLD macro in the Source
page, the properties that are associated with the field are populated and displayed in the Properties view.
Advanced drawer
The Advanced design palette provides specific items for inclusion in a device format definition. These
items require some configuration before you can add them to a device format definition.
The Advanced palette includes the Table tool.
Click the Advanced drawer label to show or hide the item list. You can also change the order of options by
using the Customize palette menu option.
To add an item to the design canvas, complete the following steps:
1. In the Palette view, click the item that you want. The item is highlighted.
2. Move the cursor to the design canvas. It is not necessary drag the item to the design canvas.
3. Click the location that you want on the design canvas. If a location that you want is not valid, the item
is not added to the design canvas.
4. Set the required properties in the configuration wizard.
As you add items to the design canvas, the Outline view is updated. The Properties view shows the
specific settings for each item.
Related information
“Table” on page 107
Use the Table tool to create a table. This action is equivalent to coding the DO statement on a device field.
Table
Use the Table tool to create a table. This action is equivalent to coding the DO statement on a device field.
You can modify settings for an existing table by using the Design page tools.
To place a table:
1. Click the Table button in the Advanced palette.
2. Click the left mouse button at the location that you want in the design canvas. An invalid icon is
displayed if the location is not valid.
The Create New Table wizard opens.
Outline view
The Outline view displays format and message information for a specific MFS file in a hierarchical
presentation.
When you select an item in the Outline view, that item is highlighted in the design canvas and the Source
page. The property value information for the item is shown in the Properties view.
The Outline view is displayed by default. You can change the MFS Editor preferences to hide this view.
108 Developer for z/OS: Developing with Db2, CICS, and IMS
Adding device format and message components
When you select a device format or message component in the Outline view, you can add new child
components from the right-click menu. For example, if you select a logical page, you can create a segment
by selecting New segment from the right-click menu.
You cannot create or remove the top level of the MFS device format hierarchy or the MFS message
definition. In the Outline view, these are the format and message components.
Important: The Undo and Redo options apply to operations performed in either the Outline view or the
design canvas. If you cut a field in the design canvas, for example, the Undo Cut option is enabled in the
Outline view right-click menu.
Related information
“Design page in MFS Editor” on page 119
The Design page contains the Design canvas and an associated Palette view, where you can visually edit a
format definition.
“Source page” on page 122
Use the Source page to view and modify the MFS source statements directly in a text editor.
“Properties view” on page 110
The Properties view displays property value information for a component that is selected in the design
canvas or the Outline view.
“Preferences” on page 125
You can customize some components of the MFS editor through the MFS Editor Preferences page.
Properties view
The Properties view displays property value information for a component that is selected in the design
canvas or the Outline view.
The Properties view is displayed by default. You can change the MFS Editor preferences to hide this view.
Related information
“Preferences” on page 125
You can customize some components of the MFS editor through the MFS Editor Preferences page.
Format properties
When a format is selected in the Outline view, or the FMT statement in the MFS source is selected, the
format properties are displayed in the Properties view.
The following are the editable properties that can be modified for the format.
Name
Specify an optional name to uniquely identify this format statement. The length is from one to eight
alphanumeric characters.
Device properties
When a device is selected in the Outline view, or the DEV statement in the MFS source is selected, the
device properties are displayed in the Properties view.
The Properties view contains several tabs that contain properties that can be set for the device.
Basic properties
The following are the properties available on the Basic tab and in the New Device dialog that opens when
you select to create a device through the Outline view.
110 Developer for z/OS: Developing with Db2, CICS, and IMS
Name
Specify an optional device name that uniquely identifies this statement. The length is from one to
eight alphanumeric characters.
Width
Specify the maximum line width for this DEV type as one of the following values:
• Number of print positions per line of input or output data
• Number of punch positions per card of input or output data
• Card width for card reader input data
This parameter is optional and is valid for device types 3270P.
Type
Specify a 3270 display or printer as the device type. Corresponds to the device attribute, TYPE=. This
parameter is required
Substitution
Specify the character that MFS uses to replace any X'3F', or null, characters in the input data stream.
Corresponds to the device attribute, SUB=. The character must be specified in the form X'hh' or C'c',
where "hh" is a hexadecimal value and "c" is a character value. This parameter is optional and is valid
for device types 3270 and 3270-An.
DSCA
Specify the default system control area for output messages that use this device format. Corresponds
to the device attribute, DSCA=. This parameter is optional.
The following properties are also listed on the Basic properties tab:
Print lines
Specify the number of lines to be printed when formatting output messages. Corresponds to the
device parameter, PAGE=. This input is optional and valid only for devices that are of type 3270P.
Line format
Specify from the drop-down menu the format control for output messages. Corresponds to the device
parameter, PAGE=. This input is optional and valid only for devices that are of type 3270P.
Advanced properties
The following properties are editable on the Advanced tab.
System message
Select a device field name that is defined in the format from the drop-down menu as the device
field to display IMS system messages. Corresponds to the device parameter, SYSMSG=. This input is
optional and is valid only with 3270 device types.
Pen
Specify an input device field name that is defined in the format. Corresponds to the device parameter,
PEN=. This input is optional and is valid only with devices that are of type 3270.
Card
Specify an input device field name that is defined in the format. This property specifies that the device
has a 3270 operator identification card reader. Corresponds to the device parameter, CARD=. This
input is optional and is valid only with 3270 device types.
Features properties
The following properties are editable on the Features tab.
Card
Mark this checkbox to set the property that specifies that the device has a 3270 operator
identification card reader. Corresponds to the device parameter, FEAT=CARD. This input is optional
and is valid only with devices that are of type 3270.
Division properties
When a division is selected in the Outline view, or the DIV statement in the MFS source is selected, the
division properties are displayed in the Properties view.
The following are the editable properties that can be modified for the division.
Name
Specify an optional name to uniquely identify this statement. The length is from one to eight
alphanumeric characters.
Type
Specify the format as input-only (INPUT), output-only (OUTPUT), or both (INOUT).
Compression
Select the compression from the drop-down list:
• SHORT - MFS removes trailing blanks from short fields.
• FIXED - MFS removes trailing blanks from fixed-length fields.
112 Developer for z/OS: Developing with Db2, CICS, and IMS
• ALL - MFS removes trailing blanks from all fields presented by the application program.
This option is valid for divisions with a type of OUTPUT.
Field properties
When you select a field through the Outline view, on the design canvas, or a DFLD macro in the Source
page, the properties that are associated with the field are populated and displayed in the Properties view.
Basic properties
The following properties are editable on the Basic tab of the Properties view:
Label
Specify field name. The length is from one to eight alphanumeric characters. This label corresponds
to the DFLDNAME for the field. This input is required for an input and output field and invalid for a
password and label field.
Attributes properties
The following properties are editable on the Attributes properties tab of the Properties view. All
attributes except for Attribute Bytes are optional for devices of type 3270 and 3270-An and invalid
for device types 3270P.
Intensity
Select the display intensity of the field as High, Normal, or Nondisplayable. Corresponds to the field
parameter, ATTR= and the properties HI, NORM, and NODISP.
Detectability
Select the detectability of the field through light pen operations as Deferred, Immediate, or
Nondetectable. Corresponds to the field parameter, ATTR= and the properties DET, IDET, or NODET.
Protected
Select this checkbox to protect the field from modification. Clear the checkbox to remove protection.
Corresponds to the field parameter, ATTR=PROT. Label fields are always protected.
Numeric
Specify whether the field has the numeric attribute. Corresponds to the field parameter, ATTR=NUM.
Modified
This parameter defines whether the field-modified-attribute byte is assumed for this field.
Corresponds to the field parameter, ATTR=MOD.
Strip
Specify whether the pen detect designator byte preceding the input field is to be stripped (STRIP)
before presentation to the application program. Corresponds to the field parameter, ATTR=STRIP.
Attribute bytes
Mark this checkbox to specify whether to use the first byte of this field to display attribute
information when the output message includes attribute information for the field. Marking the
checkbox corresponds to the field parameter, ATTR=YES, and clearing the checkbox corresponds
to the field parameter, ATTR=NO. This input is optional and valid only for devices of type 3270P.
Extended attributes
You can set the following Extended Attributes properties. These properties are valid only on output fields
and correspond to the field parameter EATTR.
114 Developer for z/OS: Developing with Db2, CICS, and IMS
Highlighting
Select the highlighting style from the drop-down list.
Color
Select the color from the drop-down list.
Outline
Select one or more locations to create the field outline.
Program Symbol Buffer
Specifies the program symbol buffer for the IMS application program. You must specify a
corresponding Value.
If you select PX from the drop-down menu, then the value must be a hexadecimal value in the range
of X'40' to X'FE'. If you select PC from the drop-down menu, then the value must be a character
value in the range of X'40' to X'FE'. It is invalid to specify both a program symbol buffer and an
extended graphical character set.
Corresponds to the field parameter values: EATTR=PX'hh' or EATTR=PC'hh'.
Extended Graphical Character Set
Mark the checkbox to specify the use of an extended graphical character set. This value is valid only
on output fields in devices of type 3270.
If you specify an additional value, then it must be a hexadecimal value in the range X'40' to X'FE' or
X'00'.
Corresponds to the field parameter values: EATTR=EGCS'hh'.
EGCS/DBCS Mixed Field
Mark the checkbox to specify if the field contains a mixture of single byte and double byte characters.
Features properties
MFS files with tables are supported in modification mode only. Tables and fields on the Features tab
are inactive if no OPCTL keyword exists on the device field. If an OPCTL keyword exists on the tab of
the Properties view, the fields are populated with the information from the TABLE declaration and are
modifiable.
Message properties
When a message is selected in the Outline view, or the MSG statement in the MFS source is selected, the
message properties are displayed in the Properties view.
The following are editable properties that can be modified for the message.
Name
Specify the message name. Valid names are from one to eight characters. This entry is required.
Type
Select the message type from the drop-down list. Valid values are Input and Output. Corresponds to
the message parameter, TYPE=. This parameter is required.
Fill
Specify the fill character. This input is optional and is valid only for messages of type output.
Corresponds to the message parameter, FILL=. If you specify a fill type of C'c', replace 'c' with the
character to use as the fill value. For example, to specify a fill value of periods, provide the string:
C'.'.
Format
This parameter lists the referenced device format in the SOR= operand. The value is taken from the
FMT label and cannot be modified.
Next Message
Specify a message description name. If the current message is an input message, the message
referenced as Next Message must be an output message. If the current message is an output
message, the message referenced as Next Message must be an input message.
Segment properties
When a segment is selected in the Outline view, or the SEG statement in the MFS source is selected, the
segment properties are displayed in the Properties view.
The following are the editable properties that can be modified for the segment.
Name
Specify the segment name. Valid names are from one to eight characters in length. This input is
optional.
116 Developer for z/OS: Developing with Db2, CICS, and IMS
Exit Number
Specify a value in the range from 0 to 127. This value corresponds to exit number attribute in the
segment parameter, EXIT=. This input is optional and valid only for input message segments.
Exit Vector
Specify a value in the range from 0 to 255. This value corresponds to the exit vector attribute in the
segment parameter, EXIT=. This input is required when Exit Number is specified and valid only for
input message segments.
Graphic
Mark this checkbox to specify that IMS is to perform uppercase translation on the segment, if the
destination definition requests it. Corresponds to the segment parameter, GRAPHIC=. This parameter
is optional and valid only for input messages.
118 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 10. MFS Editor toolbar icons (continued)
Icon Description Icon Description
Use this icon to access the different
filters that are defined for the active
map set.
A protected or label field in the map, An unprotected or input field in the map
also a message field in a MFS message
definition
An output field in the map A MFS logical page or segment in the MFS
message definition
Editor features
The MFS Editor provides visual editing and modification tools for use with device format definitions.
Additional options and capabilities can be accessed through the available views.
The Palette view provides both click-and-drop and drag-and-drop access to the format definition
components. The editor provides additional capabilities with the Outline and Properties views.
Design canvas
Use the Design canvas to customize a new format definition or modify an existing format definition. Use
the scroll bars to view the entire visual editing space.
To see the available design, filter, and edit options, right-click the canvas to open the right-click menu.
To add an item to the canvas, click the item icon on the Palette and click the cursor at the canvas location
that you want. You can also drag the item onto the canvas.
Note: When you first create an MFS device format with the MFS Device Format wizard, the lowest level of
the hierarchy that is created is the MFS division. You can view this hierarchy in the Outline view. Before
you can start adding fields to the design page, you must first add a device page and physical page element
to the device format. After the first physical page is created, the highest level of hierarchy that is displayed
in the design page is the physical page level. Subsequent device pages must be created through the
Outline view.
Important: The Undo and Redo operations apply to operations performed in either the Outline view or
the Design canvas. For example, if you cut a field in the design canvas, the Undo Cut option is enabled in
the Outline view pop-up menu.
Printing
To print the design canvas, click File > Print from the menu toolbar. You can also use the Ctrl+P key
combination or select Print from the Design page right-click menu.
Bidirectional options
Terminal Size
Select the down arrow to create format definitions for several screen sizes.
120 Developer for z/OS: Developing with Db2, CICS, and IMS
• 12 × 80
• 24 × 80 (default)
• 32 × 80
• 43 × 80
• 24 × 80
• 27 × 132
Toggle Grid lines
This option hides or shows the grid lines in the design canvas. Grid lines are helpful to verify that fields
are aligned properly.
Toggle Samples Values
This icon, , functions as a button. Pressing it displays the type and amount of data allowable in a
field. For example, a numeric field of 4 units displays a sample value of 9999 and an alphanumeric
field of the same length displays a sample value of XXXX.
Toggle Black and White Mode
This icon, , functions as a button. Pressing it displays the devices and fields in a high-contrast
canvas.
Zoom Level
Use this icon, , to select the zoom level of the design canvas.
Filters
A filter is a group of one or more physical pages that are displayed at a single time. Select the down
arrow next to the filter icon, to see a list of filters that are created. By default, all physical pages are
shown.
Create new filters to display customized groupings of physical pages. You can also change the
ordering of physical pages in the list.
If bidirectional support is enabled, a Toggle Bidirectional Mode button is displayed on the Design page
toolbar.
The following toggle options are available:
• Visual Data
Toggles between visual ordering of text and the default logical ordering.
• RTL Mapset
Toggles the orientation of the screen and the horizontal ruler between left-to-right to right-to-left.
• Symmetric Swapping
Resets swappable characters. For example, in a right-to-left string, the open parenthesis ( and close
parenthesis ) are reversed.
• Numeric Swapping
Sets an inversion of the screen, which causes Hindi numerals to be replaced by their Arabic
counterparts and the Arabic numerals to be replaced by their Hindi counterparts.
Bidirectional options
If you enable bidirectional support in the Preferences page, a Bidirectional Settings option displays
on the Design page right-click menu. These options are the same as the options on the Design page
bidirectional toggle button.
Related information
“Preferences” on page 125
You can customize some components of the MFS editor through the MFS Editor Preferences page.
“Design page in MFS Editor” on page 119
The Design page contains the Design canvas and an associated Palette view, where you can visually edit a
format definition.
Show source
The Show Source option in the design canvas right-click menu displays the format definition source for a
selected field.
Source page
Use the Source page to view and modify the MFS source statements directly in a text editor.
Note: Use the Show Source option from the “Design page right-click menu” on page 121 to view the .mfs
source in a read-only mode while still in the Design canvas.
122 Developer for z/OS: Developing with Db2, CICS, and IMS
When you select a line of MFS source in the Source page, the MFS element that corresponds to the macro
is highlighted in the Outline view. If the Properties view is also open, then the properties of the macro are
also populated and displayed. Changes that are made directly to the source are immediately reflected in
the Design page and Preview pages.
Note: Manual changes done to the MFS source are not validated for semantic and logical correctness.
For example, modifying the length of a field such that it overlaps another, existing field, does not cause
a validation error. Therefore, it is recommended to modify MFS source through the Design page, Outline
view, and Properties view.
Standard editing features are provided, such as Find/Replace, Undo/Redo, Cut, Copy, Paste, and Delete.
Additional editor features are as follows:
• Customized color highlighting
Items such as MFS statement keywords, attribute names and values, strings, and comments are colored
differently, to help you differentiate parts of an MFS source statement. You can customize the colors in
the Preferences dialog.
• Line numbers
Line numbers are displayed in the left margin of the editor window. You can hide line numbers by
modifying the Preferences .
• Error markers
If syntax errors are encountered during a save or a validation and build operation, an error icon is
displayed in the left margin of the line that contains the error. Errors also are displayed in the Problems
view. MFS device format source files that contain syntax errors cannot have an MFS message definition
that is appended to them until the syntax error is resolved.
Preview page
Use the Preview page to view a read-only display of the device format definition as it is displayed on a
3270 terminal.
Display options
Use the following display options to customize the definition preview:
Preview Mode
This option shows the device format definition displayed in Web or Normal (terminal emulator) form.
The web option is available even if a web page is not created from the definition file.
Filters
Use this option to preview and prioritize a subset of the available physical pages. By default, all
physical pages are shown. You create new filters to display customized groupings of physical pages.
Click Refresh to update the definition preview.
Related information
“Filters” on page 124
Filters allow customization of the physical pages that are displayed in a format definition open in the
Design canvas or Preview page. Any physical page present in the format definition can be its own filter
or can be a filter with other physical pages. Filter configurations are saved in the current workspace and
Filters
Filters allow customization of the physical pages that are displayed in a format definition open in the
Design canvas or Preview page. Any physical page present in the format definition can be its own filter
or can be a filter with other physical pages. Filter configurations are saved in the current workspace and
are available each time you open the format definition in that same workspace. You cannot transfer filter
definitions to another workspace.
Note: The filtering option is not available for the Source page.
Select a filter
You can change the filter by clicking the drop-down arrow next to the filter icon and selecting a filter from
the list of available filters. The name of the currently applied filter is displayed below the filter icon on the
Design canvas or Preview page toolbar.
Create a filter
If the list of available filters does not contain the grouping of physical pages you want to display, you can
create a filter.
1. Click the drop-down arrow next to the filter icon, and select Filters. This action opens the Filters
dialog.
You can use the Filters dialog to modify existing filters and create new filters.
2. At the top of the dialog, click New. This action opens the New Filter dialog.
3. Enter a name for the filter, and click OK. The filter name is displayed in the Select a filter menu.
4. Select the name of the physical page in the list to preview it in the Preview window.
5. Mark any checkbox next to physical pages you want to add to the filter.
6. Clear any checkbox next to physical pages you want to remove from the filter.
7. Set the order of the device pages to be shown by the filter by moving a physical page higher or lower in
the list.
Use the Up and Down buttons to change the order of displayed physical pages. The fields of the
physical page listed first for the filter are editable in the Design canvas. Any other physical pages that
are included in the filter are displayed behind the first physical page and are not editable in the Design
canvas unless they are manually brought to the front.
124 Developer for z/OS: Developing with Db2, CICS, and IMS
Remove an existing filter
Removing an existing filter removes the filter from the list of filters accessible on the Design canvas and
Preview page toolbars. Removing a filter cannot be undone.
To remove an existing filter, you use the Filters dialog.
1. Click the drop-down arrow next to the filter icon, and select Filters.
2. From the Select a filter menu at the top of the Filters dialog, select the filter that you want to remove.
3. Click the Remove button. A prompt opens for you to confirm removal of the filter.
4. Click OK to remove the filter. The filter is no longer displayed in the filters list.
Preferences
You can customize some components of the MFS editor through the MFS Editor Preferences page.
In the left pane of the Preferences window, select MFS Editor to access the Preferences page. You can
also open the preferences by right-clicking the MFS editor design page and selecting Preferences from
the menu.
General preferences
You can modify the following MFS Editor preferences:
• Show line numbers
Displays line numbers in the left column of Source page.
• Open outline
Opens the Outline view when a file is opened in the MFS editor.
• Open properties
Opens the Properties view when a file is opened in the MFS editor.
• Naming conventions
Sets name prefixes for devices, device pages, and input fields.
Design Page
You can modify the following Design page preferences:
• Background color
Sets the background color of the design canvas.
• Grid color
Sets the color for vertical and horizontal grid lines.
• Highlight fields
Places a box around fields. Select the color that you want for the box.
• Show rulers
Shows or hides the vertical and horizontal rulers.
• Font name
Sets the font style and size used in the design canvas.
Note: Use only monospace fonts.
• Font
Sets the font size used in the design canvas (works with the Zoom feature).
• Visually demonstrate blinking fields
Blink fields are displayed with an italicized font.
Bidirectional settings
Select Bidirectional options enabled to allow the following bidirectional language preferences. The
options specify the default for each newly loaded format definition file.
• Enable visual data ordering Sets the visual ordering of text, instead of the default logical ordering.
• Enable bidirectional settings button Places a Toggle bidirectional mode button on the Design page
toolbar.
• Default RTL orientation Sets a right-to-left text flow in the display. This preference simulates how data
is displayed on a 3270 terminal when the screen is reversed. This option enables the design of reversed
(right-to-left) screens.
• Default right alignment Causes fields added in the Design page to be right-aligned. In the source file
right-aligned fields are padded with leading spaces.
• Enable symmetric swapping Resets swappable characters automatically. In a right-to-left string, for
example, the parentheses characters ( and ) are reversed.
• Enable numeric swapping Automatically sets an inversion of the screen, which causes Hindi numerals
to be replaced by their Arabic counterparts and Arabic numerals to be replaced by their Hindi
counterparts.
MFLD preferences
Select Automatically generate Input and Output MFLD when a DFLD is added to automatically add
MFLD definitions to the input and output messages when a newly created DFLD is added to the Design
page.
Note: The Input MFLD generates the LTH attribute and the Output MFLD generates the LTH and the
ATTR=YES attributes by default. Customization of the attributes that are generated in the MFLD are not
supported.
Source Page
You can modify the following Source page preferences:
• Background color
Sets the background color of the Source page editor. The default is white.
• Foreground
Sets foreground colors for the following items:
– MFS statement keywords
Color for keywords such as DEV, DIV, and DPAGE.
– Attribute names
Color for attribute names.
– Attribute values
Color for attribute values.
– Strings
Color for regular strings, such as initial value.
– Comments
Color for comments.
Click Bold to further emphasize any specific foreground item, regardless of color.
Use the Preview area to evaluate the style changes before applying them.
126 Developer for z/OS: Developing with Db2, CICS, and IMS
Related information
“Outline view” on page 108
The Outline view displays format and message information for a specific MFS file in a hierarchical
presentation.
“Properties view” on page 110
The Properties view displays property value information for a component that is selected in the design
canvas or the Outline view.
JCL generation
You can generate the job control language (JCL) for an MFS file, either from an existing partitioned data
set on the remote z/OS system or from an MVS subproject.
Before you can create the JCL for an MFS file you must create a property group that specifies the
information that the host needs for JCL generation. To create a property group:
1. In the Property Group Manager view, right-click the host connection for the host that contains the
MFS files for which you want to generate JCL.
2. Select New Property Group. A new property group is opened in the editor.
3. At the bottom of the editor, select the MFS tab. This action opens the MFS settings page of the
property group.
4. From the left menu, select Procedures and Steps. In the main window, expand the procedure name,
ELAXFMFS, and select DFSUPAAO.
5. Scroll down to the Step options panel, and click Edit. This action opens the editable option for the
procedure and step you selected.
6. Enter PDS names that are available under the My Data Sets filter for FORMAT library, Listing output
data set, and SYSLIB library.
7. Save the property group.
After you create a property group, you must associate it with the MFS file or containing PDS before you
generate the JCL.
1. In the Remote System Explorer view, navigate to the MFS file or the PDS containing the MFS for which
you want to generate JCL.
2. Right-click the MFS file or the containing PDS, and select Property group > Associate property group.
The Associate Property Group dialog opens.
3. In this dialog, select the checkbox next to the property group to associate to your MFS file or PDS. Click
OK. The property group is associated to the MFS file or PDS.
Finally, you can generate the JCL for the MFS file.
1. Right-click the MFS file and then click Generate JCL > To Run MFS Gen.
2. Specify the target partitioned data set for the generated JCL and the member name. You can also set a
different job name. This target PDS is where the generated JCL is placed.
3. Click OK to complete the generation process.
If the member name exists, you are prompted to overwrite the member.
If the target partitioned data set does not exist, an error message is displayed.
If the JCL generation is successful, you are immediately prompted to submit the JCL. If you do not submit
the JCL, then you can submit the JCL later by right-clicking the JCL in its PDS and selecting Submit.
You can use the JES subsystem to track any JCL submission process.
Related reference
MFS step options
Related information
Determining the source of generated JCL
Bidirectional preferences
The following bidirectional settings are available:
• Enable visual data ordering Sets the visual ordering of text, instead of the default logical ordering.
• Enable bidirectional settings button Places a Toggle bidirectional mode button on the Design page
toolbar.
• Default RTL orientation Sets a right-to-left text flow in the display. This preference simulates how data
is displayed on a 3270 terminal when the screen is reversed. This option enables the design of reversed
(right-to-left) screens.
• Default right alignment Causes fields added in the Design page to be right-aligned. In the source file
right-aligned fields are padded with leading spaces.
• Enable symmetric swapping Resets swappable characters automatically. In a right-to-left string, for
example, the parentheses characters ( and ) are reversed.
• Enable numeric swapping Automatically sets an inversion of the screen, which causes Hindi numerals
to be replaced by their Arabic counterparts and Arabic numerals to be replaced by their Hindi
counterparts.
128 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 13. Visual input key functions (continued)
Key
Key function Description combination
Switch between Switches numerals input between Arabic and Hindi. Alt+*
input of Arabic/
Hindi Numerals
Settings
To activate bidirectional support, in the left pane of the Preferences window, click MFS Map Editor >
Design Page > Bidirectional Settings and select Bidirectional options enabled.
Under the Bidirectional options enabled checkbox are the following check boxes:
• Enable visual data ordering Sets the visual ordering of text, instead of the default logical ordering.
• Enable bidirectional settings button Places a Toggle bidirectional mode button on the Design page
toolbar.
• Default RTL orientation Sets a right-to-left text flow in the display. This preference simulates how data
is displayed on a 3270 terminal when the screen is reversed. This option enables the design of reversed
(right-to-left) screens.
• Default right alignment Causes fields added in the Design page to be right-aligned. In the source file
right-aligned fields are padded with leading spaces.
• Enable symmetric swapping Resets swappable characters automatically. In a right-to-left string, for
example, the parentheses characters ( and ) are reversed.
• Enable numeric swapping Automatically sets an inversion of the screen, which causes Hindi numerals
to be replaced by their Arabic counterparts and Arabic numerals to be replaced by their Hindi
counterparts.
When Enable bidirectional settings button is selected, the same set of bidirectional settings is made
available in the MFS Editor toolbar. When a bidirectional settings button is enabled, you can dynamically
set the bidirectional options described in this topic.
130 Developer for z/OS: Developing with Db2, CICS, and IMS
Figure 2. Example of Bidirectional Array Alignment Settings
This structure is created with an orientation opposite to mapset when this option is not set to the default;
for example, RTL structure in LTR mapset
Single-service projects
Single-service projects provide an integrated set of programs for generating files needed in developing
Web services, including COBOL or PL/I source code files for runtime-specific request and response XML
message processing and Web service description files (WSDL).
To generate these output files you first select data definitions from high-level-language source code files
(COBOL or PL/I) and from XML schema definitions (from WSDL, XML, or XSD files, depending on the
scenario) and then specify how the fields in the high-level-language data definitions are to be mapped to
the fields in the XML schema definitions.
The generated output files can be used to create a service provider and requester application that invokes
a new or existing CICS application as its program component.
These output files can be generated for the following runtime environments (not all solutions are available
in all runtime environments -- see “Web services development scenarios” on page 134):
• Web Services for CICS Project
• XML Transformation for CICS Project
• IMS Enterprise Suite SOAP Gateway Project
• Batch, TSO, z/OS UNIX System Services Project
Batch, TSO, z/OS Batch, TSO, and z/OS UNIX System Services environments for z/OS
UNIX System
Services Project
134 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 16. Web Service Development Scenarios for Single-Service Projects in Enterprise Service Tools
Runtime: Tasks you can accomplish:
Web Services • Bottom-up development: Generate a Web service description and runtime-specific request
for CICS and response XML message processing from a high level language data structure. You can
Project use this method to create a service provider program (one that runs using Web Services for
CICS protocols) for an existing CICS application.
• Meet-in-middle development: Define mappings between high level language data
structures and WSDL, XML, or XSD files. You can use this method to generate runtime-
specific request and response XML message processing based on the mappings.
Note: You can use mapping to an Existing Service Interface (meet-in-middle) wizard when
you run the Enterprise Service Tools Wizard Launchpad inside the Enterprise Service
Tools perspective. Access to the wizard is still allowed when you run the wizard outside the
Enterprise Tools perspective (see “Contexts for starting the single-service wizards” on page
194).
• Top-down development: Generate a high-level language structure and runtime-specific
request and response XML message processing from a Web service description (WSDL file).
You can use this method to:
– Create a service provider program (one that runs using Web Services for CICS protocols)
for a new CICS application.
– Create a service provider program (one that runs using Web Services for CICS protocols)
for an existing CICS application.
– Create a service requester program (one that runs using Web Services for CICS
protocols).
See “Web Services for CICS project” on page 176.
XML • Bottom-up development: Generate files for the XML Transformation and runtime-specific
Transformation XML processing from a high level language data structure.
for CICS
• Top-down development: Generate a high-level language structure and runtime-specific
Project
XML processing from an XSD file.
Note: Meet-in-middle development is not supported.
IMS Enterprise • Bottom-up development: Generate a Web service description and runtime-specific request
Suite SOAP and response XML message processing from a high level language data structure. You can
Gateway use this method to create a service provider program (one that runs using IMS Enterprise
Project Suite SOAP Gateway protocols) for an existing IMS application.
• Meet-in-middle development: Define mappings between high level language data
structures and WSDL, XML, or XSD files. You can use this method to generate runtime-
specific request and response XML message processing based on the mappings.
• Top-down development: Create a new service implementation from the information in
a WSDL file (supported only for the IMS Enterprise Suite SOAP Gateway with compiled
conversion and Enterprise PL/I).
See “IMS Enterprise Suite SOAP Gateway project” on page 181.
Developing web services and SOA with Enterprise Service Tools 135
Table 16. Web Service Development Scenarios for Single-Service Projects in Enterprise Service Tools (continued)
Runtime: Tasks you can accomplish:
Batch, TSO, • Bottom-up development: Generate a Web service description and runtime-specific request
z/OS UNIX and response XML message processing from a high level language data structure. You can
System use this method to create a service provider program (one that is not runtime-specific) for
Services an existing CICS application.
Project
• Meet-in-middle development: Define mappings between high level language data
structures and WSDL, XML, or XSD files. You can use this method to generate non-runtime-
specific request and response XML message processing based on the mappings.
See “Batch, TSO, z/OS UNIX System Services project” on page 183.
The major Web services development scenarios that are typical for a Service Oriented Architecture are:
• Bottom-up development
• Meet-in-middle development
• Top-down development
This context applies to the following types of Enterprise Service Tools projects:
• Web services for CICS project
• IMS Enterprise Suite SOAP Gateway project
• Batch, TSO, z/OS UNIX System Services project
(see “Web services development scenarios” on page 134).
Create New Service Interface (bottom-up)
In this scenario you generate a Web service description and runtime-specific XML message processing
artifacts from a high level language data structure. This allows you to expose an application program as a
service provider.
You start with an existing COBOL application, select the interface language structure from it and generate
the needed artifacts to deploy it as a new Web service.
Map to an Existing Service Interface (meet-in-middle)
In this scenario, you define mappings between high level language structures and WSDL, XML, or XSD
files. You also can generate runtime-specific XML message processing based on the mappings.
You start with a WSDL file (or XML or XSD file) that defines the interface to an existing Web service and an
existing COBOL interface definition and mapping together related fields. After mapping is completed, you
generate compiled converters that follow the mappings.
Create New Service Implementation (top-down, CICS only)
136 Developer for z/OS: Developing with Db2, CICS, and IMS
In this scenario you generate a high level language structure and runtime-specific XML message
processing from a Web service description.
You start with a WSDL document that defines an existing Web service and create a new application from
it that implements some or all of the functionality described in the Web service definition. The tool will
generate a template COBOL program code for either a new Web service provider or a new Web service
consumer. This new program uses language structures that correspond to the message elements for each
operation (operation-->input-->message-->part-->element, where element is an XML Schema type) to
process requests and issue replies.
To assist you in writing the new application, include files containing the language structure definitions are
generated as well as a COBOL template program which includes them.
Related tasks
Related reference
Developing web services and SOA with Enterprise Service Tools 137
from any directory on your hard disk to your My COBOL Files folder in the Navigator view simply by
using the drag feature provided by your operating system's user interface for moving or copying files.
Note: For some types of Enterprise Service Tools artifacts, there is not a one-to-one correspondence
between an artifact displayed in the EST Project Explorer and a single file in the Navigator view. The
information displayed for the artifact in the EST Project Explorer might be distributed among several
files and folders shown in the Navigator view.
Editor area:
Located by default in the central area of the Enterprise Services Tools perspective and extending to
the right side, the editor area provides a rectangular space for various editors that can be opened to
modify the various types of artifacts found in single-service projects.
The editor area is initially blank. You can open an editor by double-clicking an artifact in the EST
Project Explorer or by right-clicking an artifact and then selecting Open or Open With.
Outline view:
Located by default at the lower left of the Enterprise Service Tools perspective, the Outline view
displays information about an item currently being edited in the editor area. Depending on the editor,
the Outline view may allow you to perform editing actions as well as to view information.
Properties view:
Located by default at the lower right of the Enterprise Service Tools perspective the Properties view
displays information about an object selected in the editor area.
Tasks view:
The Tasks view allows you specify and prioritize tasks for your project.
Problems view:
As you work with resources in the workbench, various builders may automatically log problems,
errors, or warnings in the Problems view.
138 Developer for z/OS: Developing with Db2, CICS, and IMS
Main window
The main window of the EST Project Explorer displays a tree view of the single-service projects that
are contained in your workspace, together with their component subprojects, folders, subfolders, and
artifacts (see “Folders and subfolders in a single-service project” on page 174).
In general, you can perform the following types of actions in the main window:
Table 17. Types of actions that you can perform in the main window
Action: Steps:
To create a new project Use either of the following:
• The drop-down menu (see “Drop-down menu
(for creating new projects and artifacts)” on page
140).
• The pop-up menu (see “Pop-up menu” on page
141).
Toolbar
The toolbar contains icons that affect EST Project Explorer:
Developing web services and SOA with Enterprise Service Tools 139
Table 18. Icons on the toolbar (continued)
Icon: Command: Effect:
Link editor to EST Project This command toggles whether
Explorer the selected resource in the EST
Project Explorer is automatically
linked to the active editor. When
this option is selected, and you
are using multiple editors in the
editor area:
• Selecting an editor (and
therefore making it topmost) in
the editor area automatically
causes the resource that
is being edited to become
selected in the EST Project
Explorer view.
• Similarly, selecting a resource
in the EST Project Explorer that
is being edited automatically
causes the editor that is
editing the resource to become
selected (topmost) editor in the
editor area.
140 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 19. Entries on the drop-down menu (continued)
Menu entry: Description
JSON Services for CICS Project Starts the New JSON Services for CICS Project
wizard
XML Transformation for CICS Project Starts the New XML Transformation for CICS
Project wizard
IMS Enterprise Suite SOAP Gateway Project Starts the New IMS Enterprise Suite SOAP Gateway
Project wizard
Batch, TSO, z/OS UNIX Project Starts the New Batch, TSO, z/OS UNIX Project
wizard
Pop-up menu
The pop-up menu and its submenus include:
• The main pop-up menu
• The New submenu
• The Import submenu
• The Generate submenu
Some of the entries on the pop-up menu and its submenus are always present and enabled. Other entries
are present and enabled depending on the type of the currently selected item in the EST Project Explorer.
(a) Main pop-up menu:
To open the main pop-up menu:
1. Right-click an item in the EST Project Explorer, or right-click over a blank area anywhere in the EST
Project Explorer.
2. The pop-up menu opens.
The entries that can occur on the main pop-up menu are:
Developing web services and SOA with Enterprise Service Tools 141
Table 20. Entries on the main pop-up menu (continued)
Menu entry: Description
Rename Opens the Rename Resource window
Generate Web Services for CICS resources Opens one of the following wizards:
Generate XML Transformation for CICS resources • Opens the Enterprise Service Tools Wizard
Launchpad, if you have not already used this
Generate IMS Enterprise Suite SOAP Gateway project to generate any resources.
resources
• Opens the Create New Service Interface wizard,
Generate Batch, TSO, z/OS UNIX resources if you have already used this project to generate
resources to create a new service interface.
• Opens the Map an Existing Service Interface
wizard, if you have already used this project to
generate resources to map an existing service
interface.
142 Developer for z/OS: Developing with Db2, CICS, and IMS
When a single-service project is selected in the EST Project Explorer, the Import submenu contains the
following entries:
Shortcuts to wizards
To create a new project, or to create certain types of artifacts, you can also launch a wizard from the main
menu of the workbench (see “Shortcut to wizards” on page 143).
After installing the WSRR Eclipse user interface product on top of Developer for z/OS, the pop-up menu
for a Web Services Description Language (WSDL) document in EST project explorer shows the actions in
Figure 3 on page 143.
For information on how to manage services in WSRR Eclipse user interface, see: http://www-01.ibm.com/
support/knowledgecenter/
For additional information on how to install and configure the Eclipse user interface, see: http://
www-01.ibm.com/support/knowledgecenter/
Shortcut to wizards
This shortcut is for opening wizards that create new Enterprise Service Tools projects. To use this
shortcut:
1. Make sure that the Enterprise Service Tools perspective is open and that it is the currently selected
perspective.
2. On the main menu of the workbench select File > New.
Developing web services and SOA with Enterprise Service Tools 143
3. Select the menu item for the wizard that you want to open (see Table 25 on page 144):
Table 25. Items on the File > New menu that start wizards
Menu item: Wizard:
CICS Web Services Project New Web Services for CICS Project
JSON Services for CICS Project New JSON Services for CICS Project
XML Transformation for CICS Project New XML Transformation for CICS Project
IMS Enterprise Suite SOAP Gateway Project New IMS Enterprise Suite SOAP Gateway Project
Batch, TSO, z/OS UNIX Project New Batch, TSO, z/OS UNIX Project
Shortcut to views
When the Enterprise Service Tools perspective is the currently selected perspective, you can open the
following views by selecting Window > Show View on the main menu of the workbench and then
selecting the name of the view:
• EST Project Explorer
• Navigator
• Outline
• Problems
• Properties
• Remote Systems
144 Developer for z/OS: Developing with Db2, CICS, and IMS
• Problems
• Properties
• Remote Systems
To open the EST Project Explorer view when the Enterprise Service Tools perspective is not opened or
is not the current perspective, see “Opening the EST Project Explorer view from another perspective” on
page 145.
Developing web services and SOA with Enterprise Service Tools 145
• Batch, TSO, z/OS UNIX System Services
These preferences affect how runtime XML conversion programs generated by single-service wizards
in the Enterprise Service Tools convert data between the XML format used in service requests and
responses and the high-level language data structures used by COBOL:
To set generation preferences for runtime XML conversion programs:
1. In the left pane of the Preferences window, select Enterprise Service Tools.
2. Change the preferences:
a. The preferences on the Basic tab are described in the following table:
146 Developer for z/OS: Developing with Db2, CICS, and IMS
Generate groups in XML Schemas
This checkbox controls whether the XML converter includes groups in the generated XML
schemas:
– Select this checkbox if you want the XML converter to include groups in the generated XML
schemas.
– Clear this checkbox if you want the XML converter to include group "contents" inline instead
of using group references. This option is useful for applications that do not support the use of
groups and group references in XML schemas.
01 ServiceRequest.
02 CommonHeader.
05 HeaderType1.
10 Element1 PIC X(10).
the complex XML type name for the HeaderType1 element is:
– servicerequest_commonheader_headertype1 if the checkbox is not selected.
– HeaderType1 if the checkbox is selected.
The shortening of complex type names allows for the generation of more compact client code
(usually, Java class code) from the WSDL and XSD files containing the complex XML types.
The setting of this checkbox has no effect on top-down or meet-in-middle scenarios.
When shortening of a complex type name is attempted, a collision is possible if the short name
of the type already exists as the result of a previously defined type for a group with an identical
name but different parent group names. For example, in the following COBOL structure:
01 ServiceRequest.
02 CommonHeader.
05 HeaderType.
10 Element PIC X(10).
02 SpecificHeader.
05 HeaderType.
10 Element PIC X(10).
the type name of the HeaderType group under SpecificHeader collides with the type name
of the HeaderType group under CommonHeader.
In case of a collision all colliding names keep the original long type names. Thus, based on this
example, the resulting type names are:
– servicerequest_commonheader_headertype and
– servicerequest_specificheader_headertype.
The short name for a complex type is formed by taking the name of the XML element that has
that type, plus some possible modifications. The rules for forming short names are:
a. Take the name of the XML element that has the type (such as HeaderType1).
b. If the name starts with a character that is an invalid character for Java names (for example, a
digit), it is prefixed with a double underscore "__".
Developing web services and SOA with Enterprise Service Tools 147
c. If a hyphen "-" is present in the original COBOL group name it is replaced with a single
underscore "_".
d. The case of the group name is preserved.
For example, the following group:
03 2-In--B.
04 var2 blank zero pic 999.99.
148 Developer for z/OS: Developing with Db2, CICS, and IMS
– Select Do not check for illegal characters if you want the conversion program not to check for
characters that are illegal in the XML 1.0 specification.
For more information see “Options for handling illegal XML characters” on page 325.
Developing web services and SOA with Enterprise Service Tools 149
Setting preferences for the CICS Web Services Assistant (WSBind)
To set preferences for the CICS Web Services Assistant (WSBind), open the Web Services Assistant
(WSBind) page in the Enterprise Service Tools preferences. These options affect the generated WSBind
and language structure files.
These preferences affect the generation of resources only when you are generating files for the Web
Services for CICS runtime environment. These preferences do not affect the generation of resources for
the other runtime environments.
To set preferences for the Web Services Assistant (WSBind):
1. In the left pane of the Preferences window, expand Enterprise Service Tools and select Web Services
Assistant (WSBind).
2. Change the preferences (the preferences are described in the following sections).
3. Click OK when done.
150 Developer for z/OS: Developing with Db2, CICS, and IMS
Mapping level: (This is displayed in the Web Services Assistant as the parameter: MAPPING-LEVEL)
This preference specifies the version of the programmatic interface shared between CICS and
the application (see CICS® Transaction Server for z/OS, Version 5 Release 4 IBM Documentation).
Generally, it is best to specify the highest mapping level that is available:
• Mapping levels 1.0 to 1.2 are supported in CICS TS 3.1 with APAR PK23547 applied.
• Mapping levels 1.0 to 2.1 are supported in CICS TS 3.2 with APAR PK59794 applied.
• Mapping levels 1.0 to 2.2 are supported in CICS TS 3.2 with APAR PK69738 applied.
• Mapping levels 1.0 to 3.0 are supported in CICS TS 4.1.
• Mapping levels 1.0 to 4.0 are supported in CICS TS 5.2. and 5.3
• Mapping level 4.1 is compatible with a CICS TS 5.3 region with APAR PI67641 applied, and higher.
• Mapping level 4.2 is compatible with CICS TS V5.4 with APAR PI86039 applied, and higher.
• Mapping level 4.3 is compatible with CICS TS V5.4 with APAR PI88519, and higher.
The use of old mapping levels is recommended only when regenerating the XML binding files for XML
transformation resources that were previously deployed with an old mapping level.
1.0
This is the CICS runtime default mapping level.
1.1
Use this mapping level if you need to regenerate a binding file at this specific level.
1.2
This mapping level provides the following features:
• It enables the Char varying parameter on the DFHLS2WS tab and the DFHWS2LS tab of the
preferences.
• It supports VARYING and VARYINGZ arrays,
Note: Mapping level 1.2 requires APAR PK23547.
2.0
Use this mapping level for CICS TS 3.2.
Note: Use mapping 2.0 if you are deploying the WSBind file into TXSeries for Multiplatforms.
2.1
Use this mapping level for CICS TS 3.2 and later with APAR PK59794 applied. At this level you can
enable the following features:
• INLINE-MAXOCCURS-LIMIT
See the description of the Inline maxOccurs limit preference on the DFHWS2LS tab (see Inline
maxOccurs limit).
• XML-ONLY (also called Pass-through XML)
See the description of the Pass-through XML preference on the DFHWS2LS tab (see Pass-
through XML).
• WSDL-NAMESPACE
See the description of the WSDL namespace preference on the WSDL and XSD tab (see WSDL
namespace).
Support has been added for the XML schema element <xsd:any> and the data type xsd:anyType
(for DFHWS2LS) (see Support for <xsd:any> and xsd:anyType).
2.2
Use this mapping level with a CICS TS 3.2 region that has APAR PK69738 applied. Mapping level
2.2 provides the following support:
• Elements with fixed values
Developing web services and SOA with Enterprise Service Tools 151
• Enhanced support for <xsd:choice> elements
• Abstract data types
• Abstract elements
• Substitution groups
3.0
Use this mapping level for CICS TS 4.1.
4.0
Use this mapping level with a CICS TS 5.2 region or later. At this level, the following features are
available:
• DFHLS2SC and DFHLS2WS support the COBOL OCCURS DEPENDING ON clause and also
supports mapping of COBOL character arrays into XML strings. You can set this behavior by
using the CHAR-OCCURS parameter on the CICS assistants.
• CICS web services support the conversion of application data that is encoded using UTF-16
Unicode.
For more information, see Mapping levels for the CICS assistants.
4.1
Use this mapping level with a CICS TS 5.3 region with APAR PI67641 or later. With this runtime
level, the following features are available:
• TRUNCATE-NULL-ARRAYS and TRUNCATE-NULL-ARRAY-VALUES parameters are supported by
DFHLS2SC, DFHLS2WS, and DFHLS2JS.
4.2
Use this mapping level with CICS TS V5.4 with APAR PI86039 applied, and higher. This runtime
level is primarily for use with DFHJS2LS, but is also included in the CICS web services assistants,
XML assistants, and JSON assistants. It implements support for Additional Properties in JSON,
and also adds support for the following three parameters for DFHJS2LS:
• ADDITIONAL-PROPERTIES-DEFAULT
• ADDITIONAL-PROPERTIES-MAX
• ADDITIONAL-PROPERTIES-SIZE
4.3
Use this mapping level with CICS TS V5.4 with APAR PI88519, and higher. This runtime level is
primarily for use with DFHJS2LS, but is also included in the CICS web services assistants, XML
assistants, and JSON assistants. This mapping level implements support for multidimensional
arrays in JSON.l.
Minimum runtime level: (This is displayed in the Web Services Assistant as the parameter: MINIMUM-
RUNTIME-LEVEL)
This preference specifies the minimum CICS runtime environment that the Web service binding file
can be deployed into. An error message is displayed if you select a level that does not match the other
parameters that you have specified.
The value that you select for this preference is used only if you also select interpretive runtime XML
conversion. If you select compiled runtime XML conversion, then the Enterprise Service Tools wizard
or utility always sets the minimum runtime level to VENDOR.
MINIMUM
The lowest possible runtime level of CICS is allocated automatically given the parameters that you
have specified.
1.0
The generated Web service binding file deploys successfully into a CICS TS 3.1 region that does
not have APARs PK15904 and PK23547 applied. .
152 Developer for z/OS: Developing with Db2, CICS, and IMS
1.1
The generated Web service binding file deploys successfully into a CICS TS 3.1 region that has at
least APAR PK15904 applied.
1.2
The generated Web service binding file deploys successfully into a CICS TS 3.1 region that has
both APAR PK15904 and PK23547 applied.
Note: These APARs are not needed for CICS TS 3.2 and later.
2.0
The generated Web service binding file deploys successfully into a CICS TS 3.2.
2.1
The generated Web service binding file deploys successfully into a CICS TS 3.2 that has APAR
PK59794 applied.
3.0
The generated Web service binding file deploys successfully into CICS TS 4.1
4.0
The generated web service binding file deploys successfully into a CICS TS 5.2 region or later.
With this runtime level, you can use a mapping level of 4.0 or earlier for the MAPPING-LEVEL
parameter.
4.1
The generated web service binding file deploys successfully into a CICS TS 5.3 region or later.
With this runtime level, you can use a mapping level of 4.1 or earlier for the MAPPING-LEVEL
parameter.
4.2
The generated web service binding file deploys successfully into a CICS TS V5.4 with APAR
PI86039 applied, and higher. With this runtime level, you can use a mapping level of 4.2 or earlier
for the MAPPING-LEVEL parameter.
4.3
The generated web service binding file deploys successfully into a CICS TS V5.4 with APAR
PI88519 applied, and higher. With this runtime level, you can use a mapping level of 4.3 or earlier
for the MAPPING-LEVEL parameter.
CURRENT
The generated Web service binding file deploys successfully into a CICS region at the highest
available runtime level as the one you are using to generate the Web service binding file.
CCSID: (This is displayed in the Web Services Assistant as the parameter: CCSID)
Specifies the CCSID that is used at run time to encode data between the application program and the
Web services binding file. The value of this parameter overrides the value of the LOCALCCSID system
initialization parameter. The value must be an EBCDIC CCSID that is supported by Java and z/OS
conversion services. If you do not specify this parameter, the application program uses the CCSID
specified in the system initialization parameter, and the Web service binding file is encoded in US
EBCDIC (Cp037).
User ID: (This is displayed in the Web Services Assistant as the parameter: USERID)
In a service provider, this preference specifies a 1-8 character user ID which can be used by any
Web client. For an application-generated response or a Web service, the alias transaction is attached
under this user ID. The value of this preference is used to define the USERID attribute of the URIMAP
resource when it is created automatically using the PIPELINE scan command.
Valid characters are A-Z a-z 0-9 $ @ #.
Transaction: (This is displayed in the Web Services Assistant as the parameter: TRANSACTION)
In a service provider, this preference specifies the 1-4 character name of an alias transaction that can
start the pipeline or run a user application to compose a HTTP response. The value of this preference
Developing web services and SOA with Enterprise Service Tools 153
is used to define the TRANSACTION attribute of the URIMAP resource when it is created automatically
using the PIPELINE scan command.
Valid characters are A-Z a-z 0-9 $.
Service: (This is displayed in the Web Services Assistant as the parameter: SERVICE)
Use this preference only when directed to do so by IBM support.
Required Batch Options:
• PlatformProperties.xml/CodegenPropertyArray/CodegenProperty
– @name="CONVERSION_TYPE"
– @value="interpretive"
• ServiceSpecification.xml/EISService
Data Truncation: (This is displayed in the Web Services Assistant as the parameter: DATA-
TRUNCATION)
Selecting this option specifies how the CICS native conversion mechanism handles truncated data.
When set to ENABLED, then CICS accepts truncated application data and assumes that missing data
is set to nulls. The ENABLED setting is only supported at mapping levels 3.0 and higher. When set
to DISABLED, then CICS rejects truncated application data and sends an error message. The default
value is DISABLED.
Data screening: (This is displayed in the Web Services Assistant as the parameter:DATA-SCREENING)
Select this option to specify whether application supplied data is screened for errors. When it is set
to ENABLED, any application-supplied runtime data that is inconsistent with the language structure,
is treated as an error and message DFHPI1010 is issued. An error response is returned to the
application. When it is set to DISABLED, data values in application-supplied runtime data that are
inconsistent with the language structure are replaced by default values.
Syncpoint on return (This is displayed in the Web Services Assistant as the parameter:
SYNCONRETURN)
Selecting this option specifies that the remote web service can issue a syncpoint. The implication of
setting this option to YES is that the remote task is committed at return. The remote task is classified
as a separate unit of work (UOW). This means that if the remote web service updates a recoverable
resource and then there is a failure after it returns, the update cannot be backed out. If this option is
defaulted or set to NO and the remote web service issues a syncpoint, then the remote task fails with
ABEND ADPL.
154 Developer for z/OS: Developing with Db2, CICS, and IMS
of the character string is calculated as one character less than the length indicated in the language
structure.
COLLAPSE
Generate XML character data description with the whiteSpace attribute set to "collapse". This
value is only available at mapping levels of 1.2 and higher. This value is the default for mapping
levels 2.1 and higher.
BINARY
Any character arrays defined in the language structure are mapped to fixed length
xsd:base64Binary fields in the WSDL rather than to xsd:string fields.
SOAP Version (This is displayed in the Web Services Assistant as the parameter: SOAPVER)
This preference controls what version of the SOAP protocol binding is generated in a WSDL file by
the single-service project tools. The valid values for this option are "1.1", "1.2", and "ALL". When
a particular version is specified, the SOAP binding conforming to that SOAP protocol version is
generated in the WSDL file. If ALL is selected , both bindings are generated in the WSDL file.
If this option is not specified by the user, then the default value of this option depends on the setting
of the WSDL VERSION: If the requested WSDL version is set to 1.1, then the default value of the
SOAP version is set 1.1. If the requested WSDL version is set to 2.0, then the default value of the
SOAP version is set to 1.2.
In addition, specifying this option forces the setting of the Minimum Runtime Level to a value of 2.0.
For additional information refer to Minimum Runtime Level options.
Note: This option affects only CICS Web services interpretive bottom-up scenario. For more
information on the behavior of the WSBind file with various SOAP versions, see the CICS TS 3.2
documentation.
WSDL Version (This is displayed in the Web Services Assistant as the parameter: WSDL_1.1 or
WSDL_2.0)
This preference controls what version of the WSDL (Web service description) is generated by
Developer for z/OS. Currently the valid values for this option are "1.1" and "2.0". This option affects
only CICS Web services interpretive bottom-up scenario.
Note: Specifying 2.0 as WSDL version forces the minimum runtime level option to be set to 2.0
regardless of the setting of the WSBind mapping level. For more information refer to for see the
description of the mappingLevel attribute (see Mapping Level Description) and the runtimeLevel
attribute (see Runtime Level Description).
Date/Time: (This is displayed in the Web Services Assistant as the parameter: DATETIME)
This preference specifies XML elements are mapped in a bottom-up scenario and is only valid for the
CICS interpretive type (this preference is ignored for the vendor compiled conversion type). Selecting
this option specifies how the XML elements of xsd:dateTime type are mapped into CICS ASKTIME
format. The valid values are PACKED15 or UNUSED.
Note: This preference is only available at mapping level 3.0 and higher.
Char occurs: (This is displayed in the Web Services Assistant as the parameter: CHAR-OCCURS)
This preference specified how character arrays in the language structure are mapped when the
mapping level is 4.0 or higher. For example, PIC X OCCURS 20 . This parameter is only for use by the
COBOL language.
• ARRAY
Character arrays are mapped to an XML array, which means that every character is mapped as an
individual XML element. This also applies on the behavior at mapping levels 3.0 and earlier.
• STRING
This option is default. Character arrays are mapped to an XML string, which means that the entire
COBOL array is mapped as a single XML element.
Developing web services and SOA with Enterprise Service Tools 155
Char usage: (This is displayed in the Web Services Assistant as the parameter: CHAR-USAGE)
In COBOL, the national data type, PIC N, can be used for UTF-16 or DBCS data. This setting is
controlled by the NSYMBOL compiler option. You must set the CHAR-USAGE parameter on the
assistant to the same value as the NSYMBOL compiler option to ensure that the data is handled
appropriately. This is typically set to CHAR-USAGE=NATIONAL when you use UTF-16.
• DBCS
Data from PIC ( n ) fields is treated as DBCS encoded data.
• NATIONAL
This is the default value. Data from PIC ( n ) fields is treated as UTF-16 encoded data.
Truncate null arrays: (This is displayed in the Web Services Assistant as the parameter TRUNCATE-
NULL-ARRAYS)
This preference specifies how structured arrays are processed. If it is enabled, CICS will attempt to
recognize empty records within an array.
Truncate null array values: (This is displayed in the Web Services Assistant as the parameter
TRUNCATE-NULL-ARRAY-VALUES)
This preference specifies which values are treated as empty for TRUNCATE-NULL-ARRAYS processing.
If all of the bytes of storage in a record of a structured array contain nulls, the entire record is
considered to be empty. One or more of the NULL, SPACE, and ZERO values can be specified in a
comma separated list.
• NULL: 0x00, or low-values is treated as empty
• SPACE: 0x40 is treated as empty
• ZERO: 0xF0 is treated as empty
156 Developer for z/OS: Developing with Db2, CICS, and IMS
Default char max length: (This is displayed in the Web Services Assistant as the parameter: DEFAULT-
CHAR-MAXLENGTH)
This preference specifies the default array length of character data in characters for mappings where
no length is implied in the Web service description document, when the mapping level is 1.2. The
value can be a positive integer in the range of 1 to 2147483647.
Default fraction digits: (This is displayed in the Web Services Assistant as the parameter: DEFAULT-
FRACTGION-DIGITS)
This parameter specifies the default number of fraction digits to use in the JSON decimal schema
type. The default value is 3. For COBOL, the valid range is 0 to 17, or 0 to 30 if parameter WIDE-
COMP3 is being used. For C or PL/I, the valid range is 0 to 30.
Char multiplier: (This is displayed in the Web Services Assistant as the parameter: CHAR-MULTIPLIER)
This preference specifies the number of bytes to allow for each character when the mapping level
is 1.2. The value of this parameter can be a positive integer in the range of 1 to 2147483647. All
nonnumeric character-based mappings, are subject to this multiplier. Binary, numeric, zoned and
packed decimal fields are not subject to this multiplier.
This parameter can be useful if, for example, you are planning to use DBCS characters where you
could opt for a multiplier of 3 to allow space for potential shift-out and shift-in characters around
every double byte character at run time.
Inline maxOccurs limit: (This is displayed in the Web Services Assistant as the parameter: INLINE-
MAXOCCURS-LIMIT)
The value specified by this preference is used to decide whether or not to in-line variable repeating
content based on the value of the maxOccurs attribute from the source WSDL file. For a full
description see:
• DFHWS2LS: WSDL to high-level language conversion
Date/Time: (This is displayed in the Web Services Assistant as the parameter: DATETIME)
This preference specifies XML elements are mapped in a top-down scenario and is only valid for the
CICS interpretive type (this preference is ignored for the vendor compiled conversion type). Selecting
this option specifies how the XML elements of xsd:dateTime type are mapped into CICS ASKTIME
format. The valid values are PACKED15 or UNUSED.
Note: This preference is only available at mapping level 3.0 and higher.
Name truncation: (This is displayed in the Web Services Assistant as the parameter: NAME-
TRUNCATION)
This preference specifies how a generated field name is shortened if it is too long for use in the
specified high-level language. This option is available at all mapping levels.
RIGHT
The field name is truncated from the right and a numeric suffix is added if necessary.
LEFT
The field name is truncated from the left and a numeric suffix is added if necessary.
31 - digit decimal support: (This is displayed in the Web Services Assistant as the parameter: WIDE-
COMP3)
This preference controls the maximum size of the pack decimal variable length that is mapping to a
COBOL Language structure. If set to YES, it will use 31 digits for DECIMAL and INTEGER types. If set
to NO (default), the number of digits remains at 18. This option is available at all mapping levels.
Pass-through XML (This is displayed in the Web Services Assistant as the parameter: XML-ONLY)
When this option is selected CICS does not perform any transformations to the XML at all and instead
requires that the application work with the contents of the DFHWS-BODY container directly (see
DFHWS2LS: WSDL to high-level language conversion).
Treat EPR as <xsd:any> type (This is displayed in the Web Services Assistant as the parameter:
WSADDR-ERP-ANY)
Specifies whether CICS transforms a WS-Addressing endpoint reference (EPR) into its components
parts in the language structures or treats the EPR as an <xsd:any> type. Treating the EPR as an
Developing web services and SOA with Enterprise Service Tools 157
<xsd:any> type means that the WSACONTEXT BUILD API can use the EPR XML directly. This option is
not selected by default.
• FALSE
DFHWS2LS behaves typically, transforming the XML to a high-level language structure.
• TRUE
Setting this option to TRUE means that at runtime CICS treats the whole EPR as an <xsd:any> type
and places the EPR XML into a container that can be referenced by the application. The application
can use the EPR XML with the WSACONTEXT BUILD API to construct an EPR in the addressing
context.
Less duplicate names (This is displayed in the Web Services Assistant as the parameter: LESS-DUP-
NAMES)
For PL/I only. This parameter generates non-structural structure field names with _value at the end of
the name to enable direct referencing to the field. The suffix _value is appended only when there is a
name conflict between the structural name and non-structural name.
Underscores as hyphens (This is displayed in the Web Services Assistant as the parameter:
UNDERSCORES-AS-HYPHENS)
For COBOL only. This parameter converts any underscores in the WSDL document to hyphens, rather
than the character X, to improve the readability of the generated COBOL language structures. If any
field name clashes occur, the fields are numbered to ensure they are unique.
No array name indexing (This is displayed in the Web Services Assistant as the parameter NO-ARRAY-
NAME-INDEXING)
This preference is for PL/I only. Ensures that the field names in an array are unique only within the
scope of the higher level structure.
Hyphen as underscores: (This is displayed in the Web Services Assistant as the parameter: HYPHEN-
AS-UNDERSCORES)
For PL/I only. This parameter converts any hyphens in the WSDL document to underscores rather than
the character X, to improve the readability of the generated PL/I language structures. This option is
not selected by default.
158 Developer for z/OS: Developing with Db2, CICS, and IMS
• Create New Service Implementation (top-down) wizard)
Again, the CICS JSON assistant is invoked only when generating output files for the JSON Services for
CICS runtime environment.
The JSON assistant includes two procedures, DFHLS2JS and DFHJS2LS:
• DFHLS2JS generates a JSON service description and a JSON service binding file from a high level
language data structure. This procedure is invoked when you want to expose a CICS application
program as a service provider (bottom-up scenario).
• DFHJS2LS generates a high level language data structure and a JSON service binding file from a JSON
service description. This procedure is invoked when you want to create a service provider program for
a new or existing CICS application or when you want to create a service requester program (top-down
scenario).
Limitation:
• JSON-SCHEMA-CODEPAGE of DFHLS2JS is not supported.
Developing web services and SOA with Enterprise Service Tools 159
2.1
Use this mapping level for CICS TS 3.2 and later with APAR PK59794 applied. At this level you can
enable the following features:
• INLINE-MAXOCCURS-LIMIT
See the description of the Inline maxOccurs limit preference on the DFHWS2LS tab (see Inline
maxOccurs limit).
• XML-ONLY (also called Pass-through XML)
See the description of the Pass-through XML preference on the DFHWS2LS tab (see Pass-
through XML).
• WSDL-NAMESPACE
See the description of the WSDL namespace preference on the WSDL and XSD tab (see WSDL
namespace).
Support has been added for the XML schema element <xsd:any> and the data type xsd:anyType
(for DFHWS2LS) (see Support for <xsd:any> and xsd:anyType).
2.2
Use this mapping level with a CICS TS 3.2 region that has APAR PK69738 applied. Mapping level
2.2 provides the following support:
• Elements with fixed values
• Enhanced support for <xsd:choice> elements
• Abstract data types
• Abstract elements
• Substitution groups
3.0
Use this mapping level for CICS TS 4.1.
4.0
Use this mapping level with a CICS TS 5.2 region or later. At this level, the following features are
available:
• DFHLS2SC and DFHLS2WS support the COBOL OCCURS DEPENDING ON clause and also
supports mapping of COBOL character arrays into XML strings. You can set this behavior by
using the CHAR-OCCURS parameter on the CICS assistants.
• CICS web services support the conversion of application data that is encoded using UTF-16
Unicode.
For more information, see Mapping levels for the CICS assistants.
4.1
Use this mapping level with a CICS TS 5.3 region with APAR PI67641 or later. With this runtime
level, the following features are available:
• TRUNCATE-NULL-ARRAYS and TRUNCATE-NULL-ARRAY-VALUES parameters are supported by
DFHLS2SC, DFHLS2WS, and DFHLS2JS.
4.2
Use this mapping level with CICS TS V5.4 with APAR PI86039 applied, and higher. This runtime
level is primarily for use with DFHJS2LS, but is also included in the CICS web services assistants,
XML assistants, and JSON assistants. It implements support for Additional Properties in JSON,
and also adds support for the following three parameters for DFHJS2LS:
• ADDITIONAL-PROPERTIES-DEFAULT
• ADDITIONAL-PROPERTIES-MAX
• ADDITIONAL-PROPERTIES-SIZE
160 Developer for z/OS: Developing with Db2, CICS, and IMS
4.3
Use this mapping level with CICS TS V5.4 with APAR PI88519, and higher. This runtime level is
primarily for use with DFHJS2LS, but is also included in the CICS web services assistants, XML
assistants, and JSON assistants. This mapping level implements support for multidimensional
arrays in JSON.l.
Minimum runtime level: (This is displayed in the JSON Assistant as the parameter: MINIMUM-
RUNTIME-LEVEL)
This preference specifies the minimum CICS runtime environment that the JSON service binding file
can be deployed into. An error message is displayed if you select a level that does not match the other
parameters that you have specified.
The value that you select for this preference is used only if you also select interpretive runtime XML
conversion. If you select compiled runtime XML conversion, then the Enterprise Service Tools wizard
or utility always sets the minimum runtime level to VENDOR.
MINIMUM
The lowest possible runtime level of CICS is allocated automatically given the parameters that you
have specified.
1.0
The generated JSON Web service binding file deploys successfully into a CICS TS 3.1 region that
does not have APARs PK15904 and PK23547 applied. .
1.1
The generated JSON Web service binding file deploys successfully into a CICS TS 3.1 region that
has at least APAR PK15904 applied.
1.2
The generated JSON Web service binding file deploys successfully into a CICS TS 3.1 region that
has both APAR PK15904 and PK23547 applied.
Note: These APARs are not needed for CICS TS 3.2 and later.
2.0
The generated JSON Web service binding file deploys successfully into a CICS TS 3.2.
2.1
The generated JSON Web service binding file deploys successfully into a CICS TS 3.2 that has
APAR PK59794 applied.
3.0
The generated JSON Web service binding file deploys successfully into CICS TS 4.1
4.0
The generated web service binding file deploys successfully into a CICS TS 5.2 region or later.
With this runtime level, you can use a mapping level of 4.0 or earlier for the MAPPING-LEVEL
parameter.
4.1
The generated web service binding file deploys successfully into a CICS TS 5.3 region or later.
With this runtime level, you can use a mapping level of 4.1 or earlier for the MAPPING-LEVEL
parameter.
4.2
The generated web service binding file deploys successfully into a CICS TS V5.4 with APAR
PI86039 applied, and higher. With this runtime level, you can use a mapping level of 4.2 or earlier
for the MAPPING-LEVEL parameter.
4.3
The generated web service binding file deploys successfully into a CICS TS V5.4 with APAR
PI88519 applied, and higher. With this runtime level, you can use a mapping level of 4.3 or earlier
for the MAPPING-LEVEL parameter.
Developing web services and SOA with Enterprise Service Tools 161
CURRENT
The generated JSON Web service binding file deploys successfully into a CICS region at the
highest available runtime level as the one you are using to generate the JSON Web service binding
file.
CCSID: (This is displayed in the JSON Assistant as the parameter: CCSID)
Specifies the CCSID that is used at run time to encode data between the application program and
the JSON binding file. The value of this parameter overrides the value of the LOCALCCSID system
initialization parameter. The value must be an EBCDIC CCSID that is supported by Java and z/OS
conversion services. If you do not specify this parameter, the application program uses the CCSID
specified in the system initialization parameter, and the JSON Web service binding file is encoded in
US EBCDIC (Cp037).
User ID: (This is displayed in the JSON Assistant as the parameter: USERID)
In a service provider, this preference specifies a 1-8 character user ID which can be used by any
Web client. For an application-generated response or a JSON service, the alias transaction is attached
under this user ID. The value of this preference is used to define the USERID attribute of the URIMAP
resource when it is created automatically using the PIPELINE scan command.
Valid characters are A-Z a-z 0-9 $ @ #.
Transaction: (This is displayed in the JSON Assistant as the parameter: TRANSACTION)
In a service provider, this preference specifies the 1-4 character name of an alias transaction that can
start the pipeline or run a user application to compose a HTTP response. The value of this preference
is used to define the TRANSACTION attribute of the URIMAP resource when it is created automatically
using the PIPELINE scan command.
Valid characters are A-Z a-z 0-9 $.
Service: (This is displayed in the JSON Assistant as the parameter: SERVICE)
Use this preference only when directed to do so by IBM support.
Required Batch Options:
• PlatformProperties.xml/CodegenPropertyArray/CodegenProperty
– @name="CONVERSION_TYPE"
– @value="interpretive"
• ServiceSpecification.xml/EISService
Data Truncation: (This is displayed in the JSON Assistant as the parameter: DATA-TRUNCATION)
Selecting this option specifies how the CICS native conversion mechanism handles truncated data.
When set to ENABLED, then CICS accepts truncated application data and assumes that missing data
is set to nulls. The ENABLED setting is only supported at mapping levels 3.0 and higher. When set
to DISABLED, then CICS rejects truncated application data and sends an error message. The default
value is DISABLED.
Data screening: (This is displayed in the JSON Assistant as the parameter:DATA-SCREENING)
Select this option to specify whether application supplied data is screened for errors. When it is set
to ENABLED, any application-supplied runtime data that is inconsistent with the language structure,
is treated as an error and message DFHPI1010 is issued. An error response is returned to the
application. When it is set to DISABLED, data values in application-supplied runtime data that are
inconsistent with the language structure are replaced by default values.
Syncpoint on return (This is displayed in the JSON Assistant as the parameter: SYNCONRETURN)
Selecting this option specifies that the remote web service can issue a syncpoint. The implication of
setting this option to YES is that the remote task is committed at return. The remote task is classified
as a separate unit of work (UOW). This means that if the remote web service updates a recoverable
resource and then there is a failure after it returns, the update cannot be backed out. If this option is
defaulted or set to NO and the remote web service issues a syncpoint, then the remote task fails with
ABEND ADPL.
162 Developer for z/OS: Developing with Db2, CICS, and IMS
Preferences on the DFHLS2JS tab
The preferences on the DFHLS2JS tab are passed to the JSON assistant only when the scenario type
is Create New Service Interface (bottom-up) and the runtime XML conversion type is interpretive. (The
batch processor equivalent of Create New Service Interface (bottom-up) is the EISService element.)
These preferences are not enabled if the option selected in Mapping level list box or the Minimum
runtime level list box on the Common tab does not support them.
Char varying: (This is displayed in the JSON Assistant as the parameter: CHAR-VARYING)
This preference specifies how character arrays in the language structure are mapped when the
mapping level is 1.2 or higher.
Note: This preference does not apply to Enterprise and other PL/I language structures.
NO
Character arrays are mapped to an xsd:string and are processed as fixed length fields. The
maximum length of the data is equal to the length of the array.
NULL
Character arrays are mapped to an xsd:string and are processed as null-terminated arrays. CICS
adds a terminating null character when transforming from a SOAP message. The maximum length
of the character string is calculated as one character less than the length indicated in the language
structure.
COLLAPSE
Generate XML character data description with the whiteSpace attribute set to "collapse". This
value is only available at mapping levels of 1.2 and higher. This value is the default for mapping
levels 2.1 and higher.
BINARY
Any character arrays defined in the language structure are mapped to fixed length
xsd:base64Binary fields in the WSDL rather than to xsd:string fields.
Date/Time: (This is displayed in the JSON Assistant as the parameter: DATETIME)
This preference specifies XML elements are mapped in a bottom-up scenario and is only valid for the
CICS interpretive type (this preference is ignored for the vendor compiled conversion type). Selecting
this option specifies how the XML elements of xsd:dateTime type are mapped into CICS ASKTIME
format. The valid values are PACKED15 or UNUSED.
Note: This preference is only available at mapping level 3.0 and higher.
Overwrite output: (This is displayed in the JSON Assistant as the parameter: OVERWRITE-OUTPUT)
Controls whether existing CICS BUNDLEs on the file system can be overwritten.
• NO
Any existing BUNDLE is not replaced. If an existing BUNDLE is found DFHJS2LS issues error
message DFHPI9689E and terminates.
• YES
Any existing BUNDLE is replaced. If an existing BUNDLE is found then message DFHPI9683W is
issued to inform you that the file has been replaced.
Char occurs: (This is displayed in the JSON Assistant as the parameter: CHAR-OCCURS)
This preference specified how character arrays in the language structure are mapped when the
mapping level is 4.0 or higher. For example, PIC X OCCURS 20 . This parameter is only for use by the
COBOL language.
• ARRAY
Character arrays are mapped to an XML array, which means that every character is mapped as an
individual XML element. This also applies on the behavior at mapping levels 3.0 and earlier.
• STRING
Developing web services and SOA with Enterprise Service Tools 163
This option is default. Character arrays are mapped to an XML string, which means that the entire
COBOL array is mapped as a single XML element.
Char usage: (This is displayed in the JSON Assistant as the parameter: CHAR-USAGE)
In COBOL, the national data type, PIC N, can be used for UTF-16 or DBCS data. This setting is
controlled by the NSYMBOL compiler option. You must set the CHAR-USAGE parameter on the
assistant to the same value as the NSYMBOL compiler option to ensure that the data is handled
appropriately. This is typically set to CHAR-USAGE=NATIONAL when you use UTF-16.
• DBCS
Data from PIC ( n ) fields is treated as DBCS encoded data.
• NATIONAL
This is the default value. Data from PIC ( n ) fields is treated as UTF-16 encoded data.
Truncate null arrays:(This is displayed in the JSON Assistant as the parameter TRUNCATE-NULL-
ARRAYS)
This preference specifies how structured arrays are processed. If it is enabled, CICS will attempt to
recognize empty records within an array.
Truncate null array values: (This is displayed in the JSON Assistant as the parameter TRUNCATE-NULL-
ARRAY-VALUES)
This preference specifies which values are treated as empty for TRUNCATE-NULL-ARRAYS processing.
If all of the bytes of storage in a record of a structured array contain nulls, the entire record is
considered to be empty. One or more of the NULL, SPACE and ZERO values can be specified in a
comma separated list.
• NULL: 0x00, or low-values is treated as empty
• SPACE: 0x40 is treated as empty
• ZERO: 0xF0 is treated as empty
164 Developer for z/OS: Developing with Db2, CICS, and IMS
If the character or binary data is larger than the value specified in this parameter, it is mapped to a
container and the container name is used in the generated language structure.
Default array maxItems: (This is displayed in the JSON Assistant as the parameter: DEFAULT-ARRAY-
MAXITEMS)
This preference specifies the maximum array boundary to apply, where no maximum occurrence
information (maxItems) is implied in the JSON schema. If this parameter is not set, no maximum limit
is applied. The value of this parameter can be a positive integer in the range 1 to 2147483647. This
parameter can be combined with use of the INLINE-MAXOCCURS-LIMIT parameter to influence how
JSON arrays are mapped into the language structures.
Default char max length: (This is displayed in the JSON Assistant as the parameter: DEFAULT-CHAR-
MAXLENGTH)
This preference specifies the default array length of character data in characters for mappings where
no length is implied in the JSON service description document, when the mapping level is 1.2. The
value can be a positive integer in the range of 1 to 2147483647.
Default fraction digits: (This is displayed in the JSON Assistant as the parameter: DEFAULT-FRACTION-
DIGITS)
This preference specifies the default number of fraction digits to use on a JSON decimal schema type.
The default is 3. For COBOL, the valid range is 0 to 17, or 0 to 30 if parameter WIDE-COMP3 is being
used. For C or PL/I, the valid range is 0 to 30.
Char multiplier: (This is displayed in the JSON Assistant as the parameter: CHAR-MULTIPLIER)
This preference specifies the number of bytes to allow for each character when the mapping level
is 1.2. The value of this parameter can be a positive integer in the range of 1 to 2147483647. All
nonnumeric character-based mappings, are subject to this multiplier. Binary, numeric, zoned and
packed decimal fields are not subject to this multiplier.
This parameter can be useful if, for example, you are planning to use DBCS characters where you
could opt for a multiplier of 3 to allow space for potential shift-out and shift-in characters around
every double byte character at run time.
Inline maxOccurs limit: (This is displayed in the JSON Assistant as the parameter: INLINE-
MAXOCCURS-LIMIT)
The value specified by this preference is used to decide whether or not to in-line variable repeating
content based on the value of the maxOccurs attribute from the source WSDL file. For a full
description see:
• DFHWS2LS: WSDL to high-level language conversion
Date/Time: (This is displayed in JSON Assistant as the parameter: DATETIME)
This preference specifies XML elements are mapped in a top-down scenario and is only valid for the
CICS interpretive type (this preference is ignored for the vendor compiled conversion type). Selecting
this option specifies how the XML elements of xsd:dateTime type are mapped into CICS ASKTIME
format. The valid values are PACKED15 or UNUSED.
Note: This preference is only available at mapping level 3.0 and higher.
Name truncation: (This is displayed in the JSON Assistant as the parameter: NAME-TRUNCATION)
This preference specifies how a generated field name is shortened if it is too long for use in the
specified high-level language. This option is available at all mapping levels.
RIGHT
The field name is truncated from the right and a numeric suffix is added if necessary.
LEFT
The field name is truncated from the left and a numeric suffix is added if necessary.
31 - digit decimal support: (This is displayed in the JSON Assistant as the parameter: WIDE-COMP3)
This preference controls the maximum size of the pack decimal variable length that is mapping to a
COBOL Language structure. If set to YES, it will use 31 digits for DECIMAL and INTEGER types. If set
to NO (default), the number of digits remains at 18. This option is available at all mapping levels.
Developing web services and SOA with Enterprise Service Tools 165
Overwrite output: (This is displayed in the JSON Assistant as the parameter: OVERWRITE-OUTPUT)
Controls whether existing CICS BUNDLEs on the file system can be overwritten.
• NO
Any existing BUNDLE is not replaced. If an existing BUNDLE is found DFHJS2LS issues error
message DFHPI9689E and terminates.
• YES
Any existing BUNDLE is replaced. If an existing BUNDLE is found then message DFHPI9683W is
issued to inform you that the file has been replaced.
Char white space: (This is displayed in the JSON Assistant as the parameter: CHAR-WHITE-SPACE)
Specifies how white space in values of type string is handled by CICS. The default is COLLAPSE.
• COLLAPSE
• REPLACE
• PRESERVE
COLLAPSE
Leading, trailing, and embedded white space is removed and all tabs, new lines, and consecutive
spaces are replaced with single space characters.
REPLACE
Any tabs or new lines are replaced with the appropriate number of spaces.
PRESERVE
Retains any white space in the data value.
Underscores as hyphens (This is displayed in the JSON Assistant as the parameter: UNDERSCORES-
AS-HYPHENS)
For COBOL only. This parameter converts any underscores in the WSDL document to hyphens, rather
than the character X, to improve the readability of the generated COBOL language structures. If any
field name clashes occur, the fields are numbered to ensure they are unique.
Integer as PIC 9: (This is displayed in the JSON Assistant as the parameter: INTEGER-AS-PIC9)
For COBOL and DFHJS2LS only. This parameter generates language structures which contain integer
values from the JSON schema as numerals rather than alphanumeric characters.
No array name indexing: (This is displayed in the JSON Assistant as the parameter NO-ARRAY-NAME-
INDEXING)
This preference is for COBOL and PL/I. Ensures that the field names in an array are unique only within
the scope of the higher level structure.
Hyphens as Underscores: (This is displayed in the JSON Assistant as the parameter: HYPHENS-AS-
UNDERSCORES)
For PL/I only. This parameter converts any hyphens in the JSON schema to underscores rather than
the character X, to improve the readability of the generated PL/I language structures.
Less duplicate names: (This is displayed in the JSON Assistant as the parameter: LESS-DUP-NAMES)
For PL/I only. This parameter generates non-structural structure field names with _value at the end of
the name to enable direct referencing to the field. The suffix _value is appended only when there is a
name conflict between the structural name and non-structural name.
Additional properties default: (This is displayed in the JSON Assistant as the parameter ADDITIONAL-
PROPERTIES-DEFAULT)
It is selectable when the mapping level is 4.2 or higher.
Additional properties settings: (This is displayed in the JSON Assistant as the parameters
ADDITIONAL-PROPERTIES-MAX and ADDITIONAL-PROPERTIES-SIZE)
It is enabled when Additional properties default is selected.
• Additional properties max: You can specify an integer for the maximum number of additional
properties in the range 0-20. The default value is blank, which means unbounded.
• Additional properties size: You can specify an integer for the size in bytes in the range 16-32767.
The default value is 255.
166 Developer for z/OS: Developing with Db2, CICS, and IMS
Setting preferences for the CICS XML Transformation Assistant (XSDBind)
To set preferences for the CICS XML Transformation Assistant (XSDBind), open the XML Assistant
(XSDBind) page in the Enterprise Service Tools preferences. These options affect the generated XSDBind
and language structure files.
These preferences affect the generation of resources only when you are generating files for the XML
Transformation for CICS runtime environment. These preferences do not affect the generation of
resources for the other runtime environments.
To set preferences for the XML Transformation Assistant (XSDBind):
1. In the left pane of the Preferences window, expand Enterprise Service Tools and select XML
Transformation Assistant (XSDBind).
2. Change the preferences (the preferences are described in the following sections).
3. Click OK when done.
Developing web services and SOA with Enterprise Service Tools 167
• Mapping levels 1.0 to 1.2 are supported in CICS TS 3.1 with APAR PK23547 applied.
• Mapping levels 1.0 to 2.1 are supported in CICS TS 3.2 with APAR PK59794 applied.
• Mapping levels 1.0 to 2.2 are supported in CICS TS 3.2 with APAR PK69738 applied.
• Mapping levels 1.0 to 3.0 are supported in CICS TS 4.1.
• Mapping levels 1.0 to 4.0 are supported in CICS TS 5.2.
• Mapping levels 1.0 to 4.1 are supported in CICS TS 5.3 with APAR PI67641 applied.
The use of old mapping levels is recommended only when regenerating the XML binding files for XML
transformation resources that were previously deployed with an old mapping level.
1.0
This is the CICS runtime default mapping level.
1.1
Use this mapping level if you need to regenerate a binding file at this specific level.
1.2
This mapping level provides the following features:
• It enables the Char varying parameter on the DFHLS2SC tab and the DFHSC2LS tab of the
preferences.
• It supports VARYING and VARYINGZ arrays,
Note: Mapping level 1.2 requires APAR PK23547.
2.0
Use this mapping level for CICS TS 3.2.
2.1
Use this mapping level for CICS TS 3.2 and later with APAR PK59794 applied. At this level you can
use the following features:
• INLINE-MAXOCCURS-LIMIT
See the description of the Inline maxOccurs limit preference on the DFHSC2LS tab (see Inline
maxOccurs limit).
Support has been added for the XML schema element <xsd:any> and the data type xsd:anyType
(for DFHSC2LS) (see Support for <xsd:any> and xsd:anyType).
2.2
Use this mapping level with a CICS TS 3.2 region that has APAR PK69738 applied. Mapping level
2.2 provides the following support:
• Elements with fixed values
• Enhanced support for <xsd:choice> elements
• Abstract data types
• Abstract elements
• Substitution groups
3.0
Use this mapping level for CICS TS 4.1.
4.0
Use this mapping level with a CICS TS 5.2 region or later. At this level, the following features are
available:
• DFHLS2SC and DFHLS2WS support the COBOL OCCURS DEPENDING ON clause and also
supports mapping of COBOL character arrays into XML strings. You can set this behavior by
using the CHAR-OCCURS parameter on the CICS assistants.
• CICS web services support the conversion of application data that is encoded using UTF-16
Unicode.
168 Developer for z/OS: Developing with Db2, CICS, and IMS
For more information, see Mapping levels for the CICS assistants.
4.1
Use this mapping level with a CICS TS 5.3 region with APAR PI67641 or later. With this runtime
level, the following features are available:
• TRUNCATE-NULL-ARRAYS and TRUNCATE-NULL-ARRAY-VALUES parameters are supported by
DFHLS2SC, DFHLS2WS, and DFHLS2JS.
Minimum runtime level: (This is displayed in the XML Transformation Assistant as the parameter:
MINIMUM-RUNTIME-LEVEL)
This preference specifies the minimum CICS runtime environment that the XML binding file can be
deployed into. An error message is displayed if you select a level that does not match the other
parameters that you have specified.
The value that you select for this preference is used only if you also select interpretive runtime XML
conversion. If you select compiled runtime XML conversion, then the Enterprise Service Tools wizard
or utility always sets the minimum runtime level to VENDOR.
MINIMUM
The lowest possible runtime level of CICS is allocated automatically given the parameters that you
have specified.
3.0
The generated XML binding file deploys successfully into CICS TS 4.1
4.0
The generated web service binding file deploys successfully into a CICS TS 5.2 region or later.
With this runtime level, you can use a mapping level of 4.0 or earlier for the MAPPING-LEVEL
parameter.
4.1
The generated web service binding file deploys successfully into a CICS TS 5.3 region or later.
With this runtime level, you can use a mapping level of 4.1 or earlier for the MAPPING-LEVEL
parameter.
CURRENT
The generated XML binding file deploys successfully into a CICS region at the highest available
runtime level as the one you are using to generate the XML binding file.
CCSID: (This is displayed in the XML Transformation Assistant as the parameter: CCSID)
Specifies the CCSID that is used at run time to encode data between the application program and
the XML binding file. The value of this parameter overrides the value of the LOCALCCSID system
initialization parameter. The value must be an EBCDIC CCSID that is supported by Java and z/OS
conversion services. If you do not specify this parameter, the application program uses the CCSID
specified in the system initialization parameter, and the XML binding file is encoded in US EBCDIC
(Cp037).
Data Truncation: (This is displayed in the XML Transformation Assistant as the parameter: DATA-
TRUNCATION)
Selecting this option specifies how the CICS native conversion mechanism handles truncated data.
When set to ENABLED, then CICS accepts truncated application data and assumes that missing data
is set to nulls. The ENABLED setting is only supported at mapping levels 3.0 and higher. When set
to DISABLED, then CICS rejects truncated application data and sends an error message. The default
value is DISABLED.
Data screening: (This is displayed in the XML Transformation Assistant as the parameter:DATA-
SCREENING)
Select this option to specify whether application supplied data is screened for errors. When it
is set to ENABLED, any application-supplied runtime data that is inconsistent with the language
structure, is treated as an error and message DFHPI1010 is issued. An error response is returned
to the application. When set to DISABLED, data values in application-supplied runtime data that are
inconsistent with the language structure are replaced by default values.
Developing web services and SOA with Enterprise Service Tools 169
Preferences on the DFHLS2SC tab
The preferences on the DFHLS2SC tab are passed to the XML transformation assistant only when
the scenario type is Create New Service Interface (bottom-up) and the runtime XML conversion type
is interpretive. (The batch processor equivalent of Create New Service Interface (bottom-up) is the
EISService element.)
These preferences are not enabled if the option selected in Mapping level list box or the Minimum
runtime level list box on the Common tab does not support them.
Char varying: (This is displayed in the XML Transformation Assistant as the parameter: CHAR-
VARYING)
This preference specifies how character arrays in the language structure are mapped when the
mapping level is 1.2 or higher.
Note: This preference does not apply to Enterprise and other PL/I language structures.
NO
Character arrays are mapped to an xsd:string and are processed as fixed length fields. The
maximum length of the data is equal to the length of the array.
NULL
Character arrays are mapped to an xsd:string and are processed as null-terminated arrays. CICS
adds a terminating null character when transforming from a SOAP message. The maximum length
of the character string is calculated as one character less than the length indicated in the language
structure.
COLLAPSE
Generate XML character data description with the whiteSpace attribute set to "collapse". This
value is only available at mapping levels of 1.2 and higher. This value is the default for mapping
levels 2.1 and higher.
BINARY
Any character arrays defined in the language structure are mapped to fixed length
xsd:base64Binary fields in the WSDL rather than to xsd:string fields.
Date/Time: (This is displayed in the XML Transformation Assistant as the parameter: DATETIME)
This preference specifies XML elements are mapped in a bottom-up scenario and is only valid for the
CICS interpretive type (this preference is ignored for the vendor compiled conversion type). Selecting
this option specifies how the XML elements of xsd:dateTime type are mapped into CICS ASKTIME
format. The valid values are PACKED15 or UNUSED.
Note: This preference is only available at mapping level 3.0 and higher.
Char occurs: (This is displayed in the XML Transformation Assistant as the parameter: CHAR-OCCURS)
This preference specified how character arrays in the language structure are mapped when the
mapping level is 4.0 or higher. For example, PIC X OCCURS 20 . This parameter is only for use by the
COBOL language.
• ARRAY
Character arrays are mapped to an XML array, which means that every character is mapped as an
individual XML element. This also applies on the behavior at mapping levels 3.0 and earlier.
• STRING
This option is default. Character arrays are mapped to an XML string, which means that the entire
COBOL array is mapped as a single XML element.
Char usage: (This is displayed in the XML Transformation Assistant as the parameter: CHAR-USAGE)
In COBOL, the national data type, PIC N, can be used for UTF-16 or DBCS data. This setting is
controlled by the NSYMBOL compiler option. You must set the CHAR-USAGE parameter on the
assistant to the same value as the NSYMBOL compiler option to ensure that the data is handled
appropriately. This is typically set to CHAR-USAGE=NATIONAL when you use UTF-16.
• DBCS
170 Developer for z/OS: Developing with Db2, CICS, and IMS
Data from PIC ( n ) fields is treated as DBCS encoded data.
• NATIONAL
This is the default value. Data from PIC ( n ) fields is treated as UTF-16 encoded data.
Truncate null arrays: (This is displayed in the XML transformation Assistant as the parameter
TRUNCATE-NULL-ARRAYS)
This preference specifies how structured arrays are processed. If enabled, CICS will attempt to
recognize empty records within an array.
Truncate null array values: (This is displayed in the XML transformation Assistant as the parameter
TRUNCATE-NULL-ARRAY-VALUES)
This preference specifies which values are treated as empty for TRUNCATE-NULL-ARRAYS processing.
If all of the bytes of storage in a record of a structured array contain nulls, the entire record is
considered to be empty. One or more of the NULL, SPACE and ZERO values can be specified in a list
separated by commas.
• NULL
0x00, or low-values is treated as empty
• SPACE
0x40 is treated as empty
• ZERO
0xF0 is treated as empty
Developing web services and SOA with Enterprise Service Tools 171
Default char max length: (This is displayed in the XML Transformation Assistant as the parameter:
DEFAULT-CHAR-MAXLENGTH)
This preference specifies the default array length of character data in characters for mappings where
no length is implied in the Web service description document, when the mapping level is 1.2. The
value can be a positive integer in the range of 1 to 2147483647.
Char multiplier: (This is displayed in the XML Transformation Assistant as the parameter: CHAR-
MULTIPLIER)
This preference specifies the number of bytes to allow for each character when the mapping level
is 1.2. The value of this parameter can be a positive integer in the range of 1 to 2147483647. All
nonnumeric character-based mappings, are subject to this multiplier. Binary, numeric, zoned and
packed decimal fields are not subject to this multiplier.
This parameter can be useful if, for example, you are planning to use DBCS characters where you
could opt for a multiplier of 3 to allow space for potential shift-out and shift-in characters around
every double byte character at run time.
Inline maxOccurs limit: (This is displayed in the XML Transformation Assistant as the parameter:
INLINE-MAXOCCURS-LIMIT)
The value specified by this preference is used to decide whether or not to in-line variable repeating
content based on the value of the maxOccurs attribute from the source XML Schema. For a full
description see:
• Variable arrays of elements
Date/Time: (This is displayed in the XML Transformation Assistant as the parameter: DATETIME)
This preference specifies XML elements are mapped in a top-down scenario and is only valid for the
CICS interpretive type (this preference is ignored for the vendor compiled conversion type). Selecting
this option specifies how the XML elements of xsd:dateTime type are mapped into CICS ASKTIME
format. The valid values are PACKED15 or UNUSED.
Note: This preference is only available at mapping level 3.0 and higher.
Name truncation: (This is displayed in the XML Transformation Assistant as the parameter: NAME-
TRUNCATION)
This preference specifies how a generated field name is shortened if it is too long for use in the
specified high-level language. This option is available at all mapping levels.
RIGHT
This is the default value. The field name is truncated from the right and a numeric suffix is added if
necessary.
LEFT
The field name is truncated from the left and a numeric suffix is added if necessary.
31 - digit decimal support: (This is displayed in the XML Transformation Assistant as the parameter:
WIDE-COMP3)
This preference controls the maximum size of the pack decimal variable length that is mapping to a
COBOL Language structure. If set to YES, it will use 31 digits for DECIMAL and INTEGER types. If set
to NO (default), the number of digits remains at 18. This option is available at all mapping levels.
Less duplicate names (This is displayed in the XML Transformation Assistant as the parameter: LESS-
DUP-NAMES)
For PL/I only. This parameter generates non-structural structure field names with _value at the end of
the name to enable direct referencing to the field. The suffix _value is appended only when there is a
name conflict between the structural name and non-structural name.
Underscores as hyphens (This is displayed in the XML Transformation Assistant as the parameter:
UNDERSCORES-AS-HYPHENS)
For COBOL only. This parameter converts any underscores in the WSDL document to hyphens, rather
than the character X, to improve the readability of the generated COBOL language structures. If any
field name clashes occur, the fields are numbered to ensure they are unique.
172 Developer for z/OS: Developing with Db2, CICS, and IMS
Hyphen as underscores: (This is displayed in the XML Transformation Assistant as the parameter:
HYPHEN-AS-UNDERSCORES)
For PL/I only. This parameter converts any hyphens in the WSDL document to underscores rather than
the character X, to improve the readability of the generated PL/I language structures. This option is
not selected by default.
Default fraction digits: (This is displayed in the XML Transformation Assistant as the parameter:
DEFAULT-FRACTGION-DIGITS)
This parameter specifies the default number of fraction digits to use in the JSON decimal schema
type. The default value is 3. For COBOL, the valid range is 0 to 17, or 0 to 30 if parameter WIDE-
COMP3 is being used. For C or PL/I, the valid range is 0 to 30.
Single-service projects
A single-service project is a project that generates files for a single Web service or XML transformation.
File generation for a single-service project can be done either through a single-service wizard or through
the batch processor.
Single-service projects can generate files for the runtimes shown in Table 27 on page 173. Notice that a
different type of single-service project is required for each runtime environment:
For more information about the types of single-service projects see the following two topics:
• “The types of single-service projects” on page 176
• “Web services development scenarios” on page 134
A single-service project and its folders and subfolders are displayed in the EST Project Explorer view of
the Enterprise Service Tools perspective (see “Folders and subfolders in a single-service project” on page
174).
You can create multiple single-service projects (of any of the types of single-service project) within
the EST Project Explorer. Each single-service project is self-contained and cannot reference resources
in another single-service project. However, you can copy resources from one single-service project to
another.
To see the actual file structure of your workspace, look in the workbench's Navigator view (see Opening
the Navigator view). You may sometimes want to use the Navigator view to move or copy a file that is not
displayed in the EST Project Explorer.
Developing web services and SOA with Enterprise Service Tools 173
Folders and subfolders in a single-service project
This topic describes the folders and subfolders in a single-service project.
A single-service project provides an organizational framework for the source files and the generated files
used in the project. A single-service project can contain the following folders and subfolders:
• A Source folder
• A Generation folder
• A Generation\Target subfolder
• A Deployment folder (created when the deployment operations are requested in the generation
wizards)
• A META-INF folder (created when the deployment operations are requested in the generation wizards)
The Source folder holds files that contain source code or other information that Enterprise Service
Tools needs to generate Web service files. You import these source files into your projects using the
Import Source Files wizard. The following table shows the types of files that you might import into the
Source folder, depending on the type of development that you are doing (bottom-up, meet-in-middle, or
top-down):
The Generation folder and its Target subfolder contain the files that you generate for the single-service
project. Typically the Generation folder contains the files shown in the following table:
The following table shows the types of files that might be generated in the Generation\Target subfolder,
depending on the type of development that you are doing (bottom-up, meet-in-middle, or top-down):
.cpy A COBOL copy book file that contains the request language structure or the
response language structure for a WSDL operation.
174 Developer for z/OS: Developing with Db2, CICS, and IMS
File extension: Type of file:
.pli A PL/I source file that is Web service driver program that includes a request
XML converter program and a response XML converter program.
Developing web services and SOA with Enterprise Service Tools 175
The batch processor
The batch processor is a command-line interface for creating enterprise Web services descriptions and
message converters for CICS® and IMS™ applications.
The batch processor is a command-line alternative to the single-service wizards. It supports the same set
of options as the single-service wizards and generates the same output files. The options are specified
through reusable configuration files.
The advantage of using the batch processor is that you can configure a set of reusable configuration files
once to generate a group of Web services files, and then you can regenerate the group of Web service files
again and again with having to reconfigure all the options.
See “Batch processor” on page 411.
176 Developer for z/OS: Developing with Db2, CICS, and IMS
– WSDL document
Generated artifacts (Compiled XML Conversion)
– WSBIND file (Vendor)
– Web Services for CICS Driver Program
– CICS SOAP Request XML Converter
– CICS SOAP Response XML Converter
– WSDL document
– Request XML Schema
– Response XML Schema
• Scenario: Map to an Existing Service Interface (meet-in-the-middle)
Define mappings between high level language structures and WSDL, XML, or XSD files. You can use
this option to generate XML message processing based on the mappings. You use the Create Mappings
wizard to define the mappings and create compiled converters. When the wizard closes the single-
service mapping editor opens so that you can set the mappings.
Generated artifacts (Compiled XML Conversion)
– XML to COBOL mapping (request)
- Web Services for CICS Driver Program
- CICS SOAP Request XML Converter
- WSBIND file (Vendor)
– COBOL to XML mapping (response)
- Web Services for CICS Driver Program
- CICS SOAP Response XML Converter
- WSBIND file (Vendor)
• Scenario: Create New Service Implementation (top-down) Web Services for CICS only
Generate a high level language structure and XML message processing from a Web service description.
You can use this option to (1) Create a new service provider application program (2) Expose an existing
application program as a service provider or (3) Construct a new service requester application program.
The Interpretive XML Conversion type is the only available conversion technology for this runtime
environment and scenario combination. The top-down artifacts are generated through a wizard that
allows you to specify the properties of the new service application. To assist in writing the new service
application described by the Web service description, generation of a new service provider or service
requester template is provided.
Generated Artifacts (Interpretive XML Conversion)
– Service Requester or Provider Template
– COBOL or PL/I Language Structures
– WSBIND file
• Scenario: Create New MTOM/XOP Service Interface (bottom-up)
Generate an MTOM/XOP compatible Web service description and runtime specific XML message
processing from a high-level language data structure. You can use this option when you expose an
application program as a service provider where language structures are transmitted in binary instead of
an XML representation.
The conversion type choice available for this scenario is and runtime combination isInterpretive XML
Conversion.
XML conversion is accomplished using generated metadata and an XML conversion component built
into the runtime environment. While the Interpretive XML Conversion type has limited support
Developing web services and SOA with Enterprise Service Tools 177
for language structure data types and constructs its requires fewer artifacts and does not involve
compilation of XML converters.
Generated artifacts (Interpretive XML Conversion)
– WSBIND file
– MTOM/XOP document
For additoinal information, see “Generate CICS MTOM/XOP Web Service (Bottom-Up)” on page 271
Related concepts
Related reference
178 Developer for z/OS: Developing with Db2, CICS, and IMS
– XML to COBOL mapping (request)
- SOAP for CICS Driver Program
- CICS SOAP Request XML Converter
– COBOL to XML mapping (response)
- SOAP for CICS Driver Program
- CICS SOAP Response XML Converter
Related concepts
Related reference
Developing web services and SOA with Enterprise Service Tools 179
• Scenario: Create New XML Transformation (top-down) XML Transformation for CICS only
Generate a high level language structure and XML message processing from an XML schema.
The Interpretive XML Conversion type is the only available conversion technology for this runtime
environment and scenario combination. The top-down artifacts are generated through a wizard that
allows you to specify the properties of the new service application.
Generated Artifacts (Interpretive XML Conversion)
– Language Structures (copybooks)
– XSDBIND file
Related concepts
Related reference
180 Developer for z/OS: Developing with Db2, CICS, and IMS
New language structures for JSON web services are created using an interface that is described within
existing JSON Request and Response schemas. The RESTful interaction pattern is used in combination
with HTTP. In this context, the resource's identity is its URI. The data type is its Media Type, and the
actions are made up of the standard HTTP methods (GET, PUT, POST, and DELETE). An application must
be created to use the new language structures, and it has to behave differently depending on the HTTP
method that was used for the incoming request.
Generated artifacts (Request-Response interaction pattern)
– Request file copybook
– Response file copybook
– WSBIND file
Generated artifacts (RESTful interaction pattern)
– Request file copybook
– WSBIND file
Related concepts
Related reference
Rendering data as JSON
Developing web services and SOA with Enterprise Service Tools 181
Interface takes you to a wizard where you select the source and target for the mapping. After you select
the source and target of the mapping, the single-service mapping editor opens.
Generated artifacts (Compiled XML Conversion)
– XML to COBOL or PL/I mapping (request message)
- IMS SOAP Driver Program
- IMS SOAP Request XML Converter
- IMS Correlator (runtime metadata)
– COBOL or PL/I to XML (response message)
- IMS SOAP Driver Program
- IMS SOAP Response XML Converter
- IMS Correlator (runtime metadata)
• Scenario: Create New Service Implementation (top-down) IMS Enterprise Suite SOAP Gateway with
Compiled Conversion and Enterprise PL/I language only
Note: Currently this scenario is supported only in the batch processor (see “Batch processor” on page
411).
WSDL2PLI scenario: This scenario is referred to as the WSDL2PLI (WSDL to PL/I) scenario.
In this scenario a new IMS Enterprise Suite SOAP Gateway Web service provider program supporting
one or more operations is created from the information in a WSDL file.
Single-service tools APIs are also provided to handle the transmission and receipt of SOAP language
structures on the IMS Message Queue or in IMS Connect.
Generated artifacts (see “ Output files generated in the WSDL2PLI scenario” on page 404):
– IMS Enterprise Suite SOAP Gateway Driver program supporting multiple operations
– For each operation:
- Request language structure
- Response language structure
- IMS Connect Request Converter
- IMS Connect Response Converter
– Multi-operation, multi-converter IMS Correlator file (runtime metadata)
Components:
– The single-service component that does common processing for this scenario is WSDL2ELS (WSDL to
Enterprise Language structure).
– The single-service component that does PL/I-specific processing for this scenario is WSDL2PLI
(WSDL to PL/I).
Related concepts
Related reference
182 Developer for z/OS: Developing with Db2, CICS, and IMS
Batch, TSO, z/OS UNIX System Services project
This topic describes scenarios typical for the Batch, TSO, z/OS UNIX System Services project.
Use Batch, TSO, z/OS UNIX System Services runtime environment to generate Web services
components that are not runtime-specific. For example, you can have your own Web service processing
environment (such as SOAP servers) or you want to use XML message-based Web service interface for
program-to-program communication.
The following scenarios are supported:
• Scenario: Create New Service Interface (bottom-up)
Generate a Web service description and XML message processing from a high level language structure.
You can use this option when you expose an application program as a service provider.
Generated artifacts
– Batch Driver Program
– Request XML Converter
– Response XML Converter
– WSDL document
– Request XSD
– Response XSD
Related concepts
Developing web services and SOA with Enterprise Service Tools 183
Table 28. Enablement scenarios for single-service projects
Supported File Supported Runtime
Scenarios Action Description Extensions Environments
Create New Service Create XML Generates a .cbl, .cpy, .cob, .ccp • Web services for
Interface (bottom- conversion artifacts service description CICS
up), Interpretive or (interpretive or and runtime-specific
• IMS Enterprise
Compiled compiled) for XML message
Suite SOAP
target runtime processing from a
Gateway
environment. high level language
structure. You can • Batch, TSO, and
use this option z/OS UNIX System
when you expose an Services
application program
as a service
provider.
Create New Service Create XML Generates a .pli, . inc, .mac • IMS Enterprise
Interface (bottom- conversion artifacts service description Suite SOAP
up), Compiled (compiled only) and runtime-specific Gateway
for target runtime XML message
• Batch, TSO, and
environment. processing from a
z/OS UNIX System
high level language
Services
structure. You can
use this option
when you expose an
application program
as a service
provider.
Create New Service Create XML Generates a .pli, . inc, .mac • Web services for
Interface (bottom- conversion artifacts service description CICS
up), Compiled or (interpretive or and runtime-specific
• IMS Enterprise
Interpretive compiled) for XML message
Suite SOAP
target runtime processing from a
Gateway
environment. high level language
structure. You can • Batch, TSO, and
use this option z/OS UNIX System
when you expose an Services
application program
as a service
provider.
184 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 28. Enablement scenarios for single-service projects (continued)
Supported File Supported Runtime
Scenarios Action Description Extensions Environments
Create New Service (a) Create language Generates a high .wsdl Web services for
Implementation structure include level language CICS
(top-down) files and template structures and
Service Provider or runtime-specific
Service Requester XML message
program in desired processing from
language. (b) a Web service
Create XML description. You can
conversion artifacts use this option
(interpretive to (1) Create a
WSBIND only). new service provider
application program
(2) Expose an
existing application
program as a service
provider or (3)
Construct a new
service requester
application program.
Create New Service From the Generates an IMS .wsdl IMS Enterprise Suite
Implementation information in Enterprise Suite SOAP Gateway
(top-down) a multi-operation SOAP Gateway
WSDL file, create Web service and
Note: Available
a new IMS supporting files
only in the batch
Enterprise Suite (see “ Output files
processor.
SOAP Gateway Web generated in the
service provider WSDL2PLI scenario”
program supporting on page 404).
multiple operations.
Map to an Existing Create XML Define mappings .cbl, .cpy, .cob, .ccp, • Batch, TSO, and
Service Interface conversion artifacts between high level .wsdl, .xml, .xsd z/OS UNIX System
(meet-in-middle), (compiled only) for language structures Services
Compiled request or response and WSDL, XML, or
• Web services for
mapping. XSD files. You can
CICS
use this option to
Generates runtime- • IMS Enterprise
specific XML Suite SOAP
message processing Gateway
based on the
mappings.
Create New Create XML Generates files .cbl, .cpy, .cob, .ccp XML Transformation
XML Transformation conversion artifacts for the XML for CICS
(bottom-up), (compiled) for Transformation and
Compiled target runtime runtime-specific
environment. XML processing from
a high level language
data structure.
Developing web services and SOA with Enterprise Service Tools 185
Table 28. Enablement scenarios for single-service projects (continued)
Supported File Supported Runtime
Scenarios Action Description Extensions Environments
Create New Create XML Generates files cbl, .cpy, .cob, .ccp, . XML Transformation
XML Transformation conversion artifacts for the XML pli, .inc, .mac for CICS
(bottom-up), (interpretive) for Transformation and
Interpretive target runtime runtime-specific
environment. XML processing from
a high level language
data structure.
Create New XML Create XML Generates a high- .xsd, .wsdl XML Transformation
Transformation (top- conversion artifacts level language for CICS
down) (interpretive). structure and
runtime-specific
XML processing from
an XSD or a WSDL
file.
Related concepts
For more information see the topic describing each type of single-service projects (see “The types of
single-service projects” on page 176).
Table 29 on page 186 shows the types of files that can be selected as source files for the single-service
wizards.
Table 29. File extensions of files that can be selected as source files for the single-service wizards
Development scenario: COBOL: PL/I:
Bottom-Up .cbl, .cpy, .cob, .ccp .pli, . inc, .mac
Top-Down .wsdl .wsdl
.cbl, .cpy, .cob, .ccp, .wsdl, .xml, . pli, .inc, .mac, .wsdl, .xml, .xsd
Meet-in-Middle
xsd
Table 30 on page 187 shows supported combinations of runtime environments, development scenarios,
programming languages, conversion types, and application modes. A em-dash (—) indicates that a
combination is not supported.
186 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 30. Runtimes, development scenarios, programming languages, conversion types, and application
modes
For COBOL: For PL/I:
Develoment
Runtime: Compiled Interpretive Compiled Interpretive
scenario:
conversion: conversion: conversion: conversion:
Web Services • Service • Service
for CICS provider provider
Top-Down — —
• Service • Service
requester requester
• Service
Meet-in-Middle — — —
provider
• Service • Service • Service
Bottom-Up —
provider provider provider
XML • Service • Service
Top-Down — —
Transformatio provider provider
n for CICS2
Meet-in-Middle — — — —
• Service • Service • Service
Bottom-Up —
provider provider provider
JSON Services • Service • Service
Top-Down — —
for CICS provider provider
project
Meet-in-Middle — — — —
• Service • Service
Bottom-Up — —
provider provider
IMS Enterprise • Service
Suite SOAP provider (batch
Top-Down — — —
Gateway processor
only)1
• Service • Service
provider provider
Meet-in-Middle — —
• Service • Service
requester requester
• Service • Service
Bottom-Up — —
provider provider
Meet-in-Middle — — — —
• Service • Service
Bottom-Up — —
provider provider
Batch, TSO, Top-Down — — — —
and Unix
• Service • Service
System Meet-in-Middle — —
provider provider
Services3
• Service • Service
Bottom-Up — —
provider provider
Developing web services and SOA with Enterprise Service Tools 187
Table 30. Runtimes, development scenarios, programming languages, conversion types, and application
modes (continued)
For COBOL: For PL/I:
Develoment
Runtime: Compiled Interpretive Compiled Interpretive
scenario:
conversion: conversion: conversion: conversion:
1This
scenario is supported only in the batch processor.
2TheTXSeries for Multiplatforms runtime is supported only for the bottom-up scenario, service provider
mode, and interpretive conversion.
188 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 31. Methods for Launching A New Project Wizard (continued)
Method Steps to follow:
Use the drop-down menu in the Enterprise Service 1. In the Enterprise Service Tools Project Explorer,
Tools Project Explorer. select the icon for the drop-down menu (see
“Drop-down menu (for creating new projects
and artifacts)” on page 140). The drop-down
menu opens.
2. Select the type of project that you want to
create:
• Web Services for CICS Project
• JSON Services for CICS project
• IMS Enterprise Suite SOAP Gateway Project
• XML Transformation for CICS
• Batch, TSO, and z/OS UNIX System Services
Project
The new single-service wizard opens for the type of
single-service project that you selected.
Developing web services and SOA with Enterprise Service Tools 189
The wizard creates the new project in the Enterprise Service Tools Project Explorer. If you created a list
of source files to import, the imported source files are copied to the Source folder of the project (see
“Folders and subfolders in a single-service project” on page 174).
Prerequisite
Before you can import files from a remote system, you must first create a connection to the remote
system (see the topic "Connecting to a remote system" in the online help).
The basic steps for creating a connection to the remote system are as follows:
1. Use the Remote Systems view to create connections to JES, to MVS and (if applicable) to z/OS UNIX
System services.
190 Developer for z/OS: Developing with Db2, CICS, and IMS
2. Use the Remote Systems view to start the new connection to the remote z/OS system.
• The following message may appear if, for example, you have specified a PDS that does not exist in
the SYSLIB.
2. If you see error messages related to "COPY library not found" when you are try to generate output
files from a single-service project, it is possible that files on which an imported COBOL source file has
dependencies were not imported with the COBOL source file into your Enterprise Service Tools project.
To resolve this problem, provide all the PDSs which contain the dependencies, and import the source
file again.
Developing web services and SOA with Enterprise Service Tools 191
Related information
Opening the Preferences window
Prerequisite
Before you can import files from a remote system, you must first create a connection to the remote
system (see the topic "Connecting to a remote system" in the online help).
The basic steps for creating a connection to the remote system are as follows:
1. Use the Remote Systems view to create connections to JES, to MVS and (if applicable) to z/OS UNIX
System services.
2. Use the Remote Systems view to start the new connection to the remote z/OS system.
192 Developer for z/OS: Developing with Db2, CICS, and IMS
Troubleshooting information for importing PL/I source files
If you encounter errors when trying to download a PL/I source file from a remote system, consult the
following checklist of common problems:
1. The following messages may appear in the Refresh Dependencies Problems window. Click Details to
display the specific error message:
• The following message may appear if the JES subsystem is not connected.
• The following message may appear if, for example, you have specified a PDS that does not exist in
the SYSLIB.
2. If you see error messages related to "Cannot find/open INCLUDE file" when you are try to generate
output files from a single-service project, it is possible that files on which an imported PL/I source file
has dependencies that were not imported with the PL/I source file into your Enterprise Service Tools
project. To resolve this problem, provide all the PDSs which contain the dependencies, and import the
source file again.
Related information
Opening the Preferences window
Developing web services and SOA with Enterprise Service Tools 193
• “Setting preferences for COBOL XML converters” on page 145
• “Setting preferences for PL/I XML converters” on page 149
• “Setting preferences for the CICS Web Services Assistant (WSBind)” on page 150
• “Setting preferences for the CICS XML Transformation Assistant (XSDBind)” on page 167
194 Developer for z/OS: Developing with Db2, CICS, and IMS
Creation of generation properties files for the batch processor
The single-service wizard automatically creates three generation properties files for the batch processor.
These files contain the values for the various options that you specified as you went through the pages of
the wizard.
You can then use these generation properties files with the batch processor at any time to re-create the
files generated by the single-service wizard.
The default names of the files are:
• Container.xml
• PlatformProperties.xml
• ServiceSpecification.xml
You can specify different names for these files on the Properties tab of the File, data set, or member
selection page of the wizard (see “Properties tab” on page 213).
Developing web services and SOA with Enterprise Service Tools 195
Starting the single-service wizard
To start a single-service wizard from the Remote Systems view:
1. Open the Remote Systems view:
a. On the main menu of the workbench, select Window > Show View > Remote Systems.
b. The Remote Systems view opens.
2. Use the Remote Systems view to create a connection to MVS on the remote z/OS system (see Creating
a connection to a z/OS system).
3. Start the connection (see Connecting to a remote system).
4. Expand MVS Files > My Data Sets.
5. Right-click the partitioned data set that you want to use.
6. Right-click a COBOL data set member file (the file extension must be .cbl, .cob, .ccp, or .cpy).
7. Select Enable Enterprise Web Service. The Wizard Launchpad opens.
8. In the Wizard Launchpad:
a. Select the appropriate runtime environment, development scenario, application mode, and
conversion type.
Note: In this context some of the selections on the Wizard Launchpad and in the Create New
Service Interface (bottom-up) wizard are different. See “Differences in the Wizard Launchpad and
wizard pages” on page 196.
b. Click Start.
9. The single-service wizard opens.
196 Developer for z/OS: Developing with Db2, CICS, and IMS
• On the WSDL and XSD tab:
– The WSDL file container field is empty. You must specify a file container in this field.
– For the Web Services for CICS target runtime environment:
- On the Web Services for CICS page, on the Basic Options tab, the field WSBind file container is
empty. You must specify a file container in this field.
– For the IMS Enterprise Suite SOAP Gateway runtime environment, on the Correlator Properties tab,
the field Correlator file container is empty.
- Specify a PDS that has a record type of VB or VBA.
• If you selected Interpretive XML Conversion in the launchpad:
– On the page DFHLS2WS: High Level Language to WSDL Conversion, on the tab Service Artifacts,
the field File container is empty. You must specify a file container in this field.
Limitations when you open the launchpad from the Remote Systems view
You should be aware of the following limitations when you open the Enterprise Service Tools Wizard
Launchpad from the Remote Systems view:
• The launchpad is available only if you right-click a remote COBOL member on MVS.
• From the launchpad, only the Create New Service Interface (bottom-up) wizard is available.
• On the launchpad, the Save generation properties option is not supported in this context.
• The batch processor does not support this option.
then two possible causes for this error are as follows (there are other possible causes):
– The COBOL source file (extension .cbl, .cob, or .ccp) that you right-clicked before opening the
launchpad has dependencies, but when the Create New Service Interface (bottom-up) wizard
prompted, "Does your source file have any dependent files?", you selected No (see “Differences
in the Wizard Launchpad and wizard pages” on page 196).
– The COBOL copybook file source file (extension .cpy) that you right-clicked before opening the
launchpad has dependencies. You cannot specify a COBOL copybook file unless it has no
dependencies.
• When the wizard is checking dependencies, the wizard can display in the Check Dependencies window
one of the following error messages:
– If the JES system is not connected, then the wizard displays the following error message:
– If there is a JCL error (for example, you specified a PDS that does not exist in the SYSLIB), then the
wizard displays the following message:
Developing web services and SOA with Enterprise Service Tools 197
Starting a single-service wizard in another perspective
This topic describes how to start a single-service wizard in a workbench perspective other than Enterprise
Service Tools.
Note: Although this feature is still supported, the recommended way to start a single-service wizard is
from a single-service project in the Enterprise Service Tools perspective (see “Starting a single-service
wizard from a single-service project” on page 194).
198 Developer for z/OS: Developing with Db2, CICS, and IMS
Copying source files into a project using the Navigator view
This topic describes how to copy source files into the workbench's Navigator view, so that you can use the
source files when you run a single-service wizard in a perspective other than the Enterprise Service Tools
perspective.
These instructions assume that the target directory in the Navigator view resides in a local project in the
z/OS Projects view of the z/OS perspective.
To copy the source files:
1. Create a folder for source files in the new local project, if you have not already done so:
• In the z/OS Projects view, right-click the name of the new local project (such as COBOL Project
0001).
• Select New > Folder. The New Folder wizard opens.
• In the New Folder wizard:
a. Select from the list the name of the project in which you want to create the folder.
b. In the Folder name input field, type the name that you want to use for the new folder (such as
Source).
c. Click Finish.
The new folder is created.
2. Open the Navigator view:
a. On the main menu of the workbench, select Window > Show View > Other. The Show View wizard
opens.
b. In the Show View wizard:
i) Select General > Navigator.
ii) Click OK.
The Navigator view opens, showing all the projects in the current workspace.
3. Copy the files into the new folder:
a. In the Navigator view, select the target folder, such as Source. (This is the same folder that you
created in the z/OS Projects view in Step 1, but now you are viewing it in the Navigator view.)
b. From an application in the operating system of the workstation drag the source files into the new
folder in the Navigator view.
Note: If you want to run a top-down scenario using a WSDL file with imported schemas, then you
should copy the whole directory structure into new folder.
4. Close the Navigator view.
Developing web services and SOA with Enterprise Service Tools 199
3. Select or clear the Reuse existing generation properties checkbox (see the “The Reuse existing
generation properties checkbox” on page 200 ).
4. Click Start. The appropriate single-service wizard opens.
The values selected on the launchpad in Step 1 determine which single-service wizard is started and
which options it presents.
Note:
• Not all combinations of runtime environment, development scenario, application mode, and conversion
type are available on the Wizard Launchpad (see “Table of runtimes, scenarios, languages, conversion
types, and modes” on page 186).
• The Wizard Launchpad does not support the XML Transformation for CICS runtime.
• Both the Reuse generation properties and the Reuse generation properties options are only available
for local projects.
200 Developer for z/OS: Developing with Db2, CICS, and IMS
Overview of bottom-up (compiled) wizard pages
This topic provides an overview of the pages in the wizards with compiled XML conversion.
For this wizard and conversion type, the pages common to all runtimes are as follows:
• Language Structures page
• Generation options page
• File, data set, or member selection page
The pages peculiar to a particular runtime or application mode are:
• Web Services for CICS page
• IMS Enterprise Suite SOAP Gateway Web Service Provider page
• XML Transformation for CICS page
Table 32 on page 201 summarizes which pages and tabs are available for the supported runtime
environments:
Developing web services and SOA with Enterprise Service Tools 201
Table 32. Bottom-Up Compiled Wizard Page and Tab Overview (continued)
Runtime Environment
Wizard Page and Tabs: (See Note)
W I B T
XML Transformation for CICS page:
• Basic Options X
• Advanced Options
Note:
• W stands for Web Services for CICS
• I stands for IMS Enterprise Suite SOAP Gateway
• B stands for Batch, TSO, and z/OS UNIX System Services
• T stands for XML Transformation for CICS
To set default values for some of the fields on this page, use the COBOL XML Converters page in the
Preferences window (see “Setting preferences for COBOL XML converters” on page 145). or use the PL/I
XML Converters page in the Preferences window (see “Setting preferences for PL/I XML converters” on
page 149).
202 Developer for z/OS: Developing with Db2, CICS, and IMS
XML Converters tab
The XML Converters tab allows you to specify identification attributes and character encodings.
This tab contains the following fields:
• In the Specify identification attributes group:
Converter program name prefix:
Type the stem of the program name that is included in the IDENTIFICATION DIVISION of each
generated COBOL program. If you type ACCT, for example, the wizard identifies the input converter
program as ACCTI, the output converter program as ACCTO, and the driver as ACCTD.
Author name:
Type the value to be included in the AUTHOR paragraph of each generated COBOL program.
<CodegenPropertyname="com.ibm.etools.xmlent.ui.GEN_COMPILE_OPTIMIZE"value="false"/>
– If you choose optimization by selecting the Optimization selection box on the “XML Converters
tab” on page 203, the OPTIMIZE compiler option is generated as “OPT(2)” unlike COBOL
compiler versions 4 and earlier (there was only one level of optimization and it was specified
as OPT). You can achieve the same OPT option behavior by using the Batch processor with the
code generation option by specifying
<CodegenPropertyname="com.ibm.etools.xmlent.ui.GEN_COMPILE_OPTIMIZE"value="true"/>
Restriction: There are no options to select intermediate optimization levels that are provided
by the COBOL v 5.2 compiler. COBOL v 5.2 compiler optimization levels other than OPT(0) and
OPT(2) are not supported.
• In the Specify character encodings group:
Request code page
Select the code page for encoding the XML input message.
Note:
– In the Web Services for CICS runtime environment, when compiled conversion is selected, CICS
performs the conversion of the text between the code page used by the Web service client and
the code page used by the Web service.
Developing web services and SOA with Enterprise Service Tools 203
– In the other runtime environments, when compiled conversion is used, the Web service client is
responsible for the conversion between its own code page and the code page used by the Web
service.
Use the host code page as the intermediate encoding for XML
Selecting this option can significantly improve Compiled XML Conversion performance on SBCS
EBCDIC hosts. This option is enabled by default when the host code page is EBCDIC SBCS. Clear
this checkbox only if the names of mapped XML elements or attributes contain characters that do
not exist in the host code page.
Service name:
Type a name for the web service.
It is a good idea to choose a web service name that is descriptive and that allows for future
development. For example, a service named StockAdvisorService might include related
operations getStockQuote and getHighestPrice.
Operation name:
Type a name for the operation that is provided by the web service that is previously specified in
Service name.
It is a good idea to choose a name that describes the action that is performed by the operation - for
example, getStockQuote.
WSDL namespace:
This value sets the namespace for the generated WSDL file.
Note: Setting a value in this field in the compiled conversion scenario is equivalent to the WSDL-
NAMESPACE parameter of the CICS web services Assistant DFHLS2WS. The default value is
generated by the DFHLS2WS and full description of it can be found in the CICS Transaction Server
V 4.1 IBM Documentation, see http://www-01.ibm.com/support/knowledgecenter/SSGMCP_4.1.0/
com.ibm.cics.ts.webservices.doc/reference/dfhws_ls2ws.html or CICS® Transaction Server for z/OS,
Version 4 Release 1 IBM Documentation.
204 Developer for z/OS: Developing with Db2, CICS, and IMS
SOAPAction:
Type the value that you want to use for the soapAction attribute of the soap:operation element in
the WSDL file that the wizard generates for the web service. A blank value causes the soapAction
attribute to be set to the empty string.
• In the Specify request XML Schema properties group:
Target namespace:
Type the namespace and schema name of the XML schema that you want to use as the request XML
schema. For example,
http://www.StartAppI.com/schemas/StartAppIInterface
ProgramPassFields
Note: By default, the source program name and a character designator I for request (formally
Inbound) is used. You can override the default by editing the text in the field.
Whitespace option:
Specifies the conversion treatment for all elements in the generated schema. Select one of the
following values:
– collapse - (1) replace tab, line feed, and carriage return characters with spaces, (2) trim leading
and trailing spaces, and (3) substitute a single space for each contiguous sequence of spaces.
– replace - replace tab, line feed, and carriage return characters with spaces.
– preserve - no whitespace removal nor replacement is performed.
– compact - trim leading and trailing spaces - substitute a single space for each contiguous
sequence of spaces.
• In the Specify response XML Schema properties group:
Target namespace:
Type the namespace and schema name of the XML schema that you want to use as the response
XML schema. For example,
http://www.StartAppO.com/schemas/StartAppOInterface
ProgramPassFields
Note: By default, the source program name and a character designator O for response (formally,
Outbound) is used. You can override the default by editing the text in the field.
Whitespace option:
Specifies the conversion treatment for all elements in the generated schema. Select on of the
following values:
– collapse - (1) replace tab, line feed, and carriage return characters with spaces, (2) trim leading
and trailing spaces, and (3) substitute a single space for each contiguous sequence of spaces.
– replace - replace tab, line feed, and carriage return characters with spaces.
– preserve - no whitespace removal nor replacement is performed.
– compact - trim leading and trailing spaces - substitute a single space for each contiguous
sequence of spaces.
Developing web services and SOA with Enterprise Service Tools 205
Advanced Options tab
The Advanced Options tab allows you to specify XML Schema generation properties, request and
response XML converter behavior, and compiler-related preferences.
This tab contains the following fields:
• In the Specify XML Schema generation properties group:
Generate minimum hierarchy in XML Schemas
This checkbox controls the message format of the generated XML schema and consequently the
parsing and generation of XML in the XML converters. XML converters based on XML schemas having
minimized hierarchies tend to have better performance.
– Select this checkbox if you want the XML converters to be generated so as to use a reduced XML
structure hierarchy, when a more detailed structure hierarchy is not needed to uniquely identify
each element in the structure.
When there are elements with the same tag name, the name of the element that occurs later in
the document is prefixed with as many of its parent tags as are required produce a unique name.
This method increases the efficiency of message processing clients and reduces the number and
complexity of objects that need to be instantiated.
– Clear this checkbox if you want the wizard to generate an XML schema that represents the full
hierarchy of the language structure.
01 ServiceRequest.
02 CommonHeader.
05 HeaderType1.
10 Element1 PIC X(10).
the complex XML type name for the HeaderType1 element is:
– servicerequest_commonheader_headertype1 if the checkbox is not selected.
– HeaderType1 if the checkbox is selected.
The shortening of complex type names allows for the generation of more compact client code
(usually, Java class code) from the WSDL and XSD files containing the complex XML types.
The setting of this checkbox has no effect on top-down or meet-in-middle scenarios.
When shortening of a complex type name is attempted, a collision is possible if the short name of
the type already exists as the result of a previously defined type for a group with an identical name
but different parent group names. For example, in the following COBOL structure:
01 ServiceRequest.
02 CommonHeader.
206 Developer for z/OS: Developing with Db2, CICS, and IMS
05 HeaderType.
10 Element PIC X(10).
02 SpecificHeader.
05 HeaderType.
10 Element PIC X(10).
the type name of the HeaderType group under SpecificHeader collides with the type name of
the HeaderType group under CommonHeader.
In case of a collision all colliding names keep the original long type names. Thus, in this example,
the resulting type names are:
– servicerequest_commonheader_headertype and
– servicerequest_specificheader_headertype.
The short name for a complex type is formed by taking the name of the XML element that has that
type, plus some possible modifications. The rules for forming short names are:
1. Take the name of the XML element that has the type (such as HeaderType1).
2. If the name starts with a character that is an invalid character for Java names (for example, a
digit), it is prefixed with a double underscore "__".
3. If a hyphen "-" is present in the original COBOL group name it is replaced with a single
underscore "_".
4. The case of the group name is preserved.
For example, the following group:
03 2-In--B.
04 var2 blank zero pic 999.99.
Developing web services and SOA with Enterprise Service Tools 207
Use VALUE literals to initialize empty data items
Select this checkbox to enable initialization for data items in the request language structure that
you have included in the Web service input data structure (see “Initializing data items in the COBOL
application's input data structure” on page 325 ).
This option applies only to the bottom-up scenario for generating a Web service, and applies only if
you specify Compiled XML Conversion.
208 Developer for z/OS: Developing with Db2, CICS, and IMS
Log file name:
Type the name for the CICS Web Services Assistant log file. The log file contains extensive
information regarding generation of the WSBind file.
Developing web services and SOA with Enterprise Service Tools 209
IMS Enterprise Suite SOAP Gateway service provider
The IMS SOAP Gateway Service Provider page is included in the wizard pages when the selected host
runtime is IMS Enterprise Suite SOAP Gateway and the selected application mode is Service Provider
in the wizard launch pad.
This page allows you to specify options for the IMS Correlator file.
File container
Type or the select the path of the folder in which you want the wizard to generate the IMS correlator
file.
File name
This field displays the name of the IMS correlator file that the wizard is to generate. You can modify
this field by changing the name in the SOAPAction field.
Update, Overwrite
These radio buttons are enabled to update or overwrite the IMS correlator file that you specified in
the File container and File name fields:
– Select Update if you want the wizard to do the following:
1. Preserve all the existing entries in the IMS correlator file; and
2. Add or update information for the current Web service and operation on the WSDL and XSD
tab of the Generation Options page of the wizard.
– Select Overwrite if you want the wizard to overwrite the existing IMS correlator file.
Entries in the IMS correlator file are identified by a combination of the Web service name and the
operation name. If you specify a Web service name and an operation name that already exist in the
IMS correlator file, then the wizard initializes the request and response schema properties on this
page with the values from the IMS correlator file.
• In the Specify IMS Enterprise Suite SOAP Gateway and IMS Connect interaction properties group:
Transaction code
Type the name of the IMS transaction that is to be invoked by the Web service.
This name must be alphanumeric and must contain 8 characters or less.
210 Developer for z/OS: Developing with Db2, CICS, and IMS
Inbound connection bundle
Type the name of the connection bundle that the Web service uses to connect to IMS Enterprise
Suite SOAP Gateway.
Connection bundles are defined in the connection specification XML file maintained by the IMS
Enterprise Suite SOAP Gateway and can be updated using the IMS Enterprise Suite SOAP Gateway
deployment tool
This name must be alphanumeric.
Socket timeout
Type the number of milliseconds that the IMS Enterprise Suite SOAP Gateway should wait for a
response from IMS Connect.
Execution timeout
Type the number of milliseconds that IMS Connect should wait for a response from the IMS
Enterprise Suite SOAP Gateway.
The maximum valid value is 3600000.
LTERM name
Type the LTERM name that is to be used to override the value in the LTERM field of the IMS
application program's I/O PCB.
You can set the value of this property if the client application wants to provide an LTERM override
name. This name is in the IMS application program's I/O PCB, with the intent that the IMS
application makes logic decisions based on the override value.
This name must be alphanumeric and must contain 8 characters or less.
Inbound WS-Security
Select the security token type that IMS Enterprise Suite SOAP Gateway will expect from users.
Developing web services and SOA with Enterprise Service Tools 211
Converter driver file name:
Type the name of the file that you want to contain the new converter driver. (The converter driver is
the procedure that calls the request converter and the response converter.)
To suppress the generation of this file:
1. Clear the checkbox Generate all to driver, if it is set.
2. Clear the checkbox at the far left of the input field.
WSDL service:
If the WSDL file that you selected when you started the Enterprise Service Tools Wizard Launchpad
is based on the WSDL 2.0 specification, then this list displays all the services that are supported by
the binding that you selected in the Binding element list.
Select the service that you want the new Web service implementation to offer.
Binding element:
Select the binding in the Web service description that you want to be used to generate the language
structure and Web service binding file.
212 Developer for z/OS: Developing with Db2, CICS, and IMS
Available operations:
This list displays all the available operations in the service that you selected in the WSDL service list.
Select the checkbox beside each operation that you want requesters to be able to request.
Use Select All or Deselect All to select or deselect all the available operations in the list.
Click Change WSBind Preferences at the bottom of the page to modify the Web Services Assistant
(WSBind) preferences (see “Setting preferences for the CICS Web Services Assistant (WSBind)” on page
150).
Properties tab
The Properties tab allows you to specify a path and file names for the new generation properties files.
This tab is present if you started the Enterprise Service Tools Wizard Launchpad from a type of project
other than a single-service project, and if you selected the checkbox Save generation properties on the
launchpad (see “Using the Wizard Launchpad” on page 199).
This tab contains the following fields:
• In the group Select targets for the generation properties files:
Properties file container:
Type or select the path of a folder in which you want the wizard to create the generation properties
files.
Container.xml
Type the name that you want to use for the Container.xml file.
PlatformProperties.xml
Type the name that you want to use for the PlatformProperties.xml file.
ServiceSpecification.xml
Type the name that you want to use for the ServiceSpecification.xml file.
Developing web services and SOA with Enterprise Service Tools 213
Table 33. Bottom-Up Interpretive Wizard Page and Tab Overview (continued)
Runtime Environment (See
Wizard Page and Tabs: Note)
W I B T M
Note:
• W stands for Web Services for CICS
• I stands for IMS SOAP Gateway
• B stands for Batch, TSO, and z/OS UNIX System Services
• T stands for XML Transformation for CICS
• M stands for MTOM/XOP (Message Transformation Optimization Mechanism)/(XML-binary
Optimization Package) service
214 Developer for z/OS: Developing with Db2, CICS, and IMS
returns when it terminates). For One-Way (Request only) Web Service Generation, unselect the
"Response Language Structure".
Note: When using the MTOM/XOP (Message Transformation Optimization Mechanism)/(XML-binary
Optimization Package) development scenario, only DATA-STRUCTURE is allowed.
3. Click Change PL/I Preferences or Change COBOL Preferences button to open the desired
preferences page. These preferences control how source files (PL/I or COBOL) are imported (see
“Setting Importer > PL/I preferences” on page 220 or “Setting Importer > COBOL preferences” on
page 219).
Note: The Language structure tree views on this page can show certain data types that are not supported
by the interpretive conversion. These types include the ones described in the topics “Compatibility:
Simple data types” on page 339. These specific types are marked as (contains unsupported types)
or unsupported type in the tree; these selections are automatically disabled. However, there are other
types that are not supported by the interpretive conversion and they are described in the CICS TS 4.1
Documentation, refer to CICS® Transaction Server for z/OS, Version 4 Release 1 IBM Documentation.
These types are not marked as (contains unsupported types) or unsupported type in the tree and the
selection is not automatically disabled. If you leave these data items selected, the generation fails and an
appropriate error message is shown. An error entry is also put into the Remote error list view.
Related concepts
Developing web services and SOA with Enterprise Service Tools 215
Request Channel
Specifies the location of the request channel description document (the location should be on the
local system).
Note: If this value is used the mapping level must be 3.0 or higher.
Interaction between files referenced in the channel description document and language structure
selection page:
• When the channel description document points to the main source file of the EST project, the
item selections made in the Language structure selection page are PRESERVED.
• When the channel description document points to a source file that is NOT the main source
file of the EST project, the item selections made in the Language structure selection page are
IGNORED.
Response Channel
Specifies the location of the response channel description document (the location should be on the
local system).
Note: If this value is used the mapping level must be 3.0 or higher.
Interaction between files referenced in the channel description document and language structure
selection page:
• When the channel description document points to the main source file of the EST project, the
item selections made in the Language structure selection page are PRESERVED.
• When the channel description document points to a source file that is NOT the main source
file of the EST project, the item selections made in the Language structure selection page are
IGNORED.
2. On the Service Properties tab, specify the following options:
Service Location:
Specifies the URI that a client uses to access the Web service.
Note: TXSeries for Multiplatforms runtime only supports COMMAREA as Program interface.
216 Developer for z/OS: Developing with Db2, CICS, and IMS
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
Developing web services and SOA with Enterprise Service Tools 217
The DFHLS2WS Application and Service properties page
The DFHLS2WS Application and Service properties page sets properties for the CICS application and for
the Web service.
Follow these steps to complete this page:
1. On the Application Properties tab, specify the following options:
Program name:
Specifies the name of the CICS application program that is exposed as a Web service.
Program interface:
Specifies how CICS passes data to the target application program.
Container name:
Specifies the name of the container that holds the high level language structure.
2. On the Service Properties tab, specify the following options:
Service Location:
Specifies the URI that a client uses to access the Web service.
Operation name:
The value specified for this option is used in the generated WSDL. If a value is not specified,
the default operation name will be used. The default operation name is "CICS program name" +
"Operation".
Request namespace
Specifies the location of the request namespace document.
Response namespace
Specifies the location of the response namespace document.
Click Change WSBind Preferences at the bottom of the page to modify the Web Services Assistant
(WSBind) preferences (see “Setting preferences for the CICS Web Services Assistant (WSBind)” on page
150).
218 Developer for z/OS: Developing with Db2, CICS, and IMS
Setting Importer > COBOL preferences
Use these preferences to control how COBOL files are imported. These settings affect all COBOL files that
you import into the workspace, for any project.
To set preferences for importing COBOL files:
1. In the left pane of the Preferences window, expand Importer and select COBOL.
2. Change the preferences (see the following information).
The options are as follows:
Note: For a more detailed description of these options see the Enterprise COBOL for z/OS Programming
Guide Version 3 Release 4, available from the Enterprise COBOL for z/OS Web site at http://
www-306.ibm.com/software/awdtools/cobol/zos/.
Platform
Specifies the target generation platform. Select the appropriate value from the pull down list.
Code Page Selection
Specifies the code page for the locale. Select the appropriate value from the popup window. See
“Supported code pages (CCSIDs)” on page 429.
Floating point format
Specifies the floating point format. Select the appropriate value from the pull down list.
endian
Select the appropriate value from the available options.
Remote integer endian
Select the appropriate value from the available options.
External decimal sign
Select the appropriate value from the available options.
Specify the COBOL options
QUOTE
Select the appropriate value from the available options.
TRUNC
Select the appropriate value from the available options.
NSYMBOL
Select the appropriate value from the available options.
Compile time locale name
Specifies the compile time locale. Select the appropriate value from the pull down list.
Please see “COBOL importer: Compile-time locale and code page” on page 528 for additional
information.
ASCII code pages
Specifies the ASCII code page. Select the appropriate value from the pull down list.
Error messages language
Specifies the default language for the error messages. Select the appropriate value from the pull
down list.
Currency sign
Specifies the currency sign. Enter the appropriate value in the space provided.
SOSI
Select the checkbox to enable SOSI.
COLLSEQ
Select the appropriate value from the available options.
NCOLLSEQ
Select the appropriate value from the available options.
Developing web services and SOA with Enterprise Service Tools 219
File Extension Support
Specify the file extension support. To change the value, select support for a specific file extension
and then, using the pulldown arrow, select the new value from the pull down list.
For a more detailed description of these options see the Enterprise COBOL for z/OS Programming Guide
Version 3 Release 4, available from the Enterprise COBOL for z/OS Web site at http://www-306.ibm.com/
software/awdtools/cobol/zos/.
220 Developer for z/OS: Developing with Db2, CICS, and IMS
On the More PL/I options tab the options are as follows:
Specify the PL/I options
Error message language
Specifies the error message language. Select the appropriate value from the pull down list.
LIMITS
NAME:
Specifies the maximum length of variable names in your program. The maximum value allowed is
100; the minimum value is 31.
EXTNAME:
Specifies the maximum length for EXTERNAL name. The maximum value allowed 100; the
minimum value is 7.
FIXEDBIN:
Select the appropriate value from the pull down list.
FIXEDEC:
Select the appropriate value from the pull down list.
Margins
Left: The column number of the leftmost character (first data byte) that is processed by the
compiler. This value cannot exceed 100.
Right: The column number of the rightmost character (last data byte) that is processed by the
compiler. This value should be greater that the value of Left but the value cannot exceed 200,
except under MVS batch where the value cannot exceed 100.
Macro preprocessor
Select the appropriate value from the available options.
SYSPARM The SYSPARM option allows you to specify the value of the string that is returned by the
macro facility built-in function SYSPARM.
Character conversion
BLANK
Specifies the blank character. Enter the appropriate value in the space provided.
Currency sign
Specifies the currency sign. Enter the appropriate value in the space provided.
NOT
Specifies the character for NOT. Enter the appropriate value in the space provided.
OR
Specifies the character for OR. Enter the appropriate value in the space provided.
NAMES
Select the appropriate value from the available options.
For a more detailed description of these options see the Enterprise PL/I for z/OS Programming Guide
Version 3 Release 6, available from the Enterprise PL/I for z/OS Web site at http://www-306.ibm.com/
software/awdtools/pli/plizos/.
Developing web services and SOA with Enterprise Service Tools 221
Generate deployment manifest file: This is the location of the deployment file. Enter path and file
name (.admr extension). Selecting this option enables the options in the Specify deployment manifest
properties group.
Note: In the case where the manifest file already exists in the project, any manual changes made to the
manifest file are preserved when the file is regenerated by selecting Generate Web Services for CICS
resources..
For more information, refer to message ID CRRZX0131W.
In the Specify deployment manifest properties group:
• Target CICS region: Select a CICS region.
• Refresh: After any new CICS Connection(s) are defined via the Define CICS Connection link, select
Refresh to see the new target CICS regions.
• Define CICS connection: Opens the CICS Connection section of the preferences page. Use this to
define a CICS Connection.
• Pickup directory and Pipeline : In order to add the capability to install the web service (that is, scan the
pipeline) , the selected pipeline is recorded in the CICS manifest file.
For more information, refer to http://www-01.ibm.com/support/knowledgecenter/SSGMCP_4.1.0/
com.ibm.cics.ts.resourcedefinition.doc/resources/webservice/dfha4_overview.html.
Related information
Opening the Preferences window
The top-down development scenario is available only when the host runtime is Web Services for CICS and
only with interpretive XML conversion.
This wizard provides functionality similar to that of the DFHWS2LS utility in the CICS Web Services
Assistant.
222 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 34. Top-Down Wizard Page and Tab Overview (continued)
Runtime Environment
Wizard Page and Tabs: (See Note)
W I B T
Note:
• W stands for Web Services for CICS
• I stands for IMS Enterprise Suite SOAP Gateway
• B stands for Batch, TSO, and z/OS UNIX System Services
• T stands for XML Transformation for CICS
Note: This wizard provides functionality similar to that of the DFHWS2LS utility in the Web Services for
CICS Assistant.
Click Change WSBind Preferences at the bottom of the page to modify the Web Services Assistant
(WSBind) preferences (see “Setting preferences for the CICS Web Services Assistant (WSBind)” on page
150).
Developing web services and SOA with Enterprise Service Tools 223
Application Language:
Select the high-level language that you want to be used for the generated language structures and
the program template.
Program name:
Type the program name of the new service provider or requester application.
Program interface:
Select the option that you want CICS to use to pass data to the new service provider application.
This field is not available when the selected application mode in the launch pad is Service
Requester.
Container name:
Type the name of the container that holds the high level language structure.
This field is not available when the selected application mode in the launch pad is Service
Requester.
Click Change WSBind Preferences at the bottom of the page to modify the Web Services Assistant
(WSBind) preferences (see “Setting preferences for the CICS Web Services Assistant (WSBind)” on page
150).
WSDL service:
If the WSDL file that you selected when you started the Enterprise Service Tools Wizard Launchpad
is based on the WSDL 2.0 specification, then this list displays all the services that are supported by
the binding that you selected in the Binding element list.
Select the service that you want the new Web service implementation to offer.
Binding element:
Select the binding in the Web service description that you want to be used to generate the language
structure and Web service binding file.
Available operations:
This list displays all the available operations in the service that you selected in the WSDL service list.
Select the checkbox beside each operation that you want requesters to be able to request.
Use Select All or Deselect All to select or deselect all the available operations in the list.
Click Change WSBind Preferences at the bottom of the page to modify the Web Services Assistant
(WSBind) preferences (see “Setting preferences for the CICS Web Services Assistant (WSBind)” on page
150).
Structures tab
The DFHWS2LS Structures tab sets targets for generating language structures files.
On the Structures tab, specify the following options:
Note: Generate to: Is only applicable to single service Enterprise Service Tools projects.
Generate to:
Same project
224 Developer for z/OS: Developing with Db2, CICS, and IMS
Select this when the file container is on the local system (default).
Remote location
Select this when the file container is on a remote system. For additional information, see “Generation
of Enterprise Service Tools artifacts to remote systems” on page 333.
File container:
Specifies the local or remote folder to which the generated artifacts are written.
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
WSBind tab
The DFHWS2LS WSBind tab sets targets for WSBind files.
On the WSBind tab, specify the following options:
Note: Generate to: Is only applicable to single service Enterprise Service Tools projects.
Generate to:
Same project
Select this when the file container is on the local system (default).
Remote location
Select this when the file container is on a remote system. For additional information, see “Generation
of Enterprise Service Tools artifacts to remote systems” on page 333.
File container:
Specifies the local or remote folder to which the WSBind file is written.
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
Template tab
The DFHWS2LS Template tab sets the template file names for WSBind files.
On the Template tab, specify the following options:
Note: Generate to: Is only applicable to single service Enterprise Service Tools projects.
Generate to:
Same project
Select this when the file container is on the local system (default).
Remote location
Developing web services and SOA with Enterprise Service Tools 225
Select this when the file container is on a remote system. For additional information, see “Generation
of Enterprise Service Tools artifacts to remote systems” on page 333.
File container:
Specifies the local or remote folder to which the template file is written.
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
Properties tab
The DFHWS2LS Properties tab allows you to specify a path and file names for the new generation
properties files.
This tab contains the following fields:
Properties file container:
Type or select the path of a folder in which you want the wizard to create the generation properties
files.
Container.xml
Type the name that you want to use for the Container.xml file.
PlatformProperties.xml
Type the name that you want to use for the PlatformProperties.xml file.
ServiceSpecification.xml
Type the name that you want to use for the ServiceSpecification.xml file.
226 Developer for z/OS: Developing with Db2, CICS, and IMS
• Pickup directory and Pipeline : In order to add the capability to install the web service (that is, scan the
pipeline) , the selected pipeline is recorded in the CICS manifest file.
For more information, refer to http://www-01.ibm.com/support/knowledgecenter/SSGMCP_4.1.0/
com.ibm.cics.ts.resourcedefinition.doc/resources/webservice/dfha4_overview.html.
Related information
Opening the Preferences window
Overview
The steps for generating service interface files in the meet-in-middle development scenario are as
follows:
1. Generate an initial request mapping session file that contains a source XML schema definition and a
target high-level-language data structure.
2. Generate an initial response mapping session file that contains a source high-level-language data
structure and a target XML schema definition.
3. In the request mapping session file, specify the field-to-field mappings between the source XML
schema definition and the target high-level-language data structure.
4. In the response mapping session file, specify the field-to-field mappings between the source high-
level-language data structure and the target XML schema definition.
5. Generate service interface files from the request mapping session file and the response mapping
session file.
The following table shows the same steps with additional detail:
Developing web services and SOA with Enterprise Service Tools 227
Input files containing source
data structure and target data
structure:
Development
Step: tool: Source: Target: Files generated: Link:
4) Specify the Mapping editor Response mapping session file Response “4. Create data
field-to-field mapping session mappings in the
mappings in the file (with response
response mappings) mapping session
mapping session file” on page 234
file:
5) Generate the Map to an • Request mapping session file Web service files “5. Generate
service interface Existing Service (with mappings) (See Note service interface
files: Interface 3): .cbl .wsbind . files” on page
• Response mapping session file
(meet-in- wsdl .xml 235
(with mappings)
middle) wizard
Note:
1. For the Web Services for CICS runtime, the source file for an request mapping must be a .WSDL file (cannot
be an XSD file or an XML file).
2. For the Web Services for CICS runtime, the target file for an response mapping must be a .WSDL file (cannot
be an XSD file or an XML file).
3. The number and types of the Web service files that are generated depends on the target runtime
environment.
228 Developer for z/OS: Developing with Db2, CICS, and IMS
Files types for the source and target entities in request or response mapping session
files
A mapping session file, whether it is a request mapping session file or a response mapping session file,
always describes a transfer of data between a high-level-language data structure and an XML schema
definition. The XML schema definition can be derived from: (a) an XML schema definition in an XSD file; (b)
an XML schema definition in a WSDL file; or (c) an element in an XML instance document (XML file).
• A request mapping session file must describe a transfer of data from an XML schema definition to a
high-level-language data structure.
• A response mapping session file must describe a transfer of data from a high-level-language data
structure to an XML schema definition.
The high-level-language data structure must be located in a COBOL file (extension .cbl, .cob, .cpy, or .ccp).
The type of file from which the XML schema definition can be taken or derived depends on the host
runtime environment for which the service-interface-output files are being generated:
• If the host runtime environment is Web Services for CICS, then the XML schema definition must be
taken from a WSDL file. (The Web Services for CICS runtime requires a WSBind file, which can be
generated from information in the WSDL file.)
• If the host runtime environment is XML Transformation for CICS, this runtime is not supported for the
meet-in-middle development scenario.
• If the host runtime environment is one of the other runtime environments (IMS Enterprise Suite SOAP
Gateway, or Batch, TSO, and z/OS UNIX System Services) then the XSD schema definition can be
taken from a WSDL file or an XSD file, or can be derived from an XML schema instance document (XML
file).
Table 35. Summary of File Types for the Source and Target Entities when Mapping (Request or Response)
Request mapping - type of file Response mapping - type of file
Runtime: required for data definition: required for data definition:
Source: Target: Source: Target:
Web Services for WSDL .cbl, .cpy, .cob,, .cc .cbl, .cpy, .cob, .cc WSDL
CICS p p
XML Transformation NOT SUPPORTED NOT SUPPORTED NOT SUPPORTED NOT SUPPORTED
for CICS
• IMS Enterprise WSDL, XML, XSD .cbl, .cpy, .cob, .cc .cbl, .cpy, .cob, .cc WSDL, XML, XSD
Suite SOAP p p
Gateway
• Batch, TSO, and
z/OS UNIX System
Services
Developing web services and SOA with Enterprise Service Tools 229
Target runtime environment: Types of Web service generated:
IMS Enterprise Suite SOAP Gateway • Service provider
• Service requester
Mapping
Mapping is the process of relating parts of two existing data structures to one another. Typically, the result
of the mapping process is a generated runtime code that transforms and moves data between mapped
elements. Enterprise Service Tools for mapping allow mapping between data structures defined by an
existing XML schema definition (or some of its derivatives, such as XML instance documents) and data
defined by an existing COBOL data structure.
For example, you might have a COBOL data structure named ACCOUNTINFO containing all the relevant
information about an account, and you want to map just the address information from ACCOUNTINFO into
an element of a complex type named AddressInfo in an XML schema definition. In this situation you want
to create a mapping from certain fields in ACCOUNTINFO to certain fields in AddressInfo.
Request mapping means that the mapping that is done from (a) an XML instance document that a Web
service receives; to (b) a high-level-language data structure that the Web service uses in some way.
For example, if the Web service is a service provider, then the Web service receives a request request
containing an XML instance document, and the Web service maps the information in the XML instance
document to a high-level-language data structure that the Web service then passes to a local application
to process.
Response mapping means the mapping that is done from (a) a high-level-language data structure that a
Web service acquires in some way; to (b) an XML instance document that the Web service sends out.
230 Developer for z/OS: Developing with Db2, CICS, and IMS
Create Mappings wizard (request mapping): First page
The first page of the Create Mappings wizard (request mapping), titled Create Mappings, allows you to
specify two files that contain the source XML schema definition and the target high-level-language data
structure that you want to use in the request mapping session file.
The XML schema definition can be taken or derived from: (a) an XML schema definition in an XSD file; (b)
an XML schema definition in a WSDL file; or (c) an element in an XML instance document (XML file).
The fields on this page of the wizard are as follows:
Mapping source
Specify a file of type WSDL, XSD, or XML that contains, defines, or provides an instance of the XML
schema definition that you want to use as the source data structure for the request mapping session
file.
Important: If you specify a high-level-language file (such as QueryAccount.cbl) for this field, then
the wizard changes to response mapping mode.
Mapping target:
Specify a high-level-language file (extension .cbl, .cob, .cpy, or .ccp) that contains the data structure
that you want to use as the target data structure for request mapping session file.
Part of the contents of this page depend on the type of the file that you specified in the Mapping source
field on the first page of the wizard. See the following subtopics:
• “When the Mapping source file is XSD or XML” on page 231
• “When the Mapping source file is WSDL” on page 231
Port
Select a portType associated with the Web service.
Developing web services and SOA with Enterprise Service Tools 231
Operation
Select an operation belonging to the selected portType.
Message
Select an input message belonging to the selected operation.
Part
Select a part from the selected message.
Selected element
This is the element specified in the selected part.
The new request mapping session file is created with the file extension .mapping.
232 Developer for z/OS: Developing with Db2, CICS, and IMS
CreateMappings wizard (response mapping): First page
The first page of the New XML to COBOL or PL/I Mapping Session wizard (response mapping) allows you
to specify two files that contain the source high-level-language data structure and the target XML schema
definition that you want to use in the response mapping session file.
The XML schema definition can be taken or derived from: (a) an XML schema definition in an XSD file; (b)
an XML schema definition in a WSDL file; or (c) an element in an XML instance document (XML file).
The fields on this page of the wizard are as follows:
Mapping source
Specify a high-level-language file (extension .cbl, .cob, .cpy, or .ccp) that contains the data structure
that you want to use as the source data structure for the response mapping session file.
Important: If you specify a WSDL, XSD, or XML file for this field, then the wizard changes to request
mapping mode.
Mapping target:
Specify a file of type WSDL, XSD, or XML that contains, defines, or provides an instance of the XML
schema definition that you want to use as the target data structure for the response mapping session
file.
Important: If you specify a high-level-language file (such as QueryAccount.cbl) for this field, then
the wizard changes to response mapping mode.
Developing web services and SOA with Enterprise Service Tools 233
Select the target XML element from the Web service definition (GROUP)
Note: This group is present if you specified a file of type WSDL in the Mapping target field on the first
page of the wizard.
The fields in this group are as follows:
Service
Select the name of a Web service whose information is stored in the WSDL file.
Port
Select a portType associated with the Web service.
Operation
Select an operation belonging to the selected portType.
Message
Select an output message belonging to the selected operation.
Part
Select a part from the selected message.
Selected element
This is the element specified in the selected part.
The new response mapping session file is created with the file extension .mapping.
234 Developer for z/OS: Developing with Db2, CICS, and IMS
5. Generate service interface files
Use the Map an Existing Service Interface (meet-in-middle) wizard to generate service interface files
from a request mapping session file and a response mapping session file.
5. Click Start.
6. If you selected only one mapping session file before starting the wizard launchpad, then the launchpad
now opens a window with a message stating that selecting a single mapping session file causes the
meet-in-middle wizard to create a unidirectional Web service (see Step 1):
Developing web services and SOA with Enterprise Service Tools 235
• IMS Enterprise Suite SOAP Gateway service requester page
Table 36 on page 236 summarizes which pages and tabs are available for the five runtime environments:
Table 36. Generation of Conversion Code Wizard Page and Tab Overview
Runtime Environment
Wizard Page and Tabs: (See Note)
W I B T
Generation options:
- XML Converters X X X
- Advanced Options
Note:
• W stands for Web Services for CICS
• I stands for IMS Enterprise Suite SOAP Gateway
• B stands for Batch, TSO, and z/OS UNIX System Services
• T stands for XML Transformation for CICS (Not available with the meet-in-middle development
scenario)
236 Developer for z/OS: Developing with Db2, CICS, and IMS
Generation options page
The second page of the Map to an Existing Service Interface (meet-in-middle) wizard, titled Generation
options, allows you to select capabilities that you want to be included in the source code for the request
XML converter or the response XML converter.
To set default values for some of the fields on this page, use the COBOL XML Converters page in the
Preferences window (see “Setting preferences for COBOL XML converters” on page 145).
Author name
Type the value to be included in the AUTHOR paragraph of each generated COBOL program.
Bidi Options
Use the Bidi options button to invoke the Bidi conversion options window.
Note that the Bidi options button is disabled for Host code page selections other than 420 Arabic or
424 Hebrew. It becomes enabled if you select Host code page 420 Arabic or 424 Hebrew.
Based on the selection of a bidirectional language specific code page for the host application (420
Arabic or 424 Hebrew), you can choose any combination of the allowed attributes that describes
what type of transformation will be performed on the text data to convert it from the Unicode-based
(1208 UTF-8 or 1200 UTF-16) XML data to the 420 Arabic or 424 Hebrew text (alphanumeric
Developing web services and SOA with Enterprise Service Tools 237
and alphabetic) data items in COBOL or, inversely, from the COBOL text data items to XML data in
Unicode.
For a description of the bidirectional language options see “Bidirectional conversion options
window” on page 239.
238 Developer for z/OS: Developing with Db2, CICS, and IMS
Specify COBOL compiler version
Select the version of the COBOL compiler that you want to use. (Same as COBOL_COMPILER_LEVEL
in the batch processor – see COBOL_COMPILER_LEVEL).
Developing web services and SOA with Enterprise Service Tools 239
Click Change WSBind Preferences at the bottom of the page to modify the Web Services Assistant
(WSBind) preferences (see “Setting preferences for the CICS Web Services Assistant (WSBind)” on page
150).
240 Developer for z/OS: Developing with Db2, CICS, and IMS
This tab contains the following fields:
• In the Specify Web Services Assistant group:
CCSID
Specifies the CCSID that is used at run time to encode data between the application program and
the Web services binding file. The value of this parameter overrides the value of the LOCALCCSID
system initialization parameter. The value must be an EBCDIC CCSID that is supported by Java and
z/OS conversion services.
If you do not specify this parameter, the application program uses the CCSID specified in the system
initialization parameter, and the Web service binding file is encoded in US EBCDIC (Cp037).
User ID
Valid characters: A-Z a-z 0-9 $ @ #
In a service provider, this parameter specifies a 1-8 character user ID which can be used by
any Web client. For an application-generated response or a Web service, the alias transaction is
attached under this user ID. The value of this parameter is used to define the USERID attribute of
the URIMAP resource when it is created automatically using the PIPELINE scan command.
Transaction
Valid characters: A-Z a-z 0-9 $
In a service provider, this parameter specifies the 1-4 character name of an alias transaction that
can start the pipeline or run a user application to compose a HTTP response. The value of this
parameter is used to define the TRANSACTION attribute of the URIMAP resource when it is created
automatically using the PIPELINE scan command.
Vendor converter name
Set the name of the converter program to use when building a vendor style WSBind file. The vendor
style of WSBind file opts out of the CICS supplied XML transformation process, instead CICS links
to a converter program which is responsible for handling the XML to commarea conversion. This
method is used to set the name of the converter program. In the wizard, this value defaults to the
name of the Converter Driver file.
• Change WSBind Preferences
This allows changes to the Web Services Assistant (WSBind) preferences (see “Setting preferences
for the CICS Web Services Assistant (WSBind)” on page 150).
Developing web services and SOA with Enterprise Service Tools 241
SOAPAction
Type the value that you want to use for the SOAPAction attribute of the soap:operation element
in the WSDL file that the wizard generates for the Web service.
This value also becomes the name of the correlator file that the wizard generates - see the File
name field.
This value must begin with urn: and must contain only characters that are valid in file names.
File container
Type or the select the path of the folder in which you want the wizard to generate the IMS correlator
file.
File name
This field displays the name of the IMS correlator file that the wizard is to generate. You can modify
this field by changing the name in the SOAPAction field.
Update, Overwrite
These radio buttons are enabled to update or overwrite the IMS correlator file that you specified in
the File container and File name fields:
– Select Update if you want the wizard to do the following:
1. Preserve all the existing entries in the IMS correlator file; and
2. Add or update information for the current Web service and operation on the WSDL and XSD
tab of the Generation Options page of the wizard.
– Select Overwrite if you want the wizard to overwrite the existing IMS correlator file.
Entries in the IMS correlator file are identified by a combination of the Web service name and the
operation name. If you specify a Web service name and an operation name that already exist in the
IMS correlator file, then the wizard initializes the request and response schema properties on this
page with the values from the IMS correlator file.
• In the Specify IMS Enterprise Suite SOAP Gateway and IMS Connect interaction properties group:
Transaction code
Type the name of the IMS transaction that is to be invoked by the Web service.
This name must be alphanumeric and must contain 8 characters or less.
Socket timeout
Type the number of milliseconds that the IMS Enterprise Suite SOAP Gateway should wait for a
response from IMS Connect.
Execution timeout
Type the number of milliseconds that IMS Connect should wait for a response from the IMS
Enterprise Suite SOAP Gateway.
The maximum valid value is 3600000.
LTERM name
Type the LTERM name that is to be used to override the value in the LTERM field of the IMS
application program's I/O PCB.
242 Developer for z/OS: Developing with Db2, CICS, and IMS
You can set the value of this property if the client application wants to provide an LTERM override
name. This name is in the IMS application program's I/O PCB, with the intent that the IMS
application makes logic decisions based on the override value.
This name must be alphanumeric and must contain 8 characters or less.
Inbound WS-Security
Select the security token type that IMS Enterprise Suite SOAP Gateway will expect from users.
File container
Type or the select the path of the folder in which you want the wizard to generate the IMS correlator
file.
File name
This field displays the name of the IMS correlator file that the wizard is to generate. You can modify
this field by changing the name in the SOAPAction field described previously.
Update, Overwrite
These radio buttons are enabled if the IMS correlator file that you specified in the File container
and File name fields (described previously) already exists:
– Select Update if you want the wizard to do the following:
1. Preserve all the existing entries in the IMS correlator file; and
2. Add or update information for the current Web service and operation on the WSDL and XSD
tab of the Generation Options page of the wizard.
– Select Overwrite if you want the wizard to overwrite the existing IMS correlator file.
Entries in the IMS correlator file are identified by a combination of the Web service name and the
operation name. If you specify a Web service name and an operation name that already exist in the
IMS correlator file, then the wizard initializes the request and response schema properties on this
page with the values from the IMS correlator file.
Developing web services and SOA with Enterprise Service Tools 243
Transaction code
Type the name of the IMS transaction that handles the response that the Web service receives.
This name must be alphanumeric and must contain 8 characters or less.
LTERM name
Type the LTERM name that is to be used to override the value in the LTERM field of the IMS
application program's I/O PCB.
This name must be alphanumeric and must contain 8 characters or less.
Socket timeout
Type the number of milliseconds that the IMS Enterprise Suite SOAP Gateway should wait for a
response from IMS Connect.
Execution timeout
Type the number of milliseconds that IMS Connect should wait for a response from the IMS
Enterprise Suite SOAP Gateway.
The maximum valid value is 3600000.
Callout WS-Security
Select the security token type that IMS Enterprise Suite SOAP Gateway will expect from users.
244 Developer for z/OS: Developing with Db2, CICS, and IMS
Remote location: Select this when the file container is on a remote system. For additional
information, see “Generation of Enterprise Service Tools artifacts to remote systems” on page
333.
Note: Generate to: Is only applicable to single service Enterprise Service Tools projects.
Converter file container
Type or select the path of a folder in which you want the wizard to create the converter files.
Converter driver file name
Type the name of the file that you want to contain the new converter driver. (The converter driver is
the procedure that calls the request converter and the response converter.)
To suppress the generation of this file:
1. Clear the checkbox Generate all to driver, if it is set.
2. Clear the checkbox at the far left of the input field.
Request Converter file name
Type the name of the file that you want to contain the new request converter. (The request converter
is the the procedure that maps a high-level-language data structure to the request XML schema
definition.)
To suppress the generation of this file:
1. Clear the checkbox Generate all to driver, if it is set.
2. Clear the checkbox at the far left of the input field.
Response Converter file name
Type the name of the file that you want to contain the new response converter. (The response
converter is the procedure that maps the response XML schema definition to a high-level-language
data structure.)
To suppress the generation of this file:
1. Clear the checkbox Generate all to driver, if it is set.
2. Clear the checkbox at the far left of the input field.
Generate all to driver
Select this checkbox to if you want the converter driver, the request converter, and the response
converter to be contained in one file.
Important: Prior to the availability of the "Generate Conversion Code" enhancement, where
combined converters can be generated from two mapping files, it was necessary to manually
combine two separate sets of converter programs for Web services having both request and
response messages.
Overwrite files without warning
This checkbox indicates that the wizard overwrites without warning, if files with the same name
exist in the target directory.
• In the Enterprise COBOL for z/OS Compiler Options group:
Specify COBOL compiler version
Select the version of the COBOL compiler that you want to use. (Same as COBOL_COMPILER_LEVEL
in the batch processor – see COBOL_COMPILER_LEVEL).
XML Parsing
COMPAT - XML parser Enterprise Service Tools COBOL Version 3
XMLSS - XML parser Enterprise Service Tools COBOL Version 4
Note: This parser is also available in the z/OS XML System Services platform libraries.
Developing web services and SOA with Enterprise Service Tools 245
Optimization
Select whether the optimization option is enabled for the COBOL compiler. When the checkbox is
selected, the COBOL compiler uses optimization in generating runtime code from COBOL source
code.
If you are trying to debug a compile error in your COBOL source code, it is a good idea to clear this
checkbox and recompile. Without optimization turned on, it is easier to determine which part of the
COBOL source code is causing the error.
Properties tab
The Properties tab allows you to specify a path and file names for the new generation properties files.
This tab is present if you started the Enterprise Service Tools Wizard Launchpad from a type of project
other than a single-service project, and if you selected the checkbox Save generation properties on the
launchpad (see “Using the Wizard Launchpad” on page 199).
This tab contains the following fields:
• In the group Select targets for the generation properties files:
Properties file container:
Type or select the path of a folder in which you want the wizard to create the generation properties
files.
Container.xml
Type the name that you want to use for the Container.xml file.
PlatformProperties.xml
Type the name that you want to use for the PlatformProperties.xml file.
ServiceSpecification.xml
Type the name that you want to use for the ServiceSpecification.xml file.
Using the mapping editor to create data mappings in a mapping session file
The mapping editor allows you to indicate how you want data mapped from a source to a target in a
mapping session file (request or response).
In the Service Requester case:
• In an request mapping session file, the mapping is from a high-level-language data structure to an XML
schema definition.
• In an response mapping session file, the mapping is from the mapping is from an XML schema definition
to a high-level-language data structure.
Important: You should be aware of possible error situations (see “Error situations that you may
encounter in the mapping editor” on page 247).
To specify mappings in a mapping session file:
1. Right-click the mapping session file that you want to edit.
2. Select Open With > Mapping Editor. The mapping editor opens.
3. In the mapping editor:
a. Enlarge the editor area until you can see both the source data (on the left) and the target data (on
the right).
b. For each mapping that you want to create, drag an element in the source data to an element in
the target data. The editor displays a connecting line between the source element and the target
element to indicate that a mapping exists.
Note: The drag operation fails if the source and target elements are incompatible.
Note: Alternatively, you can create a mapping as follows:
246 Developer for z/OS: Developing with Db2, CICS, and IMS
i) Select the source element.
ii) Press the Ctrl key, and while holding down the Ctrl key select the target element.
iii) Click the icon Create a New Transform. Or, right-click the target element and select Create
Transform.
c. When you are finished creating mappings, close the mapping editor.
The mapping session file now contains the mappings that you created.
Developing web services and SOA with Enterprise Service Tools 247
Overview of bottom-up (compiled) wizard pages
This topic provides an overview of the pages in the wizards with compiled XML conversion.
For this wizard and conversion type, the pages common to all runtimes are as follows:
• Language Structures page
• Generation options page
• File, data set, or member selection page
The pages peculiar to a particular runtime or application mode are:
• Web Services for CICS page
• IMS Enterprise Suite SOAP Gateway Web Service Provider page
• XML Transformation for CICS page
Table 37 on page 248 summarizes which pages and tabs are available for the supported runtime
environments:
248 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 37. Bottom-Up Compiled Wizard Page and Tab Overview (continued)
Runtime Environment
Wizard Page and Tabs: (See Note)
W I B T
XML Transformation for CICS page:
• Basic Options X
• Advanced Options
Note:
• W stands for Web Services for CICS
• I stands for IMS Enterprise Suite SOAP Gateway
• B stands for Batch, TSO, and z/OS UNIX System Services
• T stands for XML Transformation for CICS
Developing web services and SOA with Enterprise Service Tools 249
• In the Specify identification attributes group:
Converter program name prefix:
Type the stem of the program name that is included in the IDENTIFICATION DIVISION of each
generated COBOL program. If you type ACCT, for example, the wizard identifies the input converter
program as ACCTI, the output converter program as ACCTO, and the driver as ACCTD.
Author name:
Type the value to be included in the AUTHOR paragraph of each generated COBOL program.
• In the Specify Enterprise COBOL for z/OS properties group:
Compiler Level:
Type the value of a specific level of the Enterprise COBOL compiler.
XMLPARSE option:
Type the value of the XML parser selected for the COBOL XML PARSE statement.
This option is valid only if Compiler Level is set to 4.1 or higher.
Optimization
Select whether the optimization option is enabled for the COBOL compiler. When the checkbox is
selected, the COBOL compiler uses optimization in generating runtime code from COBOL source
code.
If you are trying to debug a compile error in your COBOL source code, it is a good idea to clear this
checkbox and recompile. Without optimization turned on, it is easier to determine which part of the
COBOL source code is causing the error.
• In the Specify character encodings group:
XML code page:
Select the code page for encoding the XML data. This setting is used by the generated converter
program depending on whether your application expects to process or produce XML.
Host code page:
Select the code page for the z/OS host system. This code page is used in the generated converter
program to encode the language character data.
http://www.StartAppI.com/schemas/StartAppIInterface
ProgramPassFields
Note: By default, the source program name and a character designator I for request (formally
Inbound) is used. You can override the default by editing the text in the field.
Whitespace option:
Specifies the conversion treatment for all elements in the generated schema. Select on of the
following values:
– compact - trim leading and trailing spaces - substitute a single space for each contiguous
sequence of spaces.
250 Developer for z/OS: Developing with Db2, CICS, and IMS
– collapse - (1) replace tab, line feed, and carriage return characters with spaces, (2) trim leading
and trailing spaces, and (3) substitute a single space for each contiguous sequence of spaces.
– replace - replace tab, line feed, and carriage return characters with spaces.
– preserve - no whitespace removal nor replacement is performed.
01 ServiceRequest.
02 CommonHeader.
05 HeaderType1.
10 Element1 PIC X(10).
the complex XML type name for the HeaderType1 element is:
– servicerequest_commonheader_headertype1 if the checkbox is not selected.
– HeaderType1 if the checkbox is selected.
The shortening of complex type names allows for the generation of more compact client code
(usually, Java class code) from the WSDL and XSD files containing the complex XML types.
The setting of this checkbox has no effect on top-down or meet-in-middle scenarios.
Developing web services and SOA with Enterprise Service Tools 251
When shortening of a complex type name is attempted, a collision is possible if the short name of
the type already exists as the result of a previously defined type for a group with an identical name
but different parent group names. For example, in the following COBOL structure:
01 ServiceRequest.
02 CommonHeader.
05 HeaderType.
10 Element PIC X(10).
02 SpecificHeader.
05 HeaderType.
10 Element PIC X(10).
the type name of the HeaderType group under SpecificHeader collides with the type name of
the HeaderType group under CommonHeader.
In case of a collision, all colliding names keep the original long type names. Thus, in this example,
the resulting type names are:
– servicerequest_commonheader_headertype and
– servicerequest_specificheader_headertype.
The short name for a complex type is formed by taking the name of the XML element that has that
type, plus some possible modifications. The rules for forming short names are:
1. Take the name of the XML element that has the type (such as HeaderType1).
2. If the name starts with a character that is an invalid character for Java names (for example, a
digit), it is prefixed with a double underscore "__".
3. If a hyphen "-" is present in the original COBOL group name it is replaced with a single
underscore "_".
4. The case of the group name is preserved.
For example, the following group:
03 2-In--B.
04 var2 blank zero pic 999.99.
252 Developer for z/OS: Developing with Db2, CICS, and IMS
Use VALUE literals to initialize omitted data items
Select this checkbox to enable initialization for data items in the language structure that you have
excluded from the XML transformation input data structure (see “Initializing data items in the
COBOL application's input data structure” on page 325 ).
This option applies only to the bottom-up development scenario for generating an XML
transformation, and applies only if you specify Compiled XML Conversion.
Developing web services and SOA with Enterprise Service Tools 253
Advanced Options tab
The Advanced Options tab allows you to set options for the XML Transformation Assistant utility of the
IBM CICS Transaction Server for V 4.1.
The values that you set on this page override, for this particular instance of the wizard, the global values
set for these same options in the XML Transformation Assistant (XSDBind) preferences window.
This tab contains the following fields:
• In the Specify XML Assistant options group:
CCSID:
Specifies the CCSID that is used at run time to encode data between the application program
and the XML transformation binding file. The value of this parameter overrides the value of the
LOCALCCSID system initialization parameter. The value must be an EBCDIC CCSID that is supported
by Java and z/OS conversion services.
If you do not specify this parameter, the application program uses the CCSID specified in the system
initialization parameter, and the Web service binding file is encoded in US EBCDIC (Cp037).
Vendor converter name:
Set the name of the converter program to use when building a vendor style XSDBind file. The vendor
style of XSDBind file opts out of the CICS supplied XML transformation process, instead CICS links
to a converter program which is responsible for handling the XML to commarea conversion. This
method is used to set the name of the converter program. If left blank, this value defaults to the
name of the Converter Driver file.
Note: It is recommended that this field be left blank to let the wizard generate the correctly
coordinated artifact names."
254 Developer for z/OS: Developing with Db2, CICS, and IMS
1. Clear the checkbox Generate all to driver, if it is set.
2. Clear the checkbox at the far left of the input field.
• Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name
exist in the target directory.
Properties tab
The Properties tab displays the path and file names for the new generation properties files.
This tab contains the following fields:
Note: The fields in this tab cannot be changed using this wizard.
• In the group Select targets for the generation properties files:
Properties file container:
Displays the path of a folder that is used to create the generation properties files.
Container.xml
Displays the name that is used for the Container.xml file.
PlatformProperties.xml
Displays the name that is used for the PlatformProperties.xml file.
ServiceSpecification.xml
Displays the name that is used for the ServiceSpecification.xml file.
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name
exist in the target directory.
Click Change XSDBind Preferences button to open the preferences page. These preferences control how
XSDBind files are generated (see “Preferences on the DFHLS2SC tab” on page 170).
Related information
Opening the Preferences window
Developing web services and SOA with Enterprise Service Tools 255
Overview of bottom-up (interpretive) wizard pages
This topic provides an overview of the pages in the wizards with interpretive XML conversion.
For this wizard and conversion type, Web Services for CICS and XML Transformation for CICS are the only
runtimes supported.
Table 38 on page 256 summarizes the pages and tabs for this wizard:
Note:
• W stands for Web Services for CICS
• I stands for IMS SOAP Gateway
• B stands for Batch, TSO, and z/OS UNIX System Services
• T stands for XML Transformation for CICS
• M stands for MTOM/XOP (Message Transformation Optimization Mechanism)/(XML-binary
Optimization Package) service
256 Developer for z/OS: Developing with Db2, CICS, and IMS
Language structures page
The Language structures page for interpretive conversion lists all the high-level language structures in
the source file that was used to start the wizard. Before starting the wizard, when using a selected source
file, ensure that the source file contains the language structure for your application.
Developing web services and SOA with Enterprise Service Tools 257
XSD file:
Specifies the name of the XML schema file
Properties tab
The DFHLS2SC Properties tab displays the path and file names for the new generation properties files.
This tab contains the following fields:
Note: The fields in this tab cannot be changed using this wizard.
Properties file container:
Displays the path of a folder that is used to create the generation properties files.
Container.xml
Displays the name that is used for the Container.xml file.
PlatformProperties.xml
Displays the name that is used for the PlatformProperties.xml file.
ServiceSpecification.xml
Displays the name that is used for the ServiceSpecification.xml file.
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
Select the Start Bundle deployment wizard upon finish and click Finish
This causes the Deploy the CICS Bundle wizard to open upon exiting from the generation wizard. The
location of the XSDBind and other relevant information is passed to the Deploy the CICS Bundle wizard.
The XSDBind file is copied from the location specified in the generation wizard to the location indicated in
the Deploy the CICS Bundle wizard.
The top-down development scenario is available only when the host runtime is CICS and only with
interpretive XML conversion.
This wizard provides functionality similar to that of the DFHSC2LS utility in the CICS XML Transformation
Assistant.
258 Developer for z/OS: Developing with Db2, CICS, and IMS
Overview of top-down wizard pages
This topic provides an overview of the pages in the wizards.
This wizard is available only when the selected host runtime in the launchpad is Web Services for CICS
or XML Transformation for CICS.
The wizard has the same pages and tabs whether the selected application mode in the launch pad is
Service Provider or Service Requester.
Table 39 on page 259 summarizes the pages and tabs for this wizard:
Note:
• W stands for Web Services for CICS
• I stands for IMS Enterprise Suite SOAP Gateway
• B stands for Batch, TSO, and z/OS UNIX System Services
• T stands for XML Transformation for CICS
Developing web services and SOA with Enterprise Service Tools 259
The DFHSC2LS Application and Transformation properties page
The DFHSC2LS Application and Transformation properties page sets the application and transformation
values for the XML transformation.
Note: This wizard provides functionality similar to that of the DFHSC2LS utility in the CICS XML
Transformation Assistant.
On the Transformation Properties tab select:
• Available elements: Elements from the source XSD file that you want to generate transformation for.
Note: This option is common. Typically, you would only need to select Elements.
Use Select All or Deselect All to select or deselect all the available elements in the list.
• Available types: Types from the source XSD file that you want to generate transformation for.
Note: This is option not common. Typically, you would only need to select Elements and not Types,
unless you want the generated code to process all elements of a specific type and not others.
Use Select All or Deselect All to select or deselect all the available types in the list.
Structures tab
The DFHSC2LS Structures tab sets targets for generating language structures files.
On the Structures tab, specify the following options:
Generate to:
Same project
Select this when the file container is on the local system (default).
Remote location
Select this when the file container is on a remote system. For additional information, see “Generation
of Enterprise Service Tools artifacts to remote systems” on page 333.
File container:
Specifies the local or remote folder to which the generated artifacts are written.
260 Developer for z/OS: Developing with Db2, CICS, and IMS
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
XSDBind tab
The DFHSC2LS XSDBind tab sets targets for XSDBind files.
On the XSDBind tab, specify the following options:
File container:
Specifies the local folder to which the XSDBind file is written.
XSDBind file name:
Specifies the name for the XSDBind file.
Log file name:
Specifies the name for the log file.
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
Properties tab
The DFHSC2LS Properties tab displays the path and file names for the new generation properties files.
This tab contains the following fields:
Properties file container:
Displays the path of a folder that is used to create the generation properties files.
Container.xml
Displays the name that is used for the Container.xml file.
PlatformProperties.xml
Displays the name that is used for the PlatformProperties.xml file.
ServiceSpecification.xml
Displays the name that is used for the ServiceSpecification.xml file.
Overwrite files
This checkbox indicates that the wizard overwrites without warning, if files with the same name exist
in the target directory.
Select the Start Bundle deployment wizard upon finish and click Finish
This causes the Deploy the CICS Bundle wizard to open upon exiting from the generation wizard. The
location of the XSDBind and other relevant information is passed to the Deploy the CICS Bundle wizard.
The XSDBind file is copied from the location specified in the generation wizard to the location indicated in
the Deploy the CICS Bundle wizard.
To generate artifacts to a remote system, use the Browse button on any of the wizard pages that allow
you to browse to a target file container.
This table shows the possible targets for file containers.
Developing web services and SOA with Enterprise Service Tools 261
Table 40. Possible target(s) for artifacts
Enterprise Service Target
Tools Artifact
MVS Offline MVS Projects/ z/OS UNIX System
Local Projects Projects System Services System
Converters/Driver Y N Y Y
XSD/WSDL Y N N Y
WSBind Y N N Y
XML Correlator Y N Y N
262 Developer for z/OS: Developing with Db2, CICS, and IMS
• Web services for CICS project, or
• XML Transformation for CICS project
Two types of runtime XML conversion are provided: Interpretive XML conversion and Compiled XML
conversion. The compiled XML conversion has more capabilities than the interpretive XML conversion.
When you select either of the two types of conversion, the selection applies to both request XML
conversion and response XML conversion for the resulting service provider or service requester.
Runtime XML conversion includes:
• XML to Language Structure conversion (conversion of data from XML format to some high-level language
data format such as a specific COBOL data structure):
– Service provider: The service provider converts the data in a service request from XML format to a
high-level language data format.
– Service requester: The service requester converts the data in a service response from XML format to
a high-level language data format.
• Language Structure to XML conversion (conversion of data from some high-level language data format
such as a specific COBOL data structure to XML format):
– Service provider: The service provider converts the data in a service response from a high-level
language data format to XML format.
– Service requester:The service requester converts the data in a service request from a high-level
language data format to XML format.
Developing web services and SOA with Enterprise Service Tools 263
high-level language data format and back (perform conversion of data from high-level language data
format to XML data format).
• You use this development method you must write the conversion programs, transfer them to the host,
compile them, and make them known to the target Web service runtime environment.
In both Web services for CICS and XML Transformation for CICS, the combination of the runtime
environment and the user-supplied XML conversion programs is called the Vendor interface.
In this case, the wizards in the Enterprise Service Tools can be very helpful. You can use a wizard in the
Enterprise Service Tools to generate a COBOL source code module that contains a driver program for a
service provider or service requester (a driver program which is highly configurable through options that
you can select when you are going through the wizard) as well as request and response XML conversion
functions (also configurable through the wizard) and other supporting functions. The XML conversion
functions provide broad support for COBOL data constructs and types, so that in most cases you are not
required to write a wrapper program. The entire COBOL program module can be debugged at run time.
The wizard can also generate other files that are required to deploy a Web service on the host.
See the example application provided by the Enterprise Service Tools: “The CICS catalog manager
example application” on page 531.
Note:
1. In the Web services for CICS environment, for the scenario in which you want to create a new Web
service interface for an existing COBOL application (bottom-up scenario), the wizards in the Enterprise
Service Tools provides more functionality than does the batch file (DFHLS2WS) included in the CICS
Web services assistant (see "The CICS Web services assistant", in the CICS Transaction Server for z/OS
Version 4.1 IBM Documentation, available from CICS Transaction Server for z/OS V4.1 - Library).
2. In the XML Transformation for CICS environment, for the scenario in which you want to create a
new XML Transformation for an existing COBOL application (bottom-up scenario), the wizards in the
Enterprise Service Tools provides more functionality than does the batch file (DFHLS2SC) included
in the CICS XML Transformation assistant (see "The CICS Web services assistant", in the CICS
Transaction Server for z/OS Version 4.1 IBM Documentation, available from CICS Transaction Server
for z/OS V4.1 - Library).
Availability
Interpretive runtime XML conversion is currently only available in Web services for CICS projects and XML
Transformation for CICS projects:
264 Developer for z/OS: Developing with Db2, CICS, and IMS
Type of project: XML conversion mechanisms:
XML Transformation for • Create New Service Interface (bottom-up) wizard - You can choose
CICS Project either:
– Interpretive XML conversion; or
– Compiled XML conversion.
•
• Create New Service Implementation (top-down):
– Interpretive XML conversion only.
Note: Map an Existing Service Interface (meet-in-middle) wizard is not
supported.
Enterprise COBOL
For Enterprise COBOL V3.4, V4.1, and V4.2 the maximum length of an XML document generated from an
inbound or outbound data structure is (2^25)-6, or 33,554,436 bytes.
If this limit is exceeded then one of the following messages is displayed during code generation:
• CRRZX0078E The length of an XML document that can be derived from the inbound data structure
exceeds 33,554,436 bytes.
• CRRZX0075E The length of an XML document that can be derived from the outbound data structure
exceeds 33,554,436 bytes.
Enterprise PL/I
For Enterprise PL/I V4.1 the maximum length of an XML document generated from an inbound or
outbound data structure is (2^30)-1, or 1,073,741,823 bytes.
If this limit is exceeded then one of the following messages is displayed during code generation:
• CRRZX0125E The length of an XML document that can be derived from the inbound data structure
exceeds 1,073,741,823 bytes.
• CRRZX0124E The length of an XML document that can be derived from the outbound data structure
exceeds 1,073,741,823 bytes
Developing web services and SOA with Enterprise Service Tools 265
XML attribute support limitation
This topic covers the limitations for XML attribute support.
XML Instance:
<deposit_detail>
This transaction was initiated
<deposit_transaction account_number=”1”
currency_type=”USD”>123.45</deposit_transaction>
online.
</deposit_detail>
XML Schema:
<xs:element name=”deposit_detail” >
<xs:complexType mixed=”true”>
<xs:sequence>
<xs:element ref=”deposit_transaction” minOccurs=”1” maxOccurs=”5” />
</xs:sequence>
</xs:complexType>
</xs:element>
Figure 4. Example of XML Attribute Support Limitation for Mixed Content XML Elements
DCL 1 INPMSG,
10 LL FIXED BIN(31),
10 ZZ BIT(16),
10 TRANCODE CHAR(8),
266 Developer for z/OS: Developing with Db2, CICS, and IMS
10 BLANK CHAR(1),
10 INDATA,
30 FUNC CHAR(3),
:
When conversion errors occur with the PL/I XML converter, rename the first two fields to "LL" and "ZZ"
respectively and regenerate the PL/I XML converter.
Bottom-up conflict with old WSDL/XSD files and new WSDL files and XSD
files
In the bottom-up development scenario, using an older version of generated WSDL files and XSD files
with newly generated converters can cause errors at runtime. For example, the following runtime error
message can occur:
This event is avoided by only using WSDL files and XSD files generated with the "same" converter; WSDL/
XSDs generated with a converter should always be coupled with the converter, that is older converters
should not be used on new files and new converters should not be used on old files.
Scenarios fail that are importing remote (z/OS Unix) WSDL file that contains,
includes, imports, or redefines a schema
In an Enterprise Service Tools single-service project, if you are running (1) Create New Service
Implementation (top-down) scenario or (2) Map to an Existing Service Interface (meet-in-middle)
scenario, with the WSDL file (that was originally imported from a remote location) that contains, includes,
imports, or redefines a schema, fail with an error.
This event is avoided by:
1. Copying all the required files to either:
• the workstation
• a general project in the workspace
2. Importing the local WSDL file into the "Web Services for CICS Project" using:
RMB -> Import -> Source files and try the top-down scenario.
3. Invoking the top-down scenario.
Developing web services and SOA with Enterprise Service Tools 267
XML element nesting depth
The XML to language structure converter returns the following exception message:
The XML to language structure converter could not handle the nesting depth of a particular XML element.
Although there is an allowance for nesting levels beyond that of the original COBOL structure, this
allowance can be exceeded. For example, if an element exists in the request XML document that is not in
the schema, the element causes the nesting depth error if its nesting level is too deep.
Support for DBCS data members with Web Services for CICS
Support for DBCS (double byte character set) data items in Enterprise Service Tools single-service
projects requires that the request and response XML documents are encoded in UTF-16 or UTF-8.
• With Web Services for CICS runtime
268 Developer for z/OS: Developing with Db2, CICS, and IMS
Exchange XML in UTF-8 with a client by default while the XML Converter Driver exchanges XML with
CICS in UTF-16; when UNICODE is needed, UTF-16 is the most efficient choice currently for the XML
Converters.
For either runtime, it might be necessary to configure z/OS support for UNICODE with a conversion image
that supports conversion between UNICODE and the DBCS host codepage.
Menu item "Generate -> XML" File does not honor XSD schema restrictions
The menu item Generate -> XML File does not honor restrictions in an XSD schema. Using the Generate
XML File action on an XSD created by Enterprise Service Tools could lead to the generation of invalid XML
files.
To avoid this event, edit the generated XML file so that the tag contents conform to the restrictions
specified in the XSD schema.
Developing web services and SOA with Enterprise Service Tools 269
3. Place the COBOL source files in the same directory from which xsebatch is invoked. Use Table 42
on page 270 as a guide.
Table 42. Example for Specifying Directory for Input Language File Location
Directory: Description:
C:\workspace\account_details Main project
C:\workspace\account_details\cobol_src Subdirectory with COBOL source files to import
C:\workspace\account_details\xsebatch_confi Subdirectory with XML configuration files for
g xsebatch
4. Use the InputOutputMessage element and assign the name of the COBOL file for the importFile
attribute (In the example in Table 42 on page 270 the COBOL source file called DFH0ACTD.cbl in
the cobol_src directory is used):
<InputOutputMessage importFile="../cobol_src/DFH0ACTD.cbl">
</InputOutputMessage>
When migrating version 6.0 mapping files (.cmx files) the source files
referenced by the .cmx file must be in the same folder
The migration process for the old mapping files requires that the referenced mapped source files be in the
same folder as the mapping file. If this requirement is not met, the Mapping migration tool fails with the
following error message:
Resource [filename].mapping is not local
To avoid this event, move the referenced source files into the same folder as the mapping file that is being
migrated.
Global element names in generated XML schemas are not consistent between
Interpretive and Compiled XML conversion types
The web service message root element names in the XML schemas generated by default generation of
Interpretive and Compiled XML conversion do not match.
You may need to change the generation default of the Compiled XML conversion to match the Interpretive
conversion case. Doing this lets you change the conversion type from interpretive to compiled, if needed
later, without having to republish the WSDL file and without changing code in clients of the web service.
270 Developer for z/OS: Developing with Db2, CICS, and IMS
When generating the artifacts for Compiled XML conversion you can use the wizard to change the root
element name to match the Interpretive XML conversion. This option is called "Root element name" and is
located in the Generation Options page, on the WSDL and XSD options tab, in the request and response
XML Schema properties group.
For example, the COBOL group named A-B-C causes the Interpretive conversion artifacts to have the
message root element name "a_b_c". The default Compiled conversion artifacts have the root element
name "ABC".
If necessary, the ABC can be changed to a_b_c by using the “Root element name” option in the
Generation Options page so that it can match the the WSDL generated for the interpretive conversion.
DBCS characters not allowed in the generated XML converter file name
DBCS characters are not allowed in the names of Partitioned Data Set members on z/OS. Omit DBCS
characters when specifying the name of the XML converter files. In, addition, check that the default file
names suggested by the wizard do not contain DBCS characters.
Developing web services and SOA with Enterprise Service Tools 271
Using the Enterprise Service Tools Web Service Wizard:
Available runtime: Web Services for CICS
Available development scenario: Create New MTOM/XOP Service Interface (bottom-up)
Note: Only allowed values: Application Mode: Service Provider and Conversion Type: Interpretive XML
Conversion
Limitations are:
• CICS COBOL MTOM/XOP Service Providers:
– COMMAREA-based: The maximum size of an MTOM/XOP attachment (derived from a language
structure) is 32767 bytes as this is the maximum size of a DFHCOMMAREA.
– CHANNEL-based: The maximum size of an MTOM/XOP attachment (derived from a language
structure) is 128mb, which is the maximum size of a COBOL data item.
– CHANNEL DESCRIPTION DOCUMENT-based: Not supported.
• CICS PL/I MTOM/XOP Service Providers:
– COMMAREA-based: The maximum size of an MTOM/XOP attachment (derived from a language
structure) is 32767 bytes as this is the maximum size of a DFHCOMMAREA.
– CHANNEL-based: The maximum size of an MTOM/XOP attachment (derived from a language
structure) is 32767 bytes as this is the maximum size of a character array in PL/I.
– CHANNEL DESCRIPTION DOCUMENT-based: Not supported
In order to take advantage of MTOM/XOP support in CICS, provider and requester mode Web services
must reside in pipelines that are respectively configured for MTOM/XOP message handling. Figure 5
on page 272 is an example configuration file for a provider-mode pipeline that supports bi-directional
MTOM/XOP messaging.
CICS applies message handlers to the request message in the order the messages appear in the
configuration file; this order is reversed for the response message. In Figure 5 on page 272, MTOM/XOP
message handling is applied first to unpack MTOM attachments from the request message and last to
package MTOM attachments with the response message. To compliment Figure 5 on page 272, Figure
6 on page 273 is a sample configuration file for a requester-mode pipeline that supports bi-directional
MTOM/XOP messaging:
272 Developer for z/OS: Developing with Db2, CICS, and IMS
<?xml version="1.0" encoding="EBCDIC-CP-US"?>
<requester_pipeline xmlns="http://www.ibm.com/software/htp/cics/pipeline"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ibm.com/software/htp/cics/pipelinerequester.xsd ">
<service>
<service_handler_list>
<cics_soap_1.1_handler />
</service_handler_list>
</service>
<cics_mtom_handler>
<dfhmtom_configuration version="1">
<mtom_options send_mtom="yes" send_when_no_xop="yes" />
<xop_options apphandler_supports_xop="yes" />
<mime_options content_id_domain="example.org" />
</dfhmtom_configuration>
</cics_mtom_handler>
</requester_pipeline>
The SOAP Gateway enables IMS applications to interoperate outside of the IMS environment through
SOAP to provide and request services independent of platform, environment, application language, or
programming model.
You can enable an IMS PL/I application or a COBOL application for Web services by using a wizard from
the Enterprise Service Tools to generate Web service files for the specified IMS application. You then
deploy these Web service files to the SOAP Gateway to make the specified IMS application available
as a Web service. Different types of client applications, such as Microsoft.NET, Java, and third-party
applications, can then submit SOAP requests into IMS to drive the business logic of the PL/I or COBOL
application.
There are two main steps to enabling your IMS application as a Web service running in the IMS Enterprise
Suite SOAP Gateway environment:
1. Use the Create New Service Interface (bottom-up) wizard from the Enterprise Service Tools to
generate Web service files for your IMS application. (The generated files are described in the next
paragraph.)
2. Use the IMS deployment utility to deploy the Web service interface to the SOAP Gateway. (The IMS
deployment utility allows you to define connection and correlation information for the Web service.)
In the first step, you use the Create New Service Interface (bottom-up) wizard from the Enterprise Service
Tools to generate the Web service files from an existing PL/I source file or COBOL source file in your IMS
application. The source file must contain the request and response interface data structures for your IMS
application. In most cases you do not have to modify or add to your existing IMS application source code.
The wizard generates the following Web service files:
• A Web Services Description Language (WSDL) file, which describes the Web service interface of the IMS
application so that the client can communicate with the Web service.
• A correlator file, which contains information that enables the IMS Enterprise Suite SOAP Gateway to set
the IMS properties and call the IMS application.
• A PL/I or COBOL source file that contains a Web service driver and runtime XML conversion programs.
These runtime XML conversion programs convert request and response data in XML format (which is
the format used by SOAP), to and from the request and response interface data structures in your IMS
application (either PL/I or COBOL).
Developing web services and SOA with Enterprise Service Tools 273
For more information about using the IMS Enterprise Suite SOAP Gateway, including samples, see IMS
Enterprise Suite SOAP Gateway documentation and the IMS Enterprise Suite SOAP Gateway Web site at
http://www.ibm.com/ims.
Overview of creating a service provider from an IMS multisegment MPP using the IMS
Enterprise Suite SOAP Gateway Web service wizard
This topic demonstrates both the tool and runtime aspects of enabling and IMS multisegment MPP as a
Web service. The illustration provided shows: (1) how the language structures and multisegment message
layout of the MPP are represented in a generated XML Schema, and (2) how the XML to Language
Structure converter transforms an XML instance document into IMS multisegment message.
Figure 7. Overview of creating a service provider from an IMS multisegment MPP using the IMS Enterprise
Suite SOAP Gateway Web service wizard
For more information about using the IMS Enterprise Suite SOAP Gateway, including samples, see IMS
Enterprise Suite SOAP Gateway documentation and the IMS Enterprise Suite SOAP Gateway Web site at
http://www.ibm.com/ims.
274 Developer for z/OS: Developing with Db2, CICS, and IMS
Related concepts
Because artifacts generated by the Enterprise Service Tools wizard (the WSDL file, the correlator file, and
either PL/I include file or the COBOL copybook file containing the Web service driver and the runtime XML
conversion programs) must be transferred to a z/OS system, you can use the z/OS Projects perspective
and a local z/OS project in Developer for z/OS to assist with this task.
To generate Web services artifacts for the IMS Enterprise Suite SOAP Gateway runtime environment:
1. To open the z/OS Projects perspective, click the Open Perspective toolbar button, and then
double-click z/OS Projects.
2. Create a local z/OS project:
a. Right-click the z/OS Projects view and select New > Local z/OS Project. The New Local Project
window opens.
b. Type a name for the project.
c. From the Property Group area, select one of these options:
• Select a property group to associate with the project Select this option and then select a
property group for the new project. You can sort the list by clicking the table headings. To
reverse the sort order, click the table headings again.
• Create a property group and associate it with the project. Click Finish to edit the property
group. Select this option to create a property group for the project. Type a name for the group in
the Name field.
• Do not associate the project with a property group. Select this option to create the project
without associating it with a property group.
d. Click Finish. If you are creating a new property group, the property group editor opens.
3. Verify that the Navigator view is open in the z/OS Projects perspective; a Navigator tab should be
visible on the interface. If the Navigator view is not open, follow these steps to open the Navigator
view:
a. In the menu bar of the workbench, select Window > Show View > Other. The Show View wizard
opens.
b. In the Show View wizard, expand General, select Navigator, and click OK.
Developing web services and SOA with Enterprise Service Tools 275
The Navigator view opens.
4. Import into your local project the file (either the PL/I include file or the COBOL copybook file),
that contains the data structures which describe the input and output data structures of your IMS
application. The imported file should also be visible in the Navigator view.
The files that can be used to import into your local project are:
• COBOL:.cbl, .cpy, .cob, and .ccp
• PL/I: .pli, .inc, and .mac
5. Start the Enterprise Service Tools Wizard Launchpad from the Navigator view:
Note: The following steps are only for the Create New Service (bottom-up) wizard, see Contexts for
starting the single-service wizards when you run the wizard outside the Enterprise Tools Perspective
for additional information.
a. In the Navigator view, right-click the imported source file (PL/I or COBOL) that contains the input
and output data structures of the IMS application.
b. Select Enable Enterprise Web Service.
The Enterprise Service Tools Wizard Launchpad wizard opens.
6. Launch the Create New Service Interface (bottom-up) wizard:
a. In the Enterprise Service Tools Wizard Launchpad wizard, make these selections, and then click
Start:
Runtime: IMS Enterprise Suite SOAP Gateway
Scenario: Create New Service Interface (bottom-up)
Conversion type: Compiled XML Conversion
The Create New Service Interface (bottom-up) wizard opens.
7. On the first page of the wizard (entitled Language structures):
a. Click the button Change PL/I Preferences or Change COBOL Preferences. The Preferences
window opens and displays the PL/I or COBOL preferences in the right pane.
b. In the General tab of the PL/I or COBOL preferences page, expand the Platform list box, select
z/OS, verify or change other entries that apply for your z/OS system and then click OK.
c. In the Request Language Structure tab, select the high-level language structure (PL/I or COBOL)
that is the input structure for your IMS application. By default, the first structure defined in the
program source file is selected.
d. In the Response Language Structure tab, select the high-level language structure (PL/I or
COBOL) that is the input structure for your IMS application. By default, the first structure defined
in the program source file is selected.
e. Click Next.
8. On the second page of the wizard (entitled Generation Options):
a. In the XML Converters tab, make these selections:
Host code page: Select the code page that the host uses.
Request code page: 1208 Unicode, UTF-8
Response code page: 1208 Unicode, UTF-8
Note: At this time the IMS Enterprise Suite SOAP Gateway runtime environment supports only
UTF-8.
b. In the Service Location (Endpoint URI) input field of the WSDL and XSD tab, change the host
name and port name to the location of the IMS Enterprise Suite SOAP Gateway, verify or change
other entries that apply for your z/OS system, and click Next.
Note: This URI specifies the address of the Web service.
9. On the third page of the wizard (entitled IMS Enterprise Suite SOAP Gateway Service Provider):
276 Developer for z/OS: Developing with Db2, CICS, and IMS
a. In the IMS Correlator file tab, specify any correlator properties that need to be specified for your
IMS Enterprise Suite SOAP Gateway environment. In particular, in the input field File container,
specify the folder and subfolder in which you want the correlator file to be generated.
Note: You can generate artifacts directly to the z/OS UNIX System Services file system (see
“Generating artifacts remotely” on page 261).
b. Click Next.
10. On the fourth page of the wizard (titled File, data set, or member selection):
a. In the XML Converters tab, specify these values:
Converter file container: The folder and subfolder in which you want the converter programs
to be created.
Converter driver file name: The name of the file in which you want the converter programs to
be generated.
Note: Make sure that the checkbox Generate all to driver is selected. This causes all the
generated Web service programs (driver, request converter, and response converter) to be placed
in the same file. You can generate artifacts directly to MVS (see “Generating artifacts remotely” on
page 261).
b. In the WSDL and XSD tab, specify these settings:
WSDL file container: Specify the folder and subfolder in which you want the WSDL and XSD
files to be generated.
WSDL file name: Select this checkbox and .type the name of the file in which you want the
WSDL document to be created.
Request XSD file name: Clear this checkbox.
Response XSD file name: Clear this checkbox.
Note: The XSD files are not required by IMS SOAP Access. However, as an option, you can select
these two checkboxes to cause the two XSD files to be generated. You can generate artifacts
directly to the z/OS UNIX System Services file system (see “Generating artifacts remotely” on
page 261).
c. Click Finish.
The following files are generated:
• The WSDL file (.wsdl).
• The correlator file (.xml).
• The file containing the Web service driver and runtime XML conversion programs (.cbl).
• The request and response XSD files (.xsd).
After you create the service interface files, the next step is to deploy the service interface files to the IMS
Enterprise Suite SOAP Gateway using the IMS SOAP deployment tool (see “Deploying the Web service
files to the IMS Enterprise Suite SOAP Gateway” on page 277).
Deploying the Web service files to the IMS Enterprise Suite SOAP Gateway
This topic provides a brief overview of the tasks required to deploy the generated Web service files to the
IMS Enterprise Suite SOAP Gateway.
For information about completing the IMS Enterprise Suite SOAP Gateway tasks listed in this topic, see
the IMS Enterprise Suite SOAP Gateway web site at http://www.ibm.com/software/data/ims/soap/.
To deploy the generated Web service files to the IMS Enterprise Suite SOAP Gateway:
1. Install the IMS Enterprise Suite SOAP Gateway.
2. Configure IMS Connect for the IMS Enterprise Suite SOAP Gateway. (Note: IMS Connect must be
installed and properly configured.)
Developing web services and SOA with Enterprise Service Tools 277
3. Locate the Web service files that you generated using the Create New Service Interface (bottom-
up) wizard from the Enterprise Service Tools (see “Generating service interface files from the IMS
application” on page 275).
4. Deploy the Web service files to the IMS Enterprise Suite SOAP Gateway using the IMS Enterprise Suite
SOAP Gateway deployment utility.
5. Create the client application.
6. Run the client application.
Related concepts
“Generating service interface files from the IMS application” on page 275
Support for multisegment message processing programs in IMS Enterprise Suite SOAP
Gateway single-service projects
This topic describes the ability of the Enterprise Service Tools perspective to enable IMS multi-segment
Message Processing Programs (MPPs) as Web services in the bottom-up "Create New Service Interface"
development scenario.
With certain restrictions, the language structure selection panels in the Web service wizard allow multiple
language structures. As part of the page "IMS Message Layouts", two selection tabs are provided; the
Request Message Layout tab and the Response Message Layout tab.
Use the "Request Language Structures" and "Response Language Structures" tabs on the "Language
Structures" page to select the structures that describe the request and response interfaces to the
IMS MPP. When language structures are selected on the language structure tabs, they are entered into
corresponding tables on the "IMS Message Layouts" page.
After selecting the language structures, use the tabs on the "IMS Message Layouts" page to specify
the layout of the request and response messages in detail. Indicate the order and count of each
language structure in their respective messages by using the tables on the "Request Message Layout"
and "Response Message Layout" tabs. The layouts specified in these tables indicate how the XML and
binary messages are structured.
278 Developer for z/OS: Developing with Db2, CICS, and IMS
4. Inter-language structure dependencies are not supported; for example, OCCURS DEPENDING ON
(ODO) subjects in selected language structures cannot specify an ODO object declared outside of the
structure.
Architecture of a bottom-up Web service provider using the IMS Enterprise Suite SOAP
Gateway
This topic provides an overview of the architecture for a Web service provider using IMS Enterprise Suite
SOAP Gateway and created through the bottom-up development scenario.
The following steps describe how a message is processed at runtime:
1. The Web service client application sends a SOAP message to the IMS Enterprise Suite SOAP Gateway
containing input to the IMS application in an XML format.
2. The SOAP Gateway processes the SOAP header and retrieves the appropriate correlation and
connection information for the input request.
3. The SOAP Gateway creates an IMS Connect message, consisting of an IMS Connect header followed by
the input XML data, to IMS Connect using TCP/IP.
4. IMS Connect calls its XML adapter, which in turn calls the XML converter to transform the XML data to
IMS application format.
5. IMS Connect sends the message for further processing. For the remainder of this step the processing
is the same as for a normal transaction flow. The transaction returns its output and the output is
queued to IMS Connect.
6. IMS Connect calls the XML adapter to transform the IMS application data to XML format.
7. IMS Connect sends the output XML message back to the SOAP Gateway using TCP/IP.
8. The SOAP Gateway wraps a SOAP header around the output message.
9. The IMS Enterprise Suite SOAP Gateway sends the SOAP output message back to the client
application.
In this service provider architecture, IMS Message Processing Programs (MPPs) s are not aware that they
are being invoked as Web services and therefore do not have access to the service invocation context.
Meet-in-middle development
This group of topics describes issues involved in meet-in-middle development.
Scenario
When you generate files for a Web service requester for the IMS runtime using the meet-in-middle
scenario and compiled conversion, you can select either the synchronous or the asynchronous type of
callout message.
Asynchronous callout means that the IMS application invokes the Web service requester by issuing an
IMS Insert (ISRT) call, which places the outgoing request message into the IMS message queue. Likewise
when the Web service requester receives the response to the request, it places the incoming response
message into the IMS message queue for the IMS application to retrieve.
Synchronous callout means that the IMS application invokes the Web service requester by issuing an IMS
Callout (ICAL) call, which synchronously invokes the Web service requester with the outgoing request
message. When the Web service requester receives the response to the request, the incoming response
message is returned to the IMS application through the return from the ICAL call.
For the IMS application it is usually much more convenient to issue a synchronous call.
To select asynchronous or synchronous processing:
Developing web services and SOA with Enterprise Service Tools 279
1. In the graphical user interface, select the appropriate value in the Callout message type list box on
the IMS Enterprise Suite SOAP Gateway Service Requester page of the meet-in-middle wizard.
2. In the batch processor, select the appropriate value in the GEN_IMS_MESSAGE_TYPE attribute in the
CodegenProperty element (see “CodegenProperty” on page 422).
280 Developer for z/OS: Developing with Db2, CICS, and IMS
COPY:
01 STRUCT-1.
05 ATTR-1 PIC X(5).
05 ELE-1 PIC X(10).
XSD:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:p1="http://www.example.com"
targetNamespace="http://www.example.com"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<xs:element name="ele1_detail">
<xs:complexType>
<xs:sequence>
<xs:element name="ele_1" type="p1:ele_1" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ele_1">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attr-1">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
Developing web services and SOA with Enterprise Service Tools 281
3. Create two mapping files using the Create Mappings wizard:
a. A mapping file containing the inbound XML and COBOL (or PL/I) data structures
b. A mapping file containing the outbound XML and COBOL (or PL/I) data structures
4. Specify in each mapping file the source and target data elements.
5. Generate resources for a runtime using the Generate <runtime> Resources wizard (meet-in-middle
wizard).
Mappings can be done for data structures stored in the following types of files:
• COBOL source files (the file extension must be .cbl, .cob, .ccp, or .cpy)
• PL/I source files (the file extension must be .pli, .inc, or .map)
• XML content:
– WSDL documents (the file extension must be .wsdl)
– XML instance documents (the file extension must be .xml)
– XML schema (XSD) documents (the file extension must be .xsd)
Mappings are based on the following data models:
• The language data model for a COBOL or PL/I language structure is expressed as an instance of the
COBOL or PL/I Common Application Metamodel (CAM).
• The XML data model for a given language structure is expressed as an instance of the XML Schema
model (whether it is an XML document, WSDL types definition, or XML Schema representation).
Mapping sessions
This topic describes mapping sessions.
A mapping session is the process of using the mapping editor to create mappings between locations in an
XML schema structure and locations in a COBOL or PL/I data structure.
Mappings are stored in a mapping session file. A request mapping session file contains mappings from
XML to COBOL or PL/I. A response mapping session file contains mappings from COBOL or PL/I to XML.
The contents of a mapping session file is called mapping metadata and includes the names and locations
of the source and target elements and the particulars of each mapping.
To create mapping session files you use the Create Mappings wizard, in which you specify the source and
target elements. You then use the mapping editor to create mappings. For each mapping you connect the
appropriate locations in the source and target elements.
Important: Because a mapping session file contains links to the COBOL and XML files relative to the
workbench project, these links might not resolve correctly if you move the mapping session file to a
different folder. Use caution when moving the mapping session file from the directory where it was
created (relative to the workbench project) or when importing already existing mapping session files into
the workbench. In general, moving or importing a mapping session file works only if the file is moved or
imported into a similar directory structure (relative to the workbench project) with identical subdirectory
names.
Related concepts
“Mapping concepts: XML to COBOL or PL/I” on page 281
Related reference
“XML to COBOL mapping reference” on page 337
Mapping editor
This topic describes the mapping editor for the single-service project tools.
282 Developer for z/OS: Developing with Db2, CICS, and IMS
In the mapping editor you create a mapping by connecting an item on the left side of the editor (the
source of the mapping) to an item on the right side of the editor (the target of the mapping). At runtime
when the mapping is performed the data in the source element is converted to the target format and
stored in the target element.
In a request session the XML structure is displayed on the left side of the editor and the COBOL data
structure is displayed on the right side of the editor. In a response session the positions are reversed:
COBOL or PL/I on the left side; XML on the right side.
An element on the left side is called a sender element. An element on the right side is called a receiver
element. A sender element and a receiver element can be mapped together only if they have type
compatibility (see “XML to COBOL mapping reference” on page 337).
The mapping editor supports one-to-one mapping, that is, mapping that goes between one simple or
complex XML structure and one compatible COBOL or PL/I element or structure. You can have multiple
one-to-mappings in one session. The mapping editor does not support one-to-many mapping or many-to-
many mapping.
For both COBOL and PL/I you can map an XML element to a language variable or data structure.
For COBOL only you can also map an XML attribute to a language variable or data structure. (For
XML attributes see the limitations described in “Mapping XML attributes to COBOL with Compiled XML
Conversion” on page 296.)
Related concepts
Related reference
“XML to COBOL mapping reference” on page 337
Supported mappings between language data types and XML Schema built-in
data types
This topic describes the supported mappings between the data types of the supported languages (COBOL
and PL/I) and the XML Schema built-in datatypes.
Developing web services and SOA with Enterprise Service Tools 283
Table 43. COBOL-XML Schema mappings
XML
Schem
a Type 0 1 2 3 4 5 6 7 8 9 10
string 0 1 1 1 1 0 0 1 1 0 1
boolea 0 1 0 1 0 0 0 0 1 0 0
n
float 0 0 0 0 0 0 1 1 1 0 0
double 0 0 0 0 0 0 1 1 1 0 0
decim 0 0 0 1 0 0 0 1 1 0 0
al
duratio 0 0 0 1 0 0 0 0 0 0 0
n
dataTi 0 0 0 1 0 0 0 0 0 0 0
me
time 0 0 0 1 0 0 0 0 0 0 0
date 0 0 0 1 0 0 0 0 0 0 0
gYear 0 0 0 1 0 0 0 0 0 0 0
Month
gYear 0 0 0 1 0 0 0 0 0 0 0
gMont 0 0 0 1 0 0 0 0 0 0 0
hDay
gDay 0 0 0 1 0 0 0 0 0 0 0
gMont 0 0 0 1 0 0 0 0 0 0 0
h
hexBin 0 0 0 0 0 0 0 0 0 0 0
ary
base6 0 0 0 0 0 0 0 0 0 0 0
4Binar
y
anyUR 0 0 0 1 0 0 0 0 0 0 0
I
QNam 0 0 0 1 0 0 0 0 0 0 0
e
NOTAT 0 0 0 1 0 0 0 0 0 0 0
ION
normal 0 0 0 1 0 0 0 0 0 0 0
izedStr
ing
token 0 0 0 1 0 0 0 0 0 0 0
langua 0 0 0 1 0 0 0 0 0 0 0
ge
284 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 43. COBOL-XML Schema mappings (continued)
XML
Schem
a Type 0 1 2 3 4 5 6 7 8 9 10
IDREF 0 0 0 0 0 0 0 0 0 0 0
S
ENTITI 0 0 0 0 0 0 0 0 0 0 0
ES
NMTO 0 0 0 1 0 0 0 0 0 0 0
KEN
NMTO 0 0 0 0 0 0 0 0 0 0 0
KENS
Name 0 0 0 1 0 0 0 0 0 0 0
NCNa 0 0 0 1 0 0 0 0 0 0 0
me
ID 0 0 0 1 0 0 0 0 0 0 0
IDREF 0 0 0 1 0 0 0 0 0 0 0
ENTIT 0 0 0 0 0 0 0 0 0 0 0
Y
integer 0 0 1 1 0 0 0 1 1 0 0
nonPo 0 0 1 1 0 0 0 1 1 0 0
sitiveI
nteger
Negati 0 0 1 1 0 0 0 1 1 0 0
veInte
ger
long 0 0 1 1 0 0 0 1 1 0 0
int 0 0 1 1 0 0 0 1 1 0 0
short 0 0 1 1 0 0 0 1 1 0 0
byte 0 0 1 1 0 0 0 1 1 0 0
nonNe 0 0 1 1 0 0 0 1 1 0 0
gativeI
nteger
unsign 0 0 1 1 0 0 0 1 1 0 0
edLon
g
unsign 0 0 1 1 0 0 0 1 1 0 0
edInt
unsign 0 0 1 1 0 0 0 1 1 0 0
edShor
ti
unsign 0 0 1 1 0 0 0 1 1 0 0
edByte
Developing web services and SOA with Enterprise Service Tools 285
Table 43. COBOL-XML Schema mappings (continued)
XML
Schem
a Type 0 1 2 3 4 5 6 7 8 9 10
positiv 0 0 1 1 0 0 0 1 1 0 0
eInteg
er
286 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 44. PL/I-XML Schema mappings (continued)
XML
Schema
Type 0 1 2 3 4 5 6
anyURI 0 0 0 0 0 0 0
QName 0 0 0 0 0 0 0
NOTATION 0 0 0 0 0 0 0
normalized 0 0 0 0 0 0 0
String
token 0 0 0 0 0 0 0
language 0 0 0 0 0 0 0
IDREFS 0 0 0 0 0 0 0
ENTITIES 0 0 0 0 0 0 0
NMTOKEN 0 0 0 0 0 0 0
NMTOKEN 0 0 0 0 0 0 0
S
Name 0 0 0 0 0 0 0
NCName 0 0 0 0 0 0 0
ID 0 0 0 0 0 0 0
IDREF 0 0 0 0 0 0 0
ENTITY 0 0 0 0 0 0 0
integer 0 1 1 1 1 1 1
nonPositive 0 1 1 1 1 1 1
Integer
NegativeIn 0 1 1 1 1 1 1
teger
long 0 1 1 1 1 1 1
int 0 1 1 1 1 1 1
short 0 1 1 1 1 1 1
byte 0 1 1 1 1 1 1
nonNegativ 0 1 1 1 1 1 1
eInteger
unsignedLo 0 1 1 1 1 1 1
ng
unsignedIn 0 1 1 1 1 1 1
t
unsignedS 0 1 1 1 1 1 1
horti
unsignedB 0 1 1 1 1 1 1
yte
Developing web services and SOA with Enterprise Service Tools 287
Table 44. PL/I-XML Schema mappings (continued)
XML
Schema
Type 0 1 2 3 4 5 6
positiveInt 0 1 1 1 1 1 1
eger
The single-service project tools support both isomorphic simple mappings and nonisomorphic simple
mappings in both request mappings and response mappings.
Related concepts
Related reference
“XML to COBOL mapping reference” on page 337
288 Developer for z/OS: Developing with Db2, CICS, and IMS
Mapping COBOL tables to repeatable XML data structures
This topic describes how COBOL tables are mapped to repeatable XML data structures.
This topic describes which types of mappings the COBOL to XML mapping tools allow you to make
between COBOL tables and repeatable XML Schema elements, for both request mappings (mapping a
repeatable XML Schema element to a COBOL table) and response mappings (mapping a COBOL table to
a repeatable XML Schema element). This topic also describes how these mappings are handled by the
runtime environment.
Note: This topic describes only XML Schema elements (typically occurring in a file ending with the
extension .xsd) but similar rules apply also to mapped XML elements that occur in XML instance
documents (extension .xml) and in WSDL documents (extension .wsdl) (see “Mapping concepts: XML to
COBOL or PL/I” on page 281).
Developing web services and SOA with Enterprise Service Tools 289
Thus if the COBOL table is named USER-ENTRIES and the object of its ODO clause is the item
NUM-USER-ENTRIES, then the XML Schema element that you map to NUM-USER-ENTRIES must
appear in the .xsd file before the XML Schema element that you map to USER-ENTRIES.
Note: The rules for variable-length tables are necessary because of some of the requirements that
COBOL imposes on defining data.
• For multidimensional arrays (also referred to as "nested tables" in COBOL documentation), the XML to
COBOL mapping tools enforce the following rules:
– A repeatable XML Schema element that contains a multidimensional array and the corresponding
COBOL nested table to which you are seeking to map the repeated XML Schema element must have
the same number of array dimensions.
– Each array dimension in the XML Schema data structure must contain the same number of elements
as the corresponding array dimension in the COBOL nested table, and the elements in each
dimension must be isomorphic.
– A mapping between a single dimension of a multidimensional array in an XML Schema element and a
single dimension of a COBOL nested table is not permitted.
Policy
In determining whether a mapping between a repeatable XML Schema element and a COBOL table is
valid, Enterprise Service Tools implements the following policy:
• The mapping tools are flexible in allowing you to map together two items that potentially can contain
different numbers of elements at run time.
For example, the mapping tools allow you to map a repeatable XML Schema element that can repeat as
many as 30 times to a COBOL table that can contain a maximum of only 20 elements. (This examples
assume that the XML Schema element is isomorphic with the COBOL table item and that the mapping is
otherwise valid).
• At run time, the generated conversion program checks for an inequality between the actual number of
repetitions of the XML Schema element and the actual number of elements that the COBOL table can
contain.
If the conversion program determines that the data cannot be converted (either from XML Schema to
COBOL or from COBOL to XML Schema) because the source data contains more elements than are
available in the target data structure, then at that time the conversion program returns an error code to
the calling program.
290 Developer for z/OS: Developing with Db2, CICS, and IMS
Mapping request data
Table 45 on page 291 shows which types of mappings the COBOL to XML mapping tools allow you to
make for request data, and also describes how these mappings are handled by the runtime environment.
In this scenario, at run time, the conversion program wants to convert the data contained in the actual
number of repetitions of the repeatable XML Schema element into items in the actual COBOL table.
Repeatable XML COBOL table GREATER THAN. The mapping is not • Normally, the XML
Schema element, permitted. Schema data is
• Example: The XML
with maxOccurs set converted into
schema element
to an integer value. occurrences in the
can repeat up to
50 times, whereas COBOL table.
the COBOL table • But if there are
can contain only more repetitions
up to 30 elements of the XML
(50 > 30). Schema element
than there are
available slots in
the COBOL table,
then an error is
generated at run
time.
Repeatable XML COBOL table The XML Schema The mapping is • Normally, the XML
Schema element, element can repeat permitted. Schema data is
with maxOccurs= any number of converted into
unbounded times, whereas occurrences in the
the COBOL table COBOL table.
has a finite
• But if there are
maximum number of
more repetitions
occurrences.
of the XML
• Example: The XML Schema element
schema element than there are
has maxOccurs= available slots in
unbounded, the COBOL table,
whereas the then an error is
COBOL table can generated at run
contain only up to time.
30 elements.
Developing web services and SOA with Enterprise Service Tools 291
Table 45. COBOL to XML Mapping Request Data (continued)
Maximum possible
number of Does the mapping
repetitions (See tool permit the
Source data area: Target data area: Note) mapping? Runtime results:
Note: When you attempt to do the mapping in the mapping tool, is the maximum possible number of
repetitions of the repeatable XML Schema element LESS THAN OR EQUAL TO the maximum possible number
of items in the COBOL table?
COBOL table Repeatable XML GREATER THAN. The mapping is not • Normally, the
Schema element, permitted. occurrences in
• Example: The
with maxOccurs set the COBOL table
COBOL table
to an integer value. are converted into
can contain up
to 30 element, repetitions of the
whereas the XML repeatable XML
schema element Schema element.
can repeat only up • But if there are
to 20 times ( 30 > more occurrences
20). in the COBOL
table than there
are allowed
repetitions of
the XML Schema
element, then an
error is generated
at run time.
292 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 46. COBOL to XML Mapping Response Data (continued)
Maximum possible
number of Does the mapping
repetitions (See tool permit the
Source data area: Target data area: Note) mapping? Runtime results:
COBOL table Repeatable XML The COBOL table The mapping is • The occurrences in
Schema element, has a finite permitted. the COBOL table
with maxOccurs= maximum number are converted into
unbounded of occurrences, repetitions of the
whereas the XML repeatable XML
Schema element Schema element.
can repeat any
number of times.
• Example: The
COBOL table can
contain up to
30 elements,
whereas the XML
schema element
has maxOccurs=
unbounded.
Note: When you attempt to do the mapping in the mapping tool, is the maximum possible number of items in
the COBOL table LESS THAN OR EQUAL TO the maximum possible number of repetitions of the repeatable XML
Schema element?
Automatic group mapping is a feature of the mapping editor that automatically creates mappings between
the members of a user-defined XML complex type and the members of a compatible high-level-language
structure (COBOL or PL/I).
This feature is available with both request mapping files and with response mapping files. To create an
automatic group mapping:
1. Select the XML complex type on one side of the mapping editor.
2. Select a compatible high-level-language element (COBOL or PL/I) on the other side of the mapping
editor.
3. Click the Map the matching elements icon on the mapping editor toolbar.
The mapping editor creates a mapping (that is, a Move transform) between each member of the XML
complex type and the corresponding member of the compatible high-level-language structure.
Note: This feature is not available if the high-level-language data structure contains any element that
already has a mapping.
Developing web services and SOA with Enterprise Service Tools 293
a. A composed element is an element containing other elements. Each composed element of the XML
instance document starting from the root has one and only one corresponding COBOL group item
whose nesting depth is identical to the nesting depth of its XML equivalent.
b. A non-composed element is an element that does not contain other elements. Each non-composed
element in the XML instance document starting from the top has one and only one corresponding
COBOL elementary item whose nesting depth is identical to the nesting level of its XML equivalent
and whose memory address at run time can be uniquely identified.
c. For the request mapping, the innermost complex type contains at least one simple type compatible
in type with that of its COBOL mapped item.
d. For the response mapping, every XML complex type must contain the same number of simple types
compatible with that of their COBOL mapped items.
2. The mapped COBOL group does not contain subordinate redefining items. (The mapped group itself
can be a redefining item)
3. The mapped COBOL group does not contain OCCURS DEPENDING ON constructs.
Related concepts
Related reference
“XML to COBOL mapping reference” on page 337
For example, in the case of a sequence constraint, the generated code does not perform any validation on
whether XML elements that are part of a sequence arrive in the request converter in the order specified by
the XML schema's sequence constraint.
In the mapping editor you can map XML elements that are part of the disjunction (choice) group to
COBOL or PL/I items just as you can with other XML elements. The mapping editor user interface provides
facilities to select a specific choice element.
Related concepts
Related reference
“XML to COBOL mapping reference” on page 337
294 Developer for z/OS: Developing with Db2, CICS, and IMS
The ability to generate a COBOL copybook and related mapping files locally can be accomplished by using
the Generate COBOL Mapping action on any available WSDL file. When run, the action invokes WSDL2ELS
on the selected WSDL file with all default settings specified.
The Generate Conversion Code wizard takes either one or two mapping files as input and creates the
following files as output:
• A COBOL or PL/I source code file
• A WSBind file
• A log file
The generated COBOL or PL/I source code file contains a program for converting data from XML format to
an equivalent high-level-language data structure, and also for converting data from a (possibly different)
high-level-language data structure to an equivalent XML format. This program has three main procedures:
• A primary procedure receives conversion requests, calls one of the other procedures to perform the
actual conversion, and returns the reformatted data.
Developing web services and SOA with Enterprise Service Tools 295
• Two procedures perform the data format conversions. Each procedure implements the conversion that
was described in one of the two input mapping files. Thus:
– One procedure converts data (for example, a customer ID and a request for information about the
customer) from XML format to a high-level-language data structure (COBOL or PL/I).
– Another procedure converts data (for example, detailed customer information) from a high-level-
language data structure (COBOL or PL/I) to XML format.
These conversion procedures can be used to enable a Web service provider or requester to invoke and get
data from an existing CICS application. For example, in the case of a Web service provider:
1. The Web service receives a request in XML format for information about a particular customer ID.
2. The Web service calls the conversion program to the convert the request from XML format to the
high-level-language format expected by the existing CICS application.
3. The Web service calls the CICS application, passing it the request.
4. The CICS application returns with the requested information in a high-level-language data structure.
5. The Web service calls the conversion program to convert the customer information to XML format.
6. The Web service returns the customer information to the remote caller.
Related concepts
“Mapping concepts: XML to COBOL or PL/I” on page 281
Related reference
“XML to COBOL mapping reference” on page 337
296 Developer for z/OS: Developing with Db2, CICS, and IMS
Working with annotations
This group of topics describes issues involved in working with annotations.
LINKAGE SECTION.
1 department.
2 member-count pic 9(9) binary.
2 member-details occurs 5 times.
3 first-name pic x(35).
3 last-name pic x(45).
3 contact-phone pic x(25).
3 contact-address pic x(75).
3 promotion-level pic x(20).
3 last-promotion-date pic x(10).
3 salary pic x(3).
Figure 9. Example of COBOL Data Structure for Excluding and Changing Information
Figure 10. Example of Excluding and Changing Information with Option File Elements
Annotating the data structure source allows the users to specify similar type of information directly in the
source of the data declaration rather than in an batch processor option configuration file. This method
keeps the service interface specification and the actual interface in a single source file.
Developing web services and SOA with Enterprise Service Tools 297
Using the example in Figure 9 on page 297 as a reference, the user can obtain the same results by
including the sample annotations in the source file with the data description, as shown in Figure 11 on
page 298.
LINKAGE SECTION.
1 department.
2 member-count pic 9(9) binary.
2 member-details occurs 5 times.
3 first-name pic x(35).
3 last-name pic x(45).
3 contact-phone pic x(25).
3 contact-address pic x(75).
3 promotion-level pic x(20).
3 last-promotion-date pic x(10).
3 salary pic x(3).
Note: The annotations @ANN *OMIT, @ANN *OLDNAME, @ANN *NEWNAMEand @ANN *OPTIONAL
are samples, both the annotation indicator (@ANN) and annotation actions (OMIT, OLDNAME, NEWNAME
and OPTIONAL) are examples for this description. The annotation indicator and annotation action can be
customized to support local/individual requirements.
Figure 11. Example of COBOL Data Structure with Source Annotation Information (See Note)
298 Developer for z/OS: Developing with Db2, CICS, and IMS
The user specifies (creates) the synonym action XML file on the command line when invoking the Batch
processor (xsebatch). The comand is: xsebatch [-annot synFile]. For a complete description of the
xsebatch command, see “Starting the batch processor” on page 413.
If the synonym action XML file is specified in this way, the annotation rules specified in the synonym
action XML file apply to all Batch processor specification files (and therefore all subsequent services)
generated in that particular invocation.
User can override (i.e., change) the synonym action XML file specified on the command line by using the
"annotationsFile" attribute for input and output message elements (InputMessage and OutputMessage) in
the Batch processor option specification file (ServiceSpecification.xml), see “InputMessage” on page 457
and “OutputMessage” on page 473.
When the command line method is used to create and specify the synonym action XML file, the Batch
processor ignores the “ItemExclusionArray” on page 462,, “ItemSelectionArray” on page 464, and
“XMLNamesArray” on page 503 elements of the batch processor options files and instead looks for the
source data annotations that are defined in the synonym action XML file.
Figure 12 on page 299 an example of a synonym action XML file that can be used to direct the processor
to use the indicated annotations present in the COBOL source language sample.
Figure 13 on page 300 is the XML Schema for the Synonym action XML file.
Developing web services and SOA with Enterprise Service Tools 299
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soannot="http://www.ibm.com/xmlent/annot/emf/synactions"
targetNamespace="http://www.ibm.com/xmlent/annot/emf/synactions">
<xsd:element name="itemName">
<xsd:complexType>
<xsd:attribute use="required" name="annotatedAs" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ExcludeItem">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:itemName"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="XMLNameSelection">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:itemName"/>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:xmlName"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ItemSelection">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:itemName"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ActionGroup">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:ExcludeItem"/>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:ItemSelection"/>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:XMLNameSelection"/>
</xsd:sequence>
<xsd:attribute use="required" name="indicator" type="xsd:string"/>
<xsd:attribute use="optional" name="lang" type="xsd:string"/>
<xsd:attribute use="optional" name="format" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="xmlName">
<xsd:complexType>
<xsd:attribute use="required" name="annotatedAs" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="SynonymActions">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:ActionGroup"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
300 Developer for z/OS: Developing with Db2, CICS, and IMS
• If the synonym action file or files are specified (on the command line and/or in the Batch processor
options file) but they do not actually exist, the Batch processor issues a warning and proceeds by
ignoring the specified file.
• Annotations which are not listed in the synonym action file are ignored.
• If the synonym action file is specified on the command line, all occurrences of “ItemExclusionArray”
on page 462,, “ItemSelectionArray” on page 464, and “XMLNamesArray” on page 503 in the batch
processor options files are ignored.
• If the synonym action file is specified on the "annotationsFile" attribute for input and output message
elements , all occurrences of (“ItemExclusionArray” on page 462,, “ItemSelectionArray” on page
464, and “XMLNamesArray” on page 503 in that message specification element (InputMessage or
OutputMessage) are ignored.
• If the synonym action file is specified on the command line or on the "annotationsFile" attribute but no
annotations are found in the source file, an informational message is issued
Developing web services and SOA with Enterprise Service Tools 301
2. If the annotation that designates a data item as "optional" has a value that does not correspond to a
valid COBOL item name, a warning message is issued.
3. If the COBOL item corresponding to the "optional" parameter is also being renamed by the
“XMLNameSelection” on page 504`element, the "optional" parameter must list the new name for
the COBOL element. If this is not performed, then rule #2 takes effect.
4. Annotations that designate data items as "optional" can appear in any order among other
annotations.
5. Annotations that designate data items as "optional" affect only the generated XML Schemas and not
the generated COBOL converters or the messages that are processed or generated by the converters.
6. Annotations that designate data items as "optional" only apply to the Compiled conversion
scenarios. Optional annotations in the Interpretive conversion scenarios are ignored.
7. Only group items and elementary items (other than Level 01, 77, and 88) can be annotated as
"optional". Annotations are ignored if specified for unsupported items.
8. COBOL items annotated as "optional" can have an OCCURS clause; minOccurs facet for these items
are overwritten and set to 0 instead of the value normally derived from the OCCURS clause.
9. Item names in optional annotations are not case sensitive.
01 departmentUpdateRequest.
COPY COMMHDR.
COPY DEPTBDY.
01 departmentUpdateReply.
COPY COMMHDR.
02 updStatus pic xxx.
302 Developer for z/OS: Developing with Db2, CICS, and IMS
Figure 15 on page 303 and Figure 16 on page 303 show of the content of the COMMHDR copybook and
DEPTBDY copybook.
05 commHeader.
10 commId PIC 9(4).
10 commRevDate PIC X(8).
10 commDigest PIC X(40).
Background for Including and Referencing Commonly Used Elements and Types
Prior to IBM Developer for z Systems Version 7.5, service interfaces generated from data structures
that referenced COPY books required that complete XML schemas (XSDs) be generated for each data
structure.
When using the input shown in Figure 14 on page 302, previous versions of the Enterprise Service Tools
wizards generated the output shown in Figure 17 on page 304 (departmentUpdateRequest), and Figure
18 on page 305 (departmentUpdateReply).
Note: For documentation purposes, only the partial schema is displayed.
Developing web services and SOA with Enterprise Service Tools 303
<schema ...
targetNamespace="http://www.TST01I.com/schemas/TST01IInterface"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:cbl="http://www.TST01I.com/schemas/TST01IInterface">
<complexType name="departmentUpdateRequest">
<sequence>
<element name="commHeader"
type="cbl:departmentupdaterequest_commheader"/>
<element form="qualified" name="member_count">
<simpleType>
...
</simpleType>
</element>
<element name="dept_details"
type="cbl:departmentupdaterequest_dept__details"/>
</sequence>
</complexType>
<complexType name="departmentupdaterequest_commheader">
<sequence>
<element form="qualified" name="commId">
<simpleType>
...
</simpleType>
</element>
<element form="qualified" name="commRevDate">
<simpleType>
...
</simpleType>
</element>
<element form="qualified" name="commDigest">
<simpleType>
...
</simpleType>
</element>
</sequence>
</complexType>
<complexType name="departmentupdaterequest_dept__details">
<sequence>
...
</sequence>
</complexType>
<element name="departmentUpdateRequest" type="cbl:departmentUpdateRequest">
</schema>
Figure 17. Example of Part of Schema Generated for WSDL Interface Type for departmentUpdateRequest
304 Developer for z/OS: Developing with Db2, CICS, and IMS
<schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://www.TST01O.com/schemas/TST01OInterface"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:cbl="http://www.TST01O.com/schemas/TST01OInterface">
<complexType name="departmentUpdateReply">
<sequence>
<element name="commHeader" type="cbl:departmentupdatereply_commheader"/>
<element form="qualified" name="updStatus">
...
</element>
</sequence>
</complexType>
<complexType name="departmentupdatereply_commheader">
<sequence>
<element form="qualified" name="commId">
...
</element>
<element form="qualified" name="commRevDate">
...
</element>
<element form="qualified" name="commDigest">
...
</element>
</sequence>
</complexType>
<element name=" departmentUpdateReply" type="cbl:departmentUpdateReply">
...
</element>
</schema>
Figure 18. Example of Part of Schema Generated for WSDL Interface Type for departmentUpdateReply
As shown in Figure 17 on page 304 and Figure 18 on page 305, the declaration for element commHeader
and for its type are duplicated for both departmentUpdateRequest and for departmentUpdateReply. The
only differences are:
1. The complex type name for each element:
(departmentupdaterequest_commheader. VS. departmentupdatereply_commheader)
and
2. The namespaces for the schemas:
(xmlns:cbl="http://www.TST01I.com/schemas/TST01IInterface. VS. xmlns:cbl="http://
www.TST01O.com/schemas/TST01OInterface) .
Because a single COPY book can be used for multiple services the multiplicity of similarly typed elements
may lead to unnecessary duplication of code generated for the clients from such WSDL or XSD files.
This feature allows users to specify common COPY book and common XSD types and elements that can
be re-used by multiple interfaces without having to have duplicate schema content.
Defining common standard elements and types in generated XSD and WSDL
This topic describes the definition parameters for the feature “Including and Referencing Commonly Used
Elements and Types”.
The common schema content is defined to the xsebatch command line tool through an XML file that
can be specified either on the command line parameter (-commtypes for “Common Types”) or by the
“commTypesFile“ attribute specified in the ServiceSpecification.xml file.
The user can override the commtypes xml file specified with the “commTypesFile“ attribute for input
and output message elements (InputMessage and OutputMessage) in the Batch processor option
specification file (ServiceSpecification.xml).
Developing web services and SOA with Enterprise Service Tools 305
When the user creates and specifies the commtypes xml file, the WSDL and XSD generation process uses
the information specified in the commtypes file to generate elements, types and schema imports instead
of the imbedded types, elements and namespaces. The list of common types from the command line
parameter can be overridden by the content of the file(s) specified on the commTypesFile attribute.
Table 47 on page 306 is a listing of the elements and attributes of the Common Types Element.
Figure 19 on page 307 is an example of a commtype xml file used to direct the processor to use common
types, elements, namespaces, in a COBOL source language sample.
306 Developer for z/OS: Developing with Db2, CICS, and IMS
<?xml version="1.0" encoding="UTF-8"?>
<commtypes:CommonTypes xmlns:commtypes="http://www.ibm.com/xmlent/commxsd/emf/commtypes">
<commtypes:CommGroup lang="COBOL" format="fixed">
<commtypes:CommonType
srcName="COMMHDR"
nativeName="commHeader"
commSchemaLocation="commHeader.xsd"
commNamespace="http://www.sample.com/schemas/commHeader"
xmlElementName="commHeader"
commNsPrefix="hdr1"
/>
</commtypes:CommGroup>
</commtypes:CommonTypes>
When the commtype xml file example shown in Figure 19 on page 307 is applied to the sample COBOL
source and copybooks shown in Figure 14 on page 302 in the topic “Commonly Used Elements and
Types” on page 302, then the generated schema for departmentUpdateRequest is shown in Figure 21 on
page 308 and the generated schema for departmentUpdateReply is shown in Figure 22 on page 308.
Note: For documentation purposes, only the partial schema is displayed.
Figure 23 on page 309 shows the commHeader schema.
Developing web services and SOA with Enterprise Service Tools 307
<schema attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://www.TST01I.com/schemas/TST01IInterface"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:cbl="http://www.TST01I.com/schemas/TST01IInterface"
xmlns:hdr1="http://www.sample.com/schemas/commHeader">
<import namespace="http://www.sample.com/schemas/commHeader"
schemaLocation="commHeader.xsd"/>
<complexType name="departmentUpdateRequest">
<sequence>
<element ref="hdr1:commHeader"/>
<element form="qualified" name="member_count">
<simpleType>
<restriction base="int">
<minInclusive value="0"/>
<maxInclusive value="999999999"/>
</restriction>
</simpleType>
</element>
<element name="dept_details" type="cbl:departmentupdaterequest_dept__details"/>
</sequence>
</complexType>
Figure 23 on page 309 is an example of the schema for the commonHdr.xsd file.
308 Developer for z/OS: Developing with Db2, CICS, and IMS
<?xml version="1.0" encoding="UTF-8"?><schema attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://www.sample.com/schemas/commHeader"
xmlns="http://www.w3.org/2001/XMLSchema" xmlns:cbl="http://www.sample.com/schemas/commHeader">
<complexType name="commheader">
<sequence>
<element name="commId">
<simpleType>
<restriction base="short">
<minInclusive value="0"/>
<maxInclusive value="9999"/>
</restriction>
</simpleType>
</element>
<element name="commRevDate">
<annotation>
<appinfo source="http://www.wsadie.com/appinfo">
<initialValue kind="SPACE"/>
</appinfo>
</annotation>
<simpleType>
<restriction base="string">
<maxLength value="8"/>
</restriction>
</simpleType>
</element>
<element name="commDigest">
<annotation>
<appinfo source="http://www.wsadie.com/appinfo">
<initialValue kind="SPACE"/>
</appinfo>
</annotation>
<simpleType>
<restriction base="string">
<maxLength value="40"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
<element name="commHeader" type="cbl:commheader">
<annotation>
<documentation source="com.ibm.etools.xmlent.batch">8.0.0.V200803251533</documentation>
</annotation>
</element>
</schema>
Developing web services and SOA with Enterprise Service Tools 309
5. If the common types XML file is specified on the command line or on the commTypesFile attribute but
no items are found in the source file that correspond to any itemName specified in the common types
XML file, a warning message is issued.
6. If common types XML file is specified either on the command line or in the commTypesFile attribute,
and GEN_ELEMENT_FORM_QUALIFIED property of the CodeGenProperty attribute is set to false
(either in the Batch process configuration file or in the GUI preferences for the workspace) the Batch
processor issues a warning and proceeds, ignoring the specified common types XML file(s).
310 Developer for z/OS: Developing with Db2, CICS, and IMS
Specification of multiple request language structures
If an enterprise applications' input interface is comprised of multiple language structures, it is necessary
to include each of them in the request message that clients will transmit when the application is invoked
as a Web service. To direct the Enterprise Service Tools (EST) Batch processor to incorporate multiple
language structures into the XML Schema (XSD) for the request message—specify multiple, sibling,
InputMessage elements. The order in which the InputMessage elements are specified determines the
order that their equivalent XSD definitions appears in the composite request XSD.
To further customize the request XSD, attributes on the InputMessage element can be specified. These
attributes are:
• xmlEleName - name of the XML element mapped to instances of the language structure
• lowerBound - minimum repetitions of the language structure
• upperBound - maximum repetitions of the language structure
See “InputMessage” on page 457 for the complete description of the InputMessage attributes.
Figure 24 on page 311 demonstrates how to direct the Enterprise Service Tools Batch processor to
incorporate multiple language structures when generating the XSD for the request message of a Web
service.
Note: Generation of XML Conversion artifacts is supported for the IMS Enterprise Suite SOAP Gateway
runtime only when multiple language structures are specified.
<Operation name="PutOrderHistory">
<InputMessage importFile="ORDRSECR.cpy" importDirectory="."
nativeTypeName="ORDRSECR-PUT-HIST-HEAD"
xmlEleName="OrderHistoryHeader" lowerBound="1" upperBound="1">
<ItemSelectionArray>
<ItemSelection itemName="ORDRSECR-PUT-HIST-HEAD.SECURITY-CODE"/>
<ItemSelection itemName="ORDRSECR-PUT-HIST-HEAD.CUSTOMER-ID"/>
<ItemSelection itemName="ORDRSECR-PUT-HIST-HEAD.CUSTOMER-FIRSTNAME"/>
<ItemSelection itemName="ORDRSECR-PUT-HIST-HEAD.CUSTOMER-LASTNAME"/>
</ItemSelectionArray>
</InputMessage>
Figure 24. Example of Specifying Multiple Language Structures for the Request Message
Developing web services and SOA with Enterprise Service Tools 311
OutputMessage elements. The order in which the OutputMessage elements are specified determines the
order that their equivalent XSD definitions appears in the composite response XSD.
To further customize the response XSD, attributes on the OutputMessage element can be specified. These
attributes are:
• xmlEleName - name of the XML element mapped to instances of the language structure
• lowerBound - minimum repetitions of the language structure
• upperBound - maximum repetitions of the language structure
See “OutputMessage” on page 473 for the complete description of the OutputMessage attributes.
Figure 25 on page 312 demonstrates how to direct the Enterprise Service Tools Batch processor to
incorporate multiple language structures when generating the XSD for the response message of a Web
service.
Note: Generation of XML Conversion artifacts is only supported for the IMS SOAP Gateway runtime when
multiple language structures are specified.
<Operation name="GetOrderHistory">
<InputMessage ../>
Figure 25. Example of Specifying Multiple Language Structures for the Response Message
312 Developer for z/OS: Developing with Db2, CICS, and IMS
The Enterprise Service Tools batch processor takes the following steps to generate a composite XML
Schema (assume just the request/input message for these steps):
1. Each InputMessage element is processed and the referenced language structure (nativeTypeName) is
converted into an equivalent complex type and stored in the request XML Schema. The name of each
generated complex type is not settable.
2. For each complex type created in step 1, an XML element is defined and stored in the request XML
Schema. The minOccurs and maxOccurs attributes of each XML element are set to the values of the
lowerBound and upperBound attributes of the corresponding InputMessage element. The name of
each XML element is set to the value of the xmlEleName attribute in the respective InputMessage
element. If the xmlEleName attribute is not specified or its value is non-unique with respect to other
InputMessage elements, a generated name is used.
Note: When the IMS Enterprise Suite SOAP Gateway Web service wizard is used, the xmlEleName
attribute is never specified
3. Once a complex type and an XML element has been defined for each language structure, a single,
top-level complex type is defined that contains all the XML elements in the same order as they
appeared in the series of InputMessage elements.
Note: When the IMS Enterprise Suite SOAP Gateway Web service wizard is used, the order of the
InputMessage element series is determined by the layout specified on the “IMS Message Layouts”
page.
4. A global XML element is defined whose type is the top-level complex type created in step 3. The name
of the global element is set to the value of the XsdSpecIn/@xsdEleName attribute.
Note: A generated named is used when the xsdEleName attribute is not specified.
Table 48 on page 313 illustrates the specification of multiple InputMessage elements and the resulting
composite XML Schema.
Table 48. Example of a Composite XML Schema Resulting from the Specification of Multiple InputMessage
Elements
ServiceSpecification.xml Composite XML Schema
<element name="ServiceRequest"
type="p:EIS_COMPOSITE_MESSAGE" >
</element>
Developing web services and SOA with Enterprise Service Tools 313
Limitations and Error Conditions
This section describes the batch processor limitations and restrictions on generation of composite XML
Schemas from collections of language structures.
Multiple InputMessage and OutputMessages are not allowed if mapping files are specified instead of
language source files (that is, meet-in-middle is not supported since this function deals with generation of
XSDs).
Multiple InputOutputMessage elements are not supported. Use multiple InputMessage and
OutputMessage elements instead.
A language structure may not be specified more than once in a series of InputMessage or OutputMessage
elements. This means that an XML Schema complex type derived from a language structure cannot
reappear later in an XML message with identical or different field level inclusions and/or exclusions.
All language structures specified on InputMessage and OutputMessage elements (nativeTypeName) must
have unique names regardless of the language source file (importFile) they reside in.
All XML element names specified on InputMessage and OutputMessage elements (xmlEleName) must be
unique with respective to the other InputMessage or OutputMessage elements. It is not an error to have a
XML element name that appears both in a series of InputMessage and OutputMessage elements.
Important: Inter-language structure dependencies are not supported.
For example, an OCCURS DEPENDING ON (ODO) subject cannot refer to an ODO object in another
structure.
314 Developer for z/OS: Developing with Db2, CICS, and IMS
Name:
XML to Language Structure Converter:[Program Name Prefix] + 'J'
Description:
Get the required length in bytes of the XML to language structure conversion language structure buffer
Parameters:
Name:
XML to Language Structure Converter:[Program Name Prefix] + 'L
Description:
Get the required length in bytes of the XML to language structure conversion language structure
buffer.
Parameters:
Name:
XML to Language Structure Converter:[Program Name Prefix] + 'K'
Description:
Get the required length in bytes of the XML to language structure conversion XML buffer.
Parameters:
For PL/I XML converters, the following table can be used for reference:
Name:
XML to Language Structure Converter:[Program Name Prefix] + 'J'
Description:
Get request language structure storage requirements
Developing web services and SOA with Enterprise Service Tools 315
Parameters
Name:
XML to Language Structure Converter:[Program Name Prefix] + 'L
Description:
Get response language structure storage requirements
Parameters:
Name:
XML to Language Structure Converter:[Program Name Prefix] + 'K'
Description:
Get response XML document storage requirements
Parameters:
316 Developer for z/OS: Developing with Db2, CICS, and IMS
• The data item is mapped to the XML element tag name out-field. Therefore the start and end tags
are <out-field> and <out-field/>.
• When the response code page is UTF-16, 2 bytes are always required per character.
The maximum number of bytes is computed using the following formulas:
[Max bytes occupied by data item in display format with entity expansion]
= [((Length of the longest predefined entity *
Number of characters in the field) *
Number of bytes per character)) *
(Total number of occurrences)]
= [ ((6 * 5) * (1 or 2)) * 3 ]
= 90 bytes (SBCS) or 180 bytes (UTF-16)
Thus, using the preceding formulas, there are two possible results for the max number of bytes needed to
represent OUT-ITEM in an XML document:
• For an SBCS response code page, the max is 69 + 90 = 159 bytes.
• For UTF-16 response code page, the max is 138 + 180 = 318 bytes.
Developing web services and SOA with Enterprise Service Tools 317
Name: Type: Output:
XML2LS-XML-CCSID 4 byte signed binary Coded CharacterSet IDentifier
for XML to language structure
conversion input.
HOST-LANG-CCSID 4 byte signed binary Coded CharacterSet IDentifier
for language structures.
LS2XML-XML-CCSID 4 byte signed binary Coded CharacterSet IDentifier
for language structure to XML
conversion output.
XML2LS-PROPERTIES 1 byte binary 8 1-bit Indicators for XML to
language structure conversion.
Bit 8 (x'80') : multisegment
indicator Bit 7..1 : reserved for
future use.
318 Developer for z/OS: Developing with Db2, CICS, and IMS
Message WSED0325U issued during generation of the COBOL XML Converters
The length of an XML document that can be derived from the response data structure and is sensitive to
value of the compiler level. A limit of 16,777,210 bytes (~16MB) applies to COBOL V3R3 and earlier. A
limit of 33,554,432 bytes (32MB) applies for COBOL V3R4 and later.
As described previously, the tool computes the maximum size of the response XML document. The
response XML converter is bounded in regards to the maximum size of an XML document it can generate.
The upper bound is approximately 16 megabytes, because that is the size of the XML buffer declared
in the converter. Receipt of the message WSED0235U during generation indicates that the response
converter would not be able to buffer the response XML document in the worst case. Taking this into
account, generation is halted to prevent creation of an response XML converter which may fail at run time.
The 16-megabyte upper bound is related to the historic maximum size of a COBOL data item, even though
the maximum has been relaxed to 128-megabyte in the latest release of Enterprise COBOL for z/OS.
* *********************************************
* *********************************************************
* *************************************************************
* EXAMPLE CONVERSION ROUTING PROGRAM USING UTILITIES
* *************************************************************
* *********************************************************
* *********************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. 'UTILEXMP'.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FEEDBACK-CODE.
02 CONDITION-TOKEN-VALUE.
88 CEE000 VALUE X'0000000000000000'.
88 CEE0E7 VALUE X'000101C749C3C5C5'.
03 SEVERITY PIC S9(4) BINARY.
03 MSG-NO PIC S9(4) BINARY.
03 CASE-SEV-CTL PIC X.
03 FACILITY PIC XXX.
02 I-S-INFO PIC S9(9) BINARY.
LOCAL-STORAGE SECTION.
01 INSTRUCT-MAX-SIZE PICTURE S9(9) BINARY.
01 INSTRUCT-HEAP-ID PIC S9(9) BINARY.
01 INSTRUCT-STG-ADDR POINTER.
01 OUTSTRUCT-MAX-SIZE PICTURE S9(9) BINARY.
01 OUTSTRUCT-HEAP-ID PIC S9(9) BINARY.
01 OUTSTRUCT-STG-ADDR POINTER.
01 OUTXML-MAX-SIZE PICTURE S9(9) BINARY.
LINKAGE SECTION.
01 WEB-SERVICE-INTERFACE.
02 SERVICE-ID PIC X(16).
02 XML-INT-LEN PIC S9(9) BINARY.
02 XML-INT-TXT PIC X(32768).
01 INSTRUCT PIC X.
01 OUTSTRUCT PIC X.
PROCEDURE DIVISION USING WEB-SERVICE-INTERFACE.
MAINLINE SECTION.
* -------------------------------------------------------------
* GET MAX SIZE OF INBOUND LANGUAGE STRUCTURE
* -------------------------------------------------------------
EVAULATE SERVICE-ID
WHEN 'EXAMPLE1'
CALL 'CONV1J' USING INSTRUCT-MAX-SIZE
WHEN 'EXAMPLE2'
CALL 'CONV2J' USING INSTRUCT-MAX-SIZE
END-EVAULATE
* -------------------------------------------------------------
* ALLOCATE STORAGE AREA FOR INBOUND LANGUAGE STRUCTURE
* AND ESTABLISH ADDRESSABILITY
Developing web services and SOA with Enterprise Service Tools 319
* -------------------------------------------------------------
INITIALIZE INSTRUCT-HEAP-ID
CALL 'CEEGTST' USING
INSTRUCT-HEAP-ID INSTRUCT-MAX-SIZE
INSTRUCT-STG-ADDR FEEDBACK-CODE
IF NOT CEE000 OF FEEDBACK-CODE
DISPLAY 'GET HEAP STORAGE FAILED!'
STOP RUN
ELSE
SET ADDRESS OF INSTRUCT
TO INSTRUCT-STG-ADDR
END-IF
* -------------------------------------------------------------
* CALL INBOUND CONVERTER PASSING STORAGE AREA AND XML DOCUMENT
* -------------------------------------------------------------
EVAULATE SERVICE-ID
WHEN 'EXAMPLE1'
CALL 'CONV1I' USING
INSTRUCT XML-INT-LEN XML-INT-TXT OMITTED
RETURNING CONVERTER-RETURN-CODE
WHEN 'EXAMPLE2'
CALL 'CONV2I' USING
INSTRUCT XML-INT-LEN XML-INT-TXT OMITTED
RETURNING CONVERTER-RETURN-CODE
END-EVAULATE
* -------------------------------------------------------------
* GET MAX SIZE OF OUTBOUND LANGUAGE STRUCTURE
* -------------------------------------------------------------
EVAULATE SERVICE-ID
WHEN 'EXAMPLE1'
CALL 'CONV1L' USING OUTSTRUCT-MAX-SIZE
WHEN 'EXAMPLE2'
CALL 'CONV2L' USING OUTSTRUCT-MAX-SIZE
END-EVAULATE
* -------------------------------------------------------------
* ALLOCATE STORAGE AREA FOR OUTBOUND LANGUAGE STRUCTURE
* AND ESTABLISH ADDRESSABILITY
* -------------------------------------------------------------
INITIALIZE OUTSTRUCT-HEAP-ID
CALL 'CEEGTST' USING
OUTSTRUCT-HEAP-ID OUTSTRUCT-MAX-SIZE
OUTSTRUCT-STG-ADDR FEEDBACK-CODE
IF NOT CEE000 OF FEEDBACK-CODE
DISPLAY 'GET HEAP STORAGE FAILED!'
STOP RUN
ELSE
SET ADDRESS OF OUTSTRUCT
TO OUTSTRUCT-STG-ADDR
END-IF
* -------------------------------------------------------------
* CALL BUSINESS PROGRAM PASSING INBOUND LANGUAGE STRUCTURE
* -------------------------------------------------------------
EVAULATE SERVICE-ID
WHEN 'EXAMPLE1'
CALL 'BUSPROG1' USING INSTRUCT OUTSTRUCT
WHEN 'EXAMPLE2'
CALL 'BUSPROG2' USING INSTRUCT OUTSTRUCT
END-EVAULATE
* -------------------------------------------------------------
* MAKE SURE OUTBOUND XML BUFFER IS LARGE ENOUGH TO RETURN
* XML DOCUMENT RESULT
* -------------------------------------------------------------
EVAULATE SERVICE-ID
WHEN 'EXAMPLE1'
CALL 'CONV1K' USING OUTXML-MAX-SIZE
WHEN 'EXAMPLE2'
CALL 'CONV2K' USING OUTXML-MAX-SIZE
END-EVAULATE
* -------------------------------------------------------------
* CALL OUTBOUND CONVERTER TO PRODUCE REPLY XML DOCUMENT
* -------------------------------------------------------------
320 Developer for z/OS: Developing with Db2, CICS, and IMS
EVAULATE SERVICE-ID
WHEN 'EXAMPLE1'
CALL 'CONV1O' USING
OUTSTRUCT XML-INT-LEN XML-INT-TXT OMITTED
RETURNING CONVERTER-RETURN-CODE
WHEN 'EXAMPLE2'
CALL 'CONV2O' USING
OUTSTRUCT XML-INT-LEN XML-INT-TXT OMITTED
RETURNING CONVERTER-RETURN-CODE
END-EVAULATE
* -------------------------------------------------------------
* CLEAN UP AND RETURN TO CALLER
* -------------------------------------------------------------
CALL 'CEEFRST' USING INSTRUCT-STG-ADDR FEEDBACK-CODE
IF NOT CEE000 OF FEEDBACK-CODE
DISPLAY 'FREE INSTRUCT STORAGE AREA FAILED!'
STOP RUN
END-IF
CALL 'CEEFRST' USING OUTSTRUCT-STG-ADDR FEEDBACK-CODE
IF NOT CEE000 OF FEEDBACK-CODE
DISPLAY 'FREE OUTSTRUCT STORAGE AREA FAILED!'
STOP RUN
END-IF
GOBACK.
Limitations: The values that are returned by the utility programs can be invalidated by manual
modification of the generated code.
Developing web services and SOA with Enterprise Service Tools 321
Preference: Effect of this preference:
Author name This input field specifies the character string to be included in the
AUTHOR paragraph of each generated COBOL program.
Request code page This list box specifies the code page to be used for encoding the
request XML message.
Host code page This list box specifies the code page that is used by the z/OS host
system.
Response code page This list box specifies the code page to be used for encoding the
response XML message.
Decimal point is comma This checkbox controls how the comma and period characters are
interpreted in numeric strings:
• When you select this checkbox:
– A comma is interpreted as a decimal point.
– A period is interpreted as a thousands separator.
• When you clear this checkbox (this is the default setting):
– A comma is interpreted as a thousands separator.
– A period is interpreted as a decimal point.
322 Developer for z/OS: Developing with Db2, CICS, and IMS
However, if this checkbox is selected, then a complex type name is generated by taking just the
name of the group.
For example, in this COBOL group:
01 ServiceRequest.
02 CommonHeader.
05 HeaderType1.
10 Element1 PIC X(10).
the complex XML type name for the HeaderType1 element is:
– servicerequest_commonheader_headertype1 if the checkbox is not selected.
– HeaderType1 if the checkbox is selected.
The shortening of complex type names allows for the generation of more compact client code
(usually, Java class code) from the WSDL and XSD files containing the complex XML types.
The setting of this checkbox has no effect on top-down or meet-in-middle scenarios.
When shortening of a complex type name is attempted, a collision is possible if the short name
of the type already exists as the result of a previously defined type for a group with an identical
name but different parent group names. For example, in the following COBOL structure:
01 ServiceRequest.
02 CommonHeader.
05 HeaderType.
10 Element PIC X(10).
02 SpecificHeader.
05 HeaderType.
10 Element PIC X(10).
the type name of the HeaderType group under SpecificHeader collides with the type name
of the HeaderType group under CommonHeader.
In case of a collision all colliding names keep the original long type names. Thus, based on this
example, the resulting type names are:
– servicerequest_commonheader_headertype and
– servicerequest_specificheader_headertype.
The short name for a complex type is formed by taking the name of the XML element that has
that type, plus some possible modifications. The rules for forming short names are:
a. Take the name of the XML element that has the type (such as HeaderType1).
b. If the name starts with a character that is an invalid character for Java names (for example, a
digit), it is prefixed with a double underscore "__".
c. If a hyphen "-" is present in the original COBOL group name it is replaced with a single
underscore "_".
d. The case of the group name is preserved.
For example, the following group:
03 2-In--B.
04 var2 blank zero pic 999.99.
Developing web services and SOA with Enterprise Service Tools 323
Generate qualified XML elements in XML schemas
This checkbox allows for generation of qualified XML elements in the XML schemas.
This allows for the option to require all XML elements be qualified with a namespace and
support generation of XML schemas that can be included in other schemas with lesser chance of
namespace collision.
324 Developer for z/OS: Developing with Db2, CICS, and IMS
Options for handling illegal XML characters
The response XML conversion program generated by Enterprise Service Tools attempts to patch up data in
response language structures so that a valid XML message can be produced.
By default the response converter filters characters from the language structure that are illegal in an XML
document. Using the Enterprise Service Tools COBOL generator preferences page, you can configure this
behavior for debugging and performance purposes. In the left pane of the Preferences window, select
Enterprise Service Tools > COBOL XML Converters.
On the preferences page, lists two options that are associated with converter filters.
• Filter characters illegal in XML 1.0 (response)
The default for this option is on. The response converter scans both nonnumeric and non-binary
numeric fields in the language structure. In nonnumeric fields, any character that is illegal in an XML
document according to the XML 1.0 specification is converted to an EBCDIC, ASCII or UNICODE space
(depending on the response code page). For non-binary numeric fields, if the contents of a field is
invalid according to its usage (for example an invalid packed decimal), the field is initialized to zero.
• Halt on characters illegal in XML 1.0 (response)
This option is turned off by default. The response converter scans both nonnumeric and non-binary
numeric fields in the language structure and returns an exception if either characters illegal in XML 1.0
or invalid non-binary numerics are found.
If illegal nonnumeric data is found, a message stating that the language structure to XML conversion
could not complete because the content of a nonnumeric member of the language structure contained
characters that are not legal in an XML document.
If invalid non-binary numeric data is found, a message stating that the language structure to XML
conversion could not complete because the content of a numeric member of the language structure is
invalid.
You can select only one of these options at a time or, you can select neither option for maximum
performance of the response converter.
Note: Disabling both options provides no protection against including illegal characters in the XML
document produced by the response converter.
Related information
Opening the Preferences window
Developing web services and SOA with Enterprise Service Tools 325
Description
The COBOL request language structure that you specify for the new Web service may contain VALUE
clauses that define the initial values for data items in the request language structure (for more information
about the request language structure see “Language structures page” on page 202 for the wizard
interface and “InputMessage” on page 457 for the batch processor command-line interface).
However, in the source code that is generated for the new Web service, these VALUE clauses are not
included in the LINKAGE section that defines the input data structure that the new Web service passes
to the existing COBOL data application (service provider application or service requester application). The
reason is that the COBOL compiler ignores VALUE clauses in a LINKAGE section.
Therefore, to allow you to give effect to these unincluded VALUE clauses if you wish to do so, the two
options described in this help topic cause the Enterprise Service Tools source code generator to add
initialization source code to the new Web service driver. This initialization source code initializes data
items in the input data structure that is passed to the existing COBOL application with the same initial
values that would have existed if the VALUE clauses had been processed.
Note: This option requires that the VALUE literal be defined on one line (no continuation lines).
For information about how to specify these options see the relevant section of the online help either for
the Create New Service Interface (bottom-up) wizard (“Setting preferences for COBOL XML converters”
on page 145) or for the command-line batch processor (“CodegenProperty” on page 422).
The difference between the two options is as follows:
• The INIT_EMPTY_ITEMS_IN_INTERFACE option enables initialization for data items in the request
language structure that you have included in the Web service input data structure.
– Even when this option is enabled, it does not affect a particular COBOL data item unless the
corresponding XML element in the request XML schema definition is empty.
- An element is empty if contains no information other than the name of the data item. Examples of
empty elements:
<element name="userName"></element>
<element name="Department"/>
- For example:
• Suppose the following:
– In the original COBOL data structure the data item Department is initialized to 044 by means
of a VALUE clause.
– The option INIT_EMPTY_ITEMS_IN_INTERFACE is enabled.
– A request is received in which the XML element corresponding to the COBOL data item
Department is empty.
• The result is that Enterprise Service Tools initializes the corresponding data item (Department)
in the input data structure that is passed to the existing COBOL application to the same value
(044) that would have existed if the VALUE clause had been processed.
– Otherwise (that is, if the option is not enabled, or if the option is enabled but the XML element in the
request XML schema definition is not empty) if the XML element does not specify a value for the data
item, then Enterprise Service Tools sets the corresponding data item in the input data structure that
is passed to the existing COBOL application to:
- Blanks if the data item is alphabetic or alphanumeric.
- 0 if the data item is a numeric data item.
• The INIT_OMITTED_ITEMS_IN_INTERFACE option enables initialization for data items in the request
language structure that you have excluded from the Web service input data structure.
Note: If an excluded data item is not initialized using this option, then its contents are undefined.
326 Developer for z/OS: Developing with Db2, CICS, and IMS
For more information about included and excluded data items see “Language structures page” on page
202 for the wizard interface or “InputMessage” on page 457 for the batch processor command-line
interface.
Including COBOL source code comments in generated XSD and WSDL files
This topic describes an option that enables you to add the comments from a COBOL source code file to
the XSD and WSDL files that are created when you generate a Web service using the bottom-up method
and using compiled XML conversion in a single-service project.
This option is available both in the Create New Service Interface (bottom-up) wizard (see “Setting
preferences for COBOL XML converters” on page 145) and in the command-line batch processor (see
the property GEN_COMMENT_IN_XSD in “CodegenProperty” on page 422).
The following table shows the types of files that are used as input files and some of the files that are
generated as output files when you create a Web service using the bottom-up method and using compiled
XML conversion in the batch processor (see “The types of single-service projects” on page 176):
When the option described in this topic is enabled, the runtime code generator extracts the comments
from the COBOL source code file and adds the comments to the WSDL file and to the two XSD files
described in the previous table.
The following table describes this option in more detail:
Item: Description:
Which comment lines are • Every comment line is extracted starting at the beginning of the source
extracted: file, and continuing up to but not including whichever of the following
items comes first:
– The very first PROCEDURE DIVISION statement. If the source file does
not contain a PROCEDURE DIVISION statement, then every comment
line is extracted from the source file.
– The next available level 01 group after the level 01 group
selected for the interface.
• Comments are extracted only from the specified COBOL source code file
itself and not from any COPY files that it may reference.
• Only comment lines (created by placing a * in column 7) are extracted.
Comment entries and optional paragraphs are not extracted.
Where the comment lines The extracted comment lines within each level 01 COBOL data item in the
are placed in the XSD and COBOL source code file are added to the documentation element of the
WSDL files: annotation element belonging to the top-level data type derived from
that level 01 COBOL data item.
Developing web services and SOA with Enterprise Service Tools 327
Item: Description:
Entity references: Characters that are used in XML as pre-defined entity references are
replaced by their expanded forms. For example, an ampersand symbol (&)
is replaced by a string that represents the ampersand entity expansion.
Multibyte characters: Multibyte characters in the text of a COBOL comment must follow the rules
given in the Enterprise COBOL documentation for multibyte characters.
Globalization concerns: The content of the COBOL comment lines is expected to follow the rules
of the Enterprise COBOL version 3.4 and later. No attempts to manipulate,
transform or translate the content (beyond what is described in this section)
is done by the EST generation process.
Invalid XML code points: If invalid XML 1.0 codepoints appear in the COBOL comments and the
copybook is given to the single-service tools for processing, then the
behavior of the tool is unpredictable (The null character (0x00) is an
example of invalid XML content).
328 Developer for z/OS: Developing with Db2, CICS, and IMS
• replace - selecting this option may decrease the performance of the LS2XML converter as each
character needs to be inspected and substituted with a space if it is tab, line feed, or carriage return.
Network performance is unaffected as the message size is not changed.
• collapse - selecting this option may decrease the performance of the LS2XML converter because in
addition to the work required by "replace" leading, trailing, and contiguous sequences of whitespace are
detected and removed. Network performance might be improved as fewer bytes are transmitted over
the network when the document size is decreased by whitespace removal.
Table 49 on page 329 contains an example of the output of the Language Structure to XML Converter
(LS2XML) for each whitespace processing option.
SUBSTITUTED
.Developer\n.for...z/OS.
CHARACTERS (See
Note):
collapse
Developer.for.z/OS
replace
.Developer..for...z/OS.
preserve
.Developer\n.for...z/OS.
DISPLAYED AS:
Brought to you by:
Developer for z/OS
SUBSTITUTED
\tBrought.to.you.by:\r\t\tDeveloper.for.z/OS\n
CHARACTERS (See
Note):
collapse
Brought.to.you.by:Developer.for.z/OS
replace
.Brought.to.you.by:...Developer.for.z/OS.
preserve
\tBrought.to.you.by:\r\t\tDeveloper.for.z/OS\n
Note: Spaces are indicated with a dot. The characters are: "\t" for tab, "\n" for new line, and "\r" for
carriage return.
Use of namespaces
This topic describes how namespaces are used in request converters and response converters.
For the request conversion (XML to COBOL) only the target namespace of the root element is recognized
by the converter. Target namespaces can be assigned by prefixing an element with a namespace prefix
(forming a QName) or declaring a default namespace. The following restrictions apply:
• No validation of leaf elements. Root element can optionally be validated (See the attribute
GEN_VALIDATE_ROOT_IN_NS in “CodegenProperty” on page 422),
AND
Developing web services and SOA with Enterprise Service Tools 329
• No distinction can be made for elements that only differ by namespace (For example, elements "q:a"
and "q1:a" where q and q1 are bound to different namespaces in the message are treated as just "a")
For the response conversion (COBOL to XML) the correct qualification prefixes and namespaces are
generated based on the schema(s) for the XML message.
For optimization purposes, if all the elements of the response message are bound to the same namespace
they are implicitly qualified using a default namespace. For example, the response converter generates
the message shown in Figure 26 on page 330.
Figure 26. Example of Response Converter Message Using Implicitly Qualified Elements
Figure 27. Example of Response Converter Message Using Explicitly Qualified Elements
Note: The content of Figure 26 on page 330 and Figure 27 on page 330 is equivalent; however Figure 26
on page 330 is a more efficient use of XML Namespaces.
The response XML converter uses this optimization when possible to reduce the size of XML messages,
this optimization has conservation benefits from CPU time to network bandwidth.
Note: This optimization is only possible if the elementForm values (explicit or implicit) are the same for all
mapped items.
Figure 28 on page 331 is an example of an XML Schema with mixed elementForm values:
330 Developer for z/OS: Developing with Db2, CICS, and IMS
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:addr="http://www.address.com/"
targetNamespace="http://www.address.com/"
elementFormDefault="unqualified" attributeFormDefault="unqualified">
<complexType name="USAddress">
<sequence>
<!-- explcit Form="qualified" -->
<element name="name" type="string" form="qualified"/>
For the schemas with mixed element qualification, the response converter generates the namespaces
prefixes when required. For the previous schema with mixed element qualification (see Figure 28 on page
331), the response converter generates a message containing the following fragment:
...
<addr:name>addr:name</addr:name> <!-- qualified -->
<street>street</street> <!--unqualified-->
...
Developing web services and SOA with Enterprise Service Tools 331
Setting preferences for PL/I XML converters
To set preferences for PL/I XML converters, open the PL/I XML Converters page in the Enterprise Service
Tools preferences.
Setting the preferences for PL/I XML converters affect single-service projects, including:
• Web Services for CICS
• JSON Services forCICS project
• XML Transformation for CICS
• IMS Enterprise Suite SOAP Gateway
• Batch, TSO, and z/OS UNIX System Services
These preferences affect how runtime XML conversion programs generated by single-service project
wizards in the Enterprise Service Tools convert data between the XML format used in service requests and
responses and the high-level language data structures used by PL/I:
To set generation preferences for runtime XML conversion programs:
1. In the left pane of the Preferences window, select PL/I XML Converters
2. Change the preferences:
a. The preferences on the Basic tab are described in the following table:
332 Developer for z/OS: Developing with Db2, CICS, and IMS
• Pull-parsing of XML fragments (a complete XML document is buffered and is parsed one fragment at a
time from a file or memory).
In the Enterprise Service Tools single-service projects, the XMLSS option removes the following
limitations present in the COMPAT option:
1. Parsing of UTF-8 requires an up-front, expensive, twice-executed, codepage conversion.
2. XML Namespace information is ignored - preventing the XML to language structure converter from
being able to disambiguate elements having identical names but different target namespaces.
The ability to generate Enterprise Service Tools artifacts to remote systems (currently MVS, or z/OS UNIX)
using Enterprise Service Tools project is supported by selecting a remote location.
Table 50 on page 333 describes the valid remote destinations for various Enterprise Service Tools artifact
and also supplies the validation rules.
Developing web services and SOA with Enterprise Service Tools 333
Table 50. Valid Remote Destination Rules (continued)
Target
Enterprise Service Tools
Artifact System PDS in MVS Sub-
Projects System Directory in z/OS UNIX
Checks if the user has write
access.
Does not allow an invalid File
WSBind Not applicable name.
Acceptable characters are: A-Z a-
z 0-9 . / _
Limitations
The following are the limitations of this capability:
1. The generation properties files cannot be used in batch mode.
2. Generating to z/OS UNIX sub-projects is not supported.
334 Developer for z/OS: Developing with Db2, CICS, and IMS
Product:
This is the product version used to generate the WSBind file.
Developing web services and SOA with Enterprise Service Tools 335
Container name:
If the program interface for a Service Provider mode Web service is CHANNEL, then this is the name
of the container where the application data is stored.
Request Channel:
The name of the Request Channel Description Document.
Response Channel:
The name of the Response Channel Description Document.
Vendor Converter name:
Name of the converter program to which CICS delegates language structure and XML conversion for
this Web service This value is set for the Compiled XML Conversion type.
336 Developer for z/OS: Developing with Db2, CICS, and IMS
• Response Channel - Editable - NO
• Vendor Converter name - Editable - YES
Table 51. Values of the fundamental facets for XML Schema built-in primitive data types
Primitive
Data type ordered bounded cardinality numeric
string false false countably infinite false
boolean false false finite false
float total true finite true
double total true finite true
decimal total false countably infinite true
duration partial false countably infinite false
dateTime partial false countably infinite false
time partial false countably infinite false
date partial false countably infinite false
gYearMonth partial false countably infinite false
gYear partial false countably infinite false
gMonthDay partial false countably infinite false
gDay partial false countably infinite false
gMonth partial false countably infinite false
hexBinary false false countably infinite false
base64Binary false false countably infinite false
anyURI false false countably infinite false
QName false false countably infinite false
NOTATION false false countably infinite false
Table 52. Values of the fundamental facets for XML Schema built-in derived data types
Derived
Data type ordered bounded cardinality numeric
normalizedString false false countably infinite false
Developing web services and SOA with Enterprise Service Tools 337
Table 52. Values of the fundamental facets for XML Schema built-in derived data types (continued)
Derived
Data type ordered bounded cardinality numeric
token false false countably infinite false
language false false countably infinite false
IDREFS false false countably infinite false
ENTITIES false false countably infinite false
NMTOKEN false false countably infinite false
NMTOKENS false false countably infinite false
Name false false countably infinite false
NCName false false countably infinite false
ID false false countably infinite false
IDREF false false countably infinite false
ENTITY false false countably infinite false
integer total false countably infinite true
nonPositiveInteger total false countably infinite true
negativeInteger total false countably infinite true
long total true finite true
int total true finite true
short total true finite true
byte total true finite true
nonNegativeInteger total false countably infinite true
unsignedLong total true finite true
unsignedInt total true finite true
unsignedShort total true finite true
unsignedByte total true finite true
positiveInteger total false countably infinite true
These data types are described in the Enterprise COBOL for z/OS reference manual.
338 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 53. Enterprise COBOL type classes and categories
Level of item Class Category
Elementary Alphabetic Alphabetic
Numeric Numeric
Internal floating-point
External floating-point
Alphanumeric Numeric-edited
Alphanumeric-edited
Alphanumeric
DBCS
National National
Group Alphanumeric Alphabetic
Numeric
Internal floating-point
External floating-point
Numeric-edited
Alphanumeric-edited
Alphanumeric
DBCS
National
Table 54 on page 339 shows the compatibility of simple built-in primitive data types:
Table 54. Compatibility of simple XML Schema built-in primitive data types
Default Language
Default XML to
COBOL data Class or Structure to XML
XML Datatype Language Structure
Category Conversion (See Note
Conversion
1)
Alphabetic,
Alphanumeric, National,
string DBCS, Numeric, MOVE, NUMVAL MOVE
Numeric edited (See
Note 2)
boolean Alphabetic, Numeric MOVE, NUMVAL MOVE
Developing web services and SOA with Enterprise Service Tools 339
Table 54. Compatibility of simple XML Schema built-in primitive data types (continued)
Default Language
Default XML to
COBOL data Class or Structure to XML
XML Datatype Language Structure
Category Conversion (See Note
Conversion
1)
Numeric, Numeric-
float MOVE, NUMVAL MOVE
edited
Numeric, Numeric-
double MOVE, NUMVAL MOVE
edited
Numeric, Numeric-
decimal MOVE, NUMVAL MOVE
edited
duration Alphanumeric, National N/A N/A
dateTime Alphanumeric, National N/A N/A
time Alphanumeric, National N/A N/A
date Alphanumeric, National N/A N/A
gYearMonth Alphanumeric, National N/A N/A
gYear Alphanumeric, National N/A N/A
gMonthDay Alphanumeric, National N/A N/A
gDay Alphanumeric, National N/A N/A
gMonth Alphanumeric, National N/A N/A
hexBinary Alphanumeric, National N/A N/A
base64Binary Alphanumeric, National N/A N/A
anyURI Alphanumeric, National N/A N/A
QName Alphanumeric, National N/A N/A
NOTATION Alphanumeric, National N/A N/A
Note:
1. The mapping tools will not enforce matching rules for user-defined simple XML schema types that
are derived by constraint. For example, if for a base="int", the user defined type has a constraint of
minInclusive value="-99" we may not be able to enforce the minInclusive constraint.
2. Valid MOVEs between numeric and non-numeric types in XML and COBOL follow the rules described
in the COBOL Language Reference Manual.
Table 55 on page 340 shows the compatibility of simple built-in derived data types:
Table 55. Compatibility of simple XML Schema built-in derived data types
Default Language
Default XML to
COBOL data Class or Structure to XML
XML Datatype Language Structure
Category Conversion (See Note
Conversion
1)
Alphabetic,
normalizedString N/A N/A
Alphanumeric, National
Alphabetic,
token N/A N/A
Alphanumeric, National
340 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 55. Compatibility of simple XML Schema built-in derived data types (continued)
Default Language
Default XML to
COBOL data Class or Structure to XML
XML Datatype Language Structure
Category Conversion (See Note
Conversion
1)
Alphabetic,
language N/A N/A
Alphanumeric, National
Alphabetic,
IDREFS N/A N/A
Alphanumeric, National
Alphabetic,
ENTITIES N/A N/A
Alphanumeric, National
Alphabetic,
NMTOKEN N/A N/A
Alphanumeric, National
Alphabetic,
NMTOKENS N/A N/A
Alphanumeric, National
Alphabetic,
Name N/A N/A
Alphanumeric, National
Alphabetic,
NCName N/A N/A
Alphanumeric, National
Alphabetic,
ID N/A N/A
Alphanumeric, National
Alphabetic,
IDREF N/A N/A
Alphanumeric, National
Alphabetic,
ENTITY N/A N/A
Alphanumeric, National
Numeric, Alphanumeric
integer (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
nonPositiveInteger (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
negativeInteger (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
long (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
int (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
short (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
byte (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Developing web services and SOA with Enterprise Service Tools 341
Table 55. Compatibility of simple XML Schema built-in derived data types (continued)
Default Language
Default XML to
COBOL data Class or Structure to XML
XML Datatype Language Structure
Category Conversion (See Note
Conversion
1)
Numeric, Alphanumeric
nonNegativeInteger (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
unsignedLong (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
unsignedInt (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
unsignedShort (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
unsignedByte (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Numeric, Alphanumeric
positive-Integer (See Note 2), Numeric- MOVE, NUMVAL MOVE
edited
Note:
1. The mapping tools will not enforce matching rules for user-defined simple XML schema types that
are derived by constraint. For example, if for a base="int", the user defined type has a constraint of
minInclusive value="-99" we may not be able to enforce the minInclusive constraint.
2. Valid MOVEs between numeric and non-numeric types in XML and COBOL follow the rules described
in the COBOL Language Reference Manual.
Compatibility is supported for mapping elementary COBOL groups and data items to simple XML
structures. Selecting or mapping OCCURS DEPENDING ON (ODO) objects is not required in bottom-up or
meet-in-middle scenarios when using Compiled XML Conversion. Table 56 on page 343 shows examples
of compatible items:
342 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 56. Examples of compatible items
Enterprise COBOL group or
repeating item: Sample compatible XML structure:
COBOL Group:
<complexType name="groups_simplegroup">
<sequence>
2 SimpleGroup <element name="deposit_request1">
3 DEPOSIT-REQUEST1 PIC X. <annotation>
<appinfo source="http://www.wsadie.com/appinfo">
<initialValue kind="SPACE"/>
</appinfo>
</annotation>
<simpleType>
<restriction base="string">
<maxLength value="1"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
Developing web services and SOA with Enterprise Service Tools 343
Table 56. Examples of compatible items (continued)
Enterprise COBOL group or
repeating item: Sample compatible XML structure:
COBOL OCCURS - fixed length array
<element maxOccurs="7" minOccurs="7" name="RepeatingGroup"
(group item): type="cbl:Groups_repeatinggroup"/>
<complexType name="Groups_repeatinggroup">
2 RepeatingGroup occurs 7 times. <sequence>
3 DEPOSIT-REQUEST3 PIC X. <sequence>
<element name="deposit_request3">
<annotation>
<appinfo source="http://www.wsadie.com/appinfo">
<initialValue kind="SPACE"/>
</appinfo>
</annotation>
<simpleType>
<restriction base="string">
<maxLength value="1"/>
</restriction>
</simpleType>
</element>
</sequence>
</sequence>
</complexType>
<dependingOn>depending-on model
reference</dependingOn>
344 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 56. Examples of compatible items (continued)
Enterprise COBOL group or
repeating item: Sample compatible XML structure:
COBOL OCCURS DEPENDING ON -
<element maxOccurs="7" minOccurs="0" name="RepeatingGroupODO"
variable length array (group item): type="cbl:Groups_repeatinggroupodo">
<annotation>
2 RepeatingGroupODO occurs <appinfo source="http://www.wsadie.com/appinfo">
0 to 7 times <dependingOn>depending-on model reference</dependingOn>
depending on Odo-Count1. </appinfo>
3 DEPOSIT-REQUEST4 PIC X. </annotation>
3 Action-Code PIC 999. </element>
<complexType name="Groups_repeatinggroupodo">
The following code is generated when <sequence>
an ODO object is selected as the <sequence>
<element name="deposit_request4">
interface. <annotation>
<appinfo source="http://www.wsadie.com/appinfo">
<dependingOn>depending-on model <initialValue kind="SPACE"/>
reference</dependingOn> </appinfo>
</annotation>
<simpleType>
<restriction base="string">
<maxLength value="1"/>
</restriction>
</simpleType>
</element>
<element name="Action_Code">
<simpleType>
<restriction base="short">
<minInclusive value="0"/>
<maxInclusive value="999"/>
</restriction>
</simpleType>
</element>
</sequence>
</sequence>
</complexType>
Developing web services and SOA with Enterprise Service Tools 345
Table 57. COBOL to XML type derivation (continued)
COBOL Type COBOLUsageValue+ Corresponding XSD Type
COBOL ModelType
properties
COBOL Numeric Type Display/binary
<xsd:simpleType>
+decimal <xsd:restriction base="xsd:decimal">
display, binary, comp, comp-4, <xsd:minInclusive value="xx.x"/>
comp-5 ->display/binary <xsd:maxInclusive value="yy.y"/>
</xsd:restriction>
</xsd:simpleType>
Display/binary
<xsd:simpleType>
+~decimal + number <xsd:restriction base="xsd:short">
of nines <= 4 + sign <xsd:minInclusive value="xx"/>
<xsd:maxInclusive value="yy"/>
</xsd:restriction>
</xsd:simpleType>
Display/binary
<xsd:simpleType>
+~decimal + 4 <xsd:restriction base="xsd:int">
<number of nines <= <xsd:minInclusive value="xx"/>
<xsd:maxInclusive value="yy"/>
9+ sign </xsd:restriction>
</xsd:simpleType>
Display/binary
<xsd:simpleType>
+~decimal + number <xsd:restriction base="xsd:short">
of nines <= 4 + no <xsd:minInclusive value="xx"/>
<xsd:maxInclusive value="yy"/>
sign </xsd:restriction>
</xsd:simpleType>
Display/binary
<xsd:simpleType>
+~decimal + 4 <xsd:restriction base="xsd:int">
<number of nines <= <xsd:minInclusive value="xx"/>
<xsd:maxInclusive value="yy"/>
9+ no sign </xsd:restriction>
</xsd:simpleType>
Display/binary
<xsd:simpleType>
+~decimal + 9 <xsd:restriction base="xsd:long">
<number of nines + <xsd:minInclusive value="xx"/>
<xsd:maxInclusive value="yy"/>
nosign </xsd:restriction>
</xsd:simpleType>
346 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 57. COBOL to XML type derivation (continued)
COBOL Type COBOLUsageValue+ Corresponding XSD Type
COBOL ModelType
properties
packed-decimal, comp-3 -> packedDecimal If the decimal point is specified:
packedDecimal
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="xx.x"/>
<xsd:maxInclusive value="yy.y"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base="xsd:short">
<xsd:minInclusive value="xxx"/>
<xsd:maxInclusive value="yyy"/>
</xsd:restriction>
</xsd:simpleType>
COBOL Alphanumeric-edited
<xsd:simpleType>
Type <restriction base="string">
<length value="n"/>
</restriction>
</simpleType>
Developing web services and SOA with Enterprise Service Tools 347
Table 57. COBOL to XML type derivation (continued)
COBOL Type COBOLUsageValue+ Corresponding XSD Type
COBOL ModelType
properties
COBOL Address Type - not supported -
COBOL Object reference Type - not supported -
Table 58. Example 1 XML Instance of Isomorphic Structure with Isomorphic Element Mapping for COBOL
XML Instance COBOL Data Structure
<x1> 1 A,
<x2>2</x2> 2 B pic 9,
<x3> 2 C,
<x4>4</x4> 3 D pic 9;
</x3>
</x1>
Figure 29. Display 1 XML Instance of Isomorphic Structure with Isomorphic Element Mapping for COBOL
348 Developer for z/OS: Developing with Db2, CICS, and IMS
Figure 30. Example 1 of XML Instance Isomorphic Structure with Isomorphic Element Mapping for COBOL
Table 59 on page 349 and Figure 31 on page 349are two non-isomorphic structures (an XML instance
document and a COBOL language structure) have isomorphic subsets and show isomorphic element
mapping:
Table 59. Example 2 XML Instance of Non-Isomorphic Structure with Isomorphic Element Mapping for
COBOL
XML Instance COBOL Data Structure
<x1> 1 A,
<x2>2</x2> 2 B pic 9,
<x3> 2 C,
<x4>4</x4> 3 D pic 9;
</x3>
</x1>
Figure 31. Example 2 of XML Instance Non-Isomorphic Structure with Isomorphic Element Mapping for
COBOL
Table 60 on page 350 and Figure 32 on page 350 are two isomorphic structures (an XML instance
document and a COBOL language structure) have non-isomorphic element mapping:
Developing web services and SOA with Enterprise Service Tools 349
Table 60. Example 3 XML Instance of Isomorphic Structure with Non-Isomorphic Element Mapping for
COBOL
XML Instance COBOL Data Structure
<x1> 1 A,
<x2>2</x2> 2 B pic 9,
<x3> 2 C,
<x4>4</x4> 3 D pic 9;
</x3>
</x1>
Figure 32. Example 3 of XML Instance Isomorphic Structure with Non-Isomorphic Element Mapping for
COBOL
Table 61 on page 350 and Figure 33 on page 351 are two non-isomorphic structures (an XML instance
document and a COBOL language structure) have non-isomorphic element mapping:
Table 61. Example 4 XML Instance of Non-Isomorphic Structure with Non-Isomorphic Element Mapping
for COBOL
XML Instance COBOL Data Structure
<x1> 1 A,
<x2>2</x2> 2 B pic 9,
<x3> 2 C,
<x4>4</x4> 3 D pic 9;
</x3>
</x1>
350 Developer for z/OS: Developing with Db2, CICS, and IMS
Figure 33. Example 4 of XML Instance Non-Isomorphic Structure with Non-Isomorphic Element Mapping for
COBOL
Table 62. Values of the fundamental facets for XML Schema built-in primitive data types
Primitive
Data type ordered bounded cardinality numeric
string false false countably infinite false
boolean false false finite false
float total true finite true
double total true finite true
decimal total false countably infinite true
duration partial false countably infinite false
dateTime partial false countably infinite false
time partial false countably infinite false
date partial false countably infinite false
gYearMonth partial false countably infinite false
gYear partial false countably infinite false
gMonthDay partial false countably infinite false
gDay partial false countably infinite false
Developing web services and SOA with Enterprise Service Tools 351
Table 62. Values of the fundamental facets for XML Schema built-in primitive data types (continued)
Primitive
Data type ordered bounded cardinality numeric
gMonth partial false countably infinite false
hexBinary false false countably infinite false
base64Binary false false countably infinite false
anyURI false false countably infinite false
QName false false countably infinite false
NOTATION false false countably infinite false
Table 63. Values of the fundamental facets for XML Schema built-in derived data types
Derived
Data type ordered bounded cardinality numeric
normalizedString false false countably infinite false
token false false countably infinite false
language false false countably infinite false
IDREFS false false countably infinite false
ENTITIES false false countably infinite false
NMTOKEN false false countably infinite false
NMTOKENS false false countably infinite false
Name false false countably infinite false
NCName false false countably infinite false
ID false false countably infinite false
IDREF false false countably infinite false
ENTITY false false countably infinite false
integer total false countably infinite true
nonPositiveInteger total false countably infinite true
negativeInteger total false countably infinite true
long total true finite true
int total true finite true
short total true finite true
byte total true finite true
nonNegativeInteger total false countably infinite true
unsignedLong total true finite true
unsignedInt total true finite true
unsignedShort total true finite true
352 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 63. Values of the fundamental facets for XML Schema built-in derived data types (continued)
Derived
Data type ordered bounded cardinality numeric
unsignedByte total true finite true
positiveInteger total false countably infinite true
These types and attributes are described in the Enterprise COBOL for z/OS reference manual.
Table 64. Enterprise PL/I language variable types and data attributes
Variable Type Data Attributes
Area AREA(size)
Coded arithmetic REAL | COMPLEX
FLOAT | FIXED
BINARY | DECIMAL
PRECISION
[SIGNED | UNSIGNED]
Entry ENTRY [RETURNS]
[LIMITED]
File FILE
Format FORMAT
Label LABEL
Locator POINTER | HANDLE |
{OFFSET [(area-variable)]}
Ordinal ORDINAL
Picture PICTURE
REAL | COMPLEX
String BIT | CHARACTER | GRAPHIC | WIDECHAR
[(length)]
[ VARYING | VARYINGZ | NONVARYING]
Task TASK
Developing web services and SOA with Enterprise Service Tools 353
• For a member that is a structure or a union: alignment, STRUCTURE or UNION, and the LIKE attributes
can be specified.
• Members always have the INTERNAL scope attribute.
Table 65 on page 354 shows the compatibility of simple built-in primitive data types:
Table 65. Compatibility of simple XML Schema built-in primitive data types
Default Response
Default Request
XML Datatype PL/I Data Attribute Conversion (See Note 1
Conversion (See Note 1)
and 2)
CHARACTER, GRAPHIC,
string memConvert, = memConvert, =
WIDECHAR, BIT
CHARACTER,
boolean memConvert, = memConvert, =
WIDECHAR, BIT
string PICTURE memConvert, PICSEC, = memConvert, =
boolean PICTURE memConvert, PICSEC, = memConvert, =
string FLOAT, FIXED = =
boolean FIXED = =
float FLOAT = =
double FLOAT = =
decimal FIXED = =
CHARACTER, GRAPHIC,
duration N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
dateTime N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
time N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
date N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
gYearMonth N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
gYear N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
gMonthDay N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
gDay N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
gMonth N/A N/A
WIDECHAR
354 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 65. Compatibility of simple XML Schema built-in primitive data types (continued)
Default Response
Default Request
XML Datatype PL/I Data Attribute Conversion (See Note 1
Conversion (See Note 1)
and 2)
BIT, GRAPHIC,
hexBinary memConvert, = memConvert, =
WIDECHAR
CHARACTER, GRAPHIC,
base64Binary N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
anyURI N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
QName N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
NOTATION N/A N/A
WIDECHAR
Note:
1. The functions: memConvert and PICSEC are build-in functions provided by the PL/I compiler. The
function: = is a normal PL/I assignment statement.
2. The mapping tools do not enforce matching rules for user-defined simple XML schema types that
are derived by constraint. For example, if for a base="int", the user defined type has a constraint of
minInclusive value="-99" it may not be possible to enforce the minInclusive constraint.
Table 66 on page 355 shows the compatibility of simple built-in derived data types:
Table 66. Compatibility of simple XML Schema built-in derived data types
Default Response
Default Request
XML Datatype PL/I Data Attribute Conversion (See notes
Conversion (See note 1)
1 and 2)
CHARACTER, GRAPHIC,
normalizedString N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
token N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
language N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
IDREFS N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
ENTITIES N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
NMTOKEN N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
NMTOKENS N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
Name N/A N/A
WIDECHAR
Developing web services and SOA with Enterprise Service Tools 355
Table 66. Compatibility of simple XML Schema built-in derived data types (continued)
Default Response
Default Request
XML Datatype PL/I Data Attribute Conversion (See notes
Conversion (See note 1)
1 and 2)
CHARACTER, GRAPHIC,
NCName N/A N/A
WIDECHARl
CHARACTER, GRAPHIC,
ID N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
IDREF N/A N/A
WIDECHAR
CHARACTER, GRAPHIC,
ENTITY N/A N/A
WIDECHAR
CHARACTER,
integer memConvert, = memConvert, =
WIDECHAR
CHARACTER,
nonPositiveInteger memConvert, = memConvert, =
WIDECHAR
CHARACTER,
negativeInteger memConvert, = memConvert, =
WIDECHAR
CHARACTER,
long memConvert, = memConvert, =
WIDECHAR
CHARACTER,
int memConvert, = memConvert, =
WIDECHAR
CHARACTER,
short memConvert, = memConvert, =
WIDECHAR
CHARACTER,
byte memConvert, = memConvert, =
WIDECHAR
CHARACTER,
nonNegativeInteger memConvert, = memConvert, =
WIDECHAR
CHARACTER,
unsignedLong memConvert, = memConvert, =
WIDECHAR
CHARACTER,
unsignedInt memConvert, = memConvert, =
WIDECHAR
CHARACTER,
unsignedShort memConvert, = memConvert, =
WIDECHAR
CHARACTER,
unsignedByte memConvert, = memConvert, =
WIDECHAR
CHARACTER,
positive-Integer memConvert, = memConvert, =
WIDECHAR
integer PICTURE memConvert, PICSEC, = memConvert, =
nonPositiveInteger PICTURE memConvert, PICSEC, = memConvert, =
negativeInteger PICTURE memConvert, PICSEC, = memConvert, =
long PICTURE memConvert, PICSEC, = memConvert, =
int PICTURE memConvert, PICSEC, = memConvert, =
356 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 66. Compatibility of simple XML Schema built-in derived data types (continued)
Default Response
Default Request
XML Datatype PL/I Data Attribute Conversion (See notes
Conversion (See note 1)
1 and 2)
short PICTURE memConvert, PICSEC, = memConvert, =
byte PICTURE memConvert, PICSEC, = memConvert, =
nonNegativeInteger PICTURE memConvert, PICSEC, = memConvert, =
unsignedLong PICTURE memConvert, PICSEC, = memConvert, =
unsignedInt PICTURE memConvert, PICSEC, = memConvert, =
unsignedShort PICTURE memConvert, PICSEC, = memConvert, =
unsignedByte PICTURE memConvert, PICSEC, = memConvert, =
positive-Integer PICTURE memConvert, PICSEC, = memConvert, =
integer FIXED = =
nonPositiveInteger FIXED = =
negativeInteger FIXED = =
long FIXED = =
int FIXED = =
short FIXED = =
byte FIXED = =
nonNegativeInteger FIXED = =
unsignedLong FIXED = =
unsignedInt FIXED = =
unsignedShort FIXED = =
unsignedByte FIXED = =
positive-Integer FIXED = =
Note:
1. The functions: memConvert and PICSEC are built-in functions provided by the PL/I compiler. The
function: = is a normal PL/I assignment statement.
2. The mapping tools do not enforce matching rules for user-defined simple XML schema types that
are derived by constraint. For example, if for a base="int", the user defined type has a constraint of
minInclusive value="-99" it may not be possible to enforce the minInclusive constraint.
Compatibility is supported for mapping elementary PL/I structures to simple XML structures. Table 67 on
page 358 shows examples of compatible items:
Note: The current mapping editor cannot perform the mapping from or to a PL/I multidimensional array
element.
Developing web services and SOA with Enterprise Service Tools 357
Table 67. Examples of compatible items
PL/I structure: Sample compatible XML structure:
PL/I Structure:
<complexType name="structures_simplestructure">
<sequence>
<element name="DEPOSIT_REQUEST1">
2 SimpleStructure, <simpleType>
3 DEPOSIT_REQUEST1 CHAR; <restriction base="string">
<maxLength value="1"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
358 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 67. Examples of compatible items (continued)
PL/I structure: Sample compatible XML structure:
PL/I multiple dimensional array:
<complexType name="STRUCTURES">
<sequence>
Note: Not currently supported in <element maxOccurs="6" minOccurs="6" name="MULTIARRAY"
mapping editor. type="pli:ArrayOfArrayOfStructures_multiarray"/>
</sequence>
</complexType>
3 MultiArray(-2:3, -1:1, 3) <complexType name="ArrayOfArrayOfStructures_multiarray">
FIXED BIN(31); <sequence>
<element maxOccurs="3" minOccurs="3"
name="ArrayOfArrayOfStructures_multiarray"
type="pli:ArrayOfStructures_multiarray"/>
</sequence>
</complexType>
<complexType name="ArrayOfStructures_multiarray">
<sequence>
<element maxOccurs="3" minOccurs="3"
name="ArrayOfStructures_multiarray">
<simpleType>
<restriction base="int"/>
</simpleType>
</element>
</sequence>
</complexType>
Table 68. PL/I to XML type derivation, Fixed Binary and Unsigned Fixed Binary
PL/I Type Corresponding XSD Type
Developing web services and SOA with Enterprise Service Tools 359
Table 68. PL/I to XML type derivation, Fixed Binary and Unsigned Fixed Binary (continued)
PL/I Type Corresponding XSD Type
Table 69. PL/I to XML type derivation, Binary Float and Decimal float
PL/I Type Corresponding XSD Type
360 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 72. PL/I to XML type derivation, Bit, Character, Graphic, Widechar
PL/I Type Corresponding XSD Type
Bit (n)
<xsd:simpleType>
<xsd:restriction base="xsd:hexBinary">
where n is a multiple of 8. Other <xsd:length value="m"/>
values are not supported. </xsd:restriction>
</xsd:simpleType>
where m = n/8
where m = 2*n
Table 73. Example 1 XML Instance of Isomorphic Structure with Isomorphic Element Mapping for PL/I
XML Instance PL/I Data Structure
<X1> 1 A,
<X2>2</X2> 2 B fixed bin(31),
<X3> 2 C,
<X4>4</X4> 3 D fixed bin(31);
</X3>
</X1>
Developing web services and SOA with Enterprise Service Tools 361
Figure 34. Example 1 of XML Instance Isomorphic Structure with Isomorphic Element Mapping for PL/I
Table 74 on page 362 and Figure 35 on page 362 are examples of non-isomorphic structures (an XML
instance document and a PL/I data structure) have isomorphic subsets and display isomorphic element
mapping.
Table 74. Example 2 of XML Instance Non-Isomorphic Structure with Isomorphic Element Mapping for
PL/I
XML Instance PL/I Data Structure
<X1> 1 A,
<X2>2</X2> 2 B fixed bin(31),
<X3> 2 C,
<X4>4</X4> 3 D fixed bin(31);
</X3>
<X5>5</X5>
</X1>
Figure 35. Example 2 of XML Instance Non-Isomorphic Structure with Isomorphic Element Mapping for PL/I
362 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 75 on page 363 and Figure 36 on page 363 are isomorphic structures (an XML instance document
and a PL/I data structure) have non-isomorphic element mapping.
Table 75. Example 3 XML Instance of Isomorphic Structure with Non-Isomorphic Element Mapping for
PL/I
XML Instance PL/I Data Structure
<X1> 1 A,
<X2>2</X2> 2 B fixed bin(31),
<X3> 2 C,
<X4>4</X4> 3 D fixed bin(31);
</X3>
</X1>
Figure 36. Example 3 of XML Instance Isomorphic Structure with Non-Isomorphic Element Mapping for PL/I
Table 76 on page 363 and Figure 37 on page 364 are non-isomorphic structures (an XML instance
document and a PL/I data structure) have non-isomorphic element mapping.
Table 76. Example 4 XML Instance of Non-Isomorphic Structure with Non-Isomorphic Element Mapping
for PL/I
XML Instance PL/I Data Structure
<X1 > 1 A,
<X2>2</X2> 2 B fixed bin(31),
<X3> 2 C,
<X4> 3 D fixed bin(31);
<X5>5</X5>
</X4>
</X3>
</X1>
Developing web services and SOA with Enterprise Service Tools 363
Figure 37. Example 4 of XML Instance Non-Isomorphic Structure with Non-Isomorphic Element Mapping for
PL/I
WSDL2COBOL reference
This group of topics provides reference information for the WSDL2COBOL (top-down) scenario.
The WSDL2COBOL (WSDL to COBOL) scenario is a top-down scenario for the IMS Enterprise Suite SOAP
Gateway runtime. It generates COBOL-based Web service requester artifacts from a WSDL file. The
generated artifacts are for use with the IMS Synchronous callout function.
364 Developer for z/OS: Developing with Db2, CICS, and IMS
The following tables describe the Enterprise COBOL data declarations that the WSDL2COBOL component
generates for each XSD built-in primitive and derived data type.
Note: The information in this section also applies to user-defined xsd:simpleTypes.
Table 77. XSD to COBOL: Boolean, string and related data types, date and time data types
XSD built-in data type: Enterprise COBOL data declaration:
Comments:
• X'00' = false, X'01' = true.
• The following facets are not used: whitespace
and pattern.
else:
PIC X(n1) DISPLAY or PIC N(n2) NATIONAL
n1 = min (defaultCharMaxLength, 227 -1)
n2 = min (defaultCharMaxLength, 226 -1)
Comments:
• PIC N(n2) NATIONAL is generated when the
host code page is DBCS.
• The whiteSpace facet is used by language
structure to XML conversion only.
• The pattern facet is not used.
Developing web services and SOA with Enterprise Service Tools 365
Table 78. XSD to COBOL: Unsigned integer data types
XSD built-in data type: Enterprise COBOL data declaration:
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used:
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
366 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 79. XSD to COBOL: Signed integer data types (continued)
XSD built-in data type: Enterprise COBOL data declaration:
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
maxInclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used:
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Developing web services and SOA with Enterprise Service Tools 367
Table 80. XSD to COBOL: Decimal and floating point data types
XSD built-in data type: Enterprise COBOL data declaration:
else:
n = min(defaultTotalDigits, 31),
m = min(defaultFractionDigits, 31).
Comments:
• The following facets are not used: pattern,
enumeration, whiteSpace, maxInclusive, and
maxExclusive.
float COMP-1
Comments:
• xsd:float (single-precision floating-point)
is represented in IEEE floating-point, however
COMP-1 is internally represented using IBM
hexadecimal floating-point.
• The following facets are not used:
pattern, enumeration, whiteSpace, maxInclusive,
maxExclusive, minInclusive, and minExclusive.
double COMP-2
Comments:
• xsd:double (double-precision floating-point)
is represented in IEEE floating-point, however
COMP-2 is internally represented using IBM
hexadecimal floating-point.
• The following facets are not used:
pattern, enumeration, whiteSpace, maxInclusive,
maxExclusive, minInclusive, and minExclusive.
368 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 81. XSD to COBOL: Data types not supported
XSD built-in data type: Enterprise COBOL data declaration:
Comments:
• Encoding and decoding of base64 sequences
is not supported by COBOL Compiled XML
Conversion.
Comments:
• Unparsed entities require parsing or generation
of an internal
or external DTD at execution time; this is not
supported by
Compiled XML Conversion.
Comments:
• xsd:anySimpleType is the base type of all built-
in primitive and
derived data types. Therefore XML elements and
attributes that
are of type xsd:anySimpleType can be of any built-
in or user-defined
atomic, list, or union type at execution time.
Comments:
• xsd:anyType is the base type from which all
simple and
complex types are derived. An xsd:anyType type
does not
constrain its content in any way. For example, the
content of
an XML element that is of type xsd:anyType can be
an
arbitrary XML document fragment in one
occurrence and
base64Binary in another.
Developing web services and SOA with Enterprise Service Tools 369
Creation of COBOL data names
This topic describes how the names of generated Enterprise COBOL data names are formed from XML
elements and XML attributes in the WSDL2COBOL scenario.
When a new Enterprise COBOL data item is created by the WSDL2COBOL file-generation component, it
derives the name for the item from the value of the name attribute in the corresponding XSD element or
XSD attribute declaration.
While Enterprise COBOL supports data names that contain both SBCS and DBCS characters,
WSDL2COBOL supports only the generation of SBCS data names. The maximum length of an Enterprise
COBOL data name is 30 characters, and WSDL2COBOL can be configured to use a smaller maximum via
the WSDL2ELSSpec languageNameLimit attribute. The characters that are valid for an SBCS data name in
Enterprise COBOL are [A-Z], [a-z], [0-9], -, and _1. WSDL2COBOL will preserve the case of XML element
or XML attribute names when forming corresponding COBOL data names. If characters are found in XML
element or XML attributes that are not valid in a COBOL data name, they will each be substituted by an
uppercase 'X'.
1 While the '_' character is supported in Enterprise COBOL V4R2 data names, WSDL2COBOL will substitute
each '_' with a '-' to ensure that the generated data names are compatible with earlier releases of
Enterprise COBOL.
370 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 82. Suffixes added to COBOL data names (continued)
Suffix: Description:
-lim An elementary data item that serves as the object
of an OCCURS DEPENDING ON subject. The value
of this item must be less than or equal to n in
“ele OCCURS m to n TIMES DEPENDING ON ele-
lim”. The value of this attribute does not affect the
size in bytes of the parent 01-level structure in
memory, however it can make the structure more
efficient to transmit over the network when the
value is less than the limit n.
Table 83. Elementary XML elements with built-in or derived simple types
Language: Declaration:
XSD <xsd:element name=”eleName1”
type=”simple1” />
COBOL 1. depth(eleName1)
+ ' ' + cobolName (eleName1)
+ ' ' + cobolType (simple1) + ' . '
Developing web services and SOA with Enterprise Service Tools 371
Table 84. Optional elementary XML elements (continued)
Language: Declaration:
COBOL 1. depth(eleName1)
+ ' ' + cobolName (eleName1 + "-bit1")
+ " PIC X DISPLAY."
2. depth(eleName1)
+ ' ' + cobolName (eleName1)
+ ' ' + cobolType (simple1) + ' . '
COBOL If m = n:
1. depth(eleName1)
+ ' ' + cobolName(eleName1 + '-cnt1')
+ ' PIC S9(9) COMP-5.'
2. depth(eleName1)
+ ' ' + cobolName(eleName1)
+ ' ' + cobolType(simple1)
+ ' OCCURS ' + min(n, defaultMaxOccursLimit)
+ ' TIMES.'
1. depth(eleName1)
+ ' ' + odoObjectName + ' PIC S9(9) COMP-5.'
2. depth(eleName1)
+ ' ' + cobolName(eleName1 + '-cnt1')
+ ' PIC S9(9) COMP-5.'
3. depth(eleName1)
+ ' ' + cobolName(eleName1)
+ ' ' + cobolType(simple1)
+ ' OCCURS ' + m + ' TO '
+ min(n, defaultMaxOccursLimit)
+ ' TIMES DEPENDING ON ' + odoObjectName
+ '.'
372 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 86. Elementary XML elements with character and attribute contents
Language: Declaration:
COBOL 1. depth(eleName1)
+ ' ' + cobolName(eleName1) + '.'
2. (depth(eleName1) + 1)
+ ' ' + cobolName('text')
+ ' ' + cobolType(simple1) + '.'
3. (depth(eleName1) + 1)
+ ' ' + cobolName(attName1 + '-bit1')
+ ' PIC X DISPLAY.'
4. (depth(eleName1) + 1)
+ ' ' + cobolName(attName1 + '-att1')
+ ' ' + cobolType(simple2) + '.'
Table 87. Composed XML elements with elementary and attribute contents
Language: Declaration:
Developing web services and SOA with Enterprise Service Tools 373
Table 87. Composed XML elements with elementary and attribute contents (continued)
Language: Declaration:
COBOL 1. depth(eleName1)
+ ' ' + cobolName(eleName1) + '.'
2. (depth(eleName1) + 1)
+ ' ' + cobolName(attName1 + '-bit1')
+ ' PIC X DISPLAY.'
3. (depth(eleName1) + 1)
+ ' ' + cobolName(attName1 + '-att1')
+ ' ' + cobolType(simple2) + '.'
4. depth(eleName2)
+ ' ' + cobolName(eleName2)
+ ' ' + cobolType(simple1) + '.'
COBOL 1. depth(eleName1)
+ ' ' + cobolName(eleName1) + '-bit1')
+ ' PIC X DISPLAY.'
2. depth(eleName1)
+ ' ' + cobolName(eleName1) + '.'
3. depth(eleName2)
+ ' ' + cobolName(eleName2)
+ ' ' + cobolType(simple1) + '.'
374 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 89. Repeating composed XML elements (arrays)
Language: Declaration:
Developing web services and SOA with Enterprise Service Tools 375
Table 89. Repeating composed XML elements (arrays) (continued)
Language: Declaration:
COBOL If m = n:
1. depth(eleName1)
+ ' ' + cobolName(eleName1 + '-cnt1')
+ ' PIC S9(9) COMP-5.'
2. depth(eleName1)
+ ' ' + cobolName(eleName1)
+ ' OCCURS ' + n + ' TIMES.'
3. depth(eleName2)
+ ' ' + cobolName(eleName2 + '-cnt1')
+ ' PIC S9(9) COMP-5.'
4. depth(eleName2)
+ ' ' + cobolName(eleName2)
+ ' ' + cobolType(simple1)
+ ' OCCURS ' + min(3, defaultMaxOccursLimit)
+ ' TIMES.'
1. depth(eleName1)
+ ' ' + odoObjectName + ' PIC S9(9) COMP-5.'
2. depth(eleName1)
+ ' ' + cobolName(eleName1 + '-cnt1')
+ ' PIC S9(9) COMP-5.'
3. depth(eleName1)
+ ' ' + cobolName(eleName1)
+ ' OCCURS ' + m + ' TO '
+ min(n, defaultMaxOccursLimit)
+ ' TIMES DEPENDING ON ' + odoObjectName
+ '.'
4. depth(eleName2)
+ ' ' + cobolName(eleName2 + '-cnt1')
+ ' PIC S9(9) COMP-5.'
5. depth(eleName2)
+ ' ' + cobolName(eleName2)
+ ' ' + cobolType(simple1)
+ ' OCCURS ' + min(3, defaultMaxOccursLimit)
+ ' TIMES.'
376 Developer for z/OS: Developing with Db2, CICS, and IMS
Generated annotations for Enterprise COBOL structures
This topic describes the annotations that are added to generated Enterprise COBOL structures in the
WSDL2COBOL scenario.
The WSDL2COBOL code-generation process adds annotations to the source code to describe the
relationships between the generated language structures and the XML schemas from which they are
derived. The annotations display as language comments immediately preceding the definitions of the
language structures or language structure members to which they apply.
The following annotations are included in the structures generated for Enterprise COBOL. Notice that the
last four annotations in the list are added for variables that have the suffixes -bit, -cnt, -lim (see: “Suffixes
appended to COBOL data names” on page 370)
Developing web services and SOA with Enterprise Service Tools 377
Mapping session files are generated using a subset of the metadata format defined by the
com.ibm.ccl.mapping framework. This is the same framework that is used when mapping session files
are manually created in the meet-in-middle scenario.
Figure 38 on page 378 shows an example of a mapping session file. The top-level structure is a
mappingRoot element that contains the following elements:
• An input element specifies the location of the source structure of the mapping. In the example below
this is the location of the XSD schema structure named CalculatorInput defined in the types section
of a WSDL file.
• An output element specifies the location of the target structure of the mapping. In the example this is
the location of the PL/I source file Calculator.inc.
• An mappingDeclaration element specifies individual mappings:
Note: There can be multiple mappingDeclaration elements.
– First an input element and an output element specify the source structure and the target structure
for the individual mappings that follow.
– Then one or more mapping elements specify the fields within the source structure and target
structure that are mapped together. In the following example there are two such mapping elements,
each defining an individual mapping.
<ccl:mappingRoot xmlns:ccl="http://www.ibm.com/2006/ccl/Mapping"
domainID="com.ibm.etools.xmlent.mapping.domainxsd2pli" >
<ccl:mappingDeclaration name="Calculator.mapping">
<ccl:input path="CalculatorInput"/>
<ccl:output path="CALCULATORINPUT"/>
<ccl:mapping>
<ccl:input path="integerArray"/>
<ccl:output path="INTEGERARRAY"/>
</ccl:mapping>
<ccl:mapping>
<ccl:input path="allowOverflow"/>
<ccl:output path="ALLOWOVERFLOW"/>
</ccl:mapping>
</ccl:mappingDeclaration>
</ccl:mappingRoot>
378 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 91. Annotations added to the mappingRoot structure (continued)
Key: Description of value:
com.ibm.etools.xmlent.mapping.wsdlTargetNam The target namespace of the WSDL file.
espace
com.ibm.etools.xmlent.mapping.wsdlServiceNa The WSDL service that the mappingRoot element
me pertains to.
com.ibm.etools.xmlent.mapping.wsdlPortName The WSDL port that the mappingRoot element
pertains to.
com.ibm.etools.xmlent.mapping.wsdlOperation The WSDL Operation that the mappingRoot
Name element pertains to.
Developing web services and SOA with Enterprise Service Tools 379
Table 93. Annotations generated by WSDL2ELS in the WSDL2COBOL scenario
Annotation Key: Value Suffix:
com.ibm.etools.xmlent.mapping.eCobolCounter -cnt
Object
com.ibm.etools.xmlent.mapping.eCobolPresenc -bit
eObject
com.ibm.etools.xmlent.mapping.eCobolLocalOc -lim
cursObject
WSDL2PLI reference
This group of topics provides reference information for the WSDL2PLI (top-down) scenario.
The WSDL2PLI (WSDL to PL/I) scenario is a top-down scenario for the IMS Enterprise Suite SOAP
Gateway runtime. It generates a PL/I-based Web service provider implementation from a single-operation
or multioperation WSDL file (see WSDL2PLI scenario).
380 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 94. XSD to PL/I: Boolean, string and related data types, date and time data types
XSD built-in data type: Enterprise PL/I data declaration:
else
n = WSDL2ELSSpec/
@defaultBase64BinaryLength
Comments:
• The following facets are not used: whiteSpace
and pattern.
Developing web services and SOA with Enterprise Service Tools 381
Table 94. XSD to PL/I: Boolean, string and related data types, date and time data types (continued)
XSD built-in data type: Enterprise PL/I data declaration:
"OFFSET(pool) LOCATES([CHAR|WCHAR]
(n)VARYING)”
else
“CHAR(n) VARYING”
“OFFSET(pool) LOCATES([CHAR|WCHAR]
(n)VARYING)”
else
“[CHAR|WCHAR](n) VARYING”
else
n = min(WSDL2ELSSpec/
@defaultCharMaxLength,[32767|16383])
s = size([CHAR|WCHAR](n) VARYING)
“OFFSET(pool) LOCATES([CHAR|WCHAR]
(n)VARYING)”
382 Developer for z/OS: Developing with Db2, CICS, and IMS else
Table 94. XSD to PL/I: Boolean, string and related data types, date and time data types (continued)
XSD built-in data type: Enterprise PL/I data declaration:
date n = min(WSDL2ELSSpec/
dateTime @defaultDateTimeLength,[32767|16383])
duration s = size([CHAR|WCHAR](n) VARYING)
gDay
gMonth if s > size(OFFSET) and
gMonthDay n > WSDL2ELSSpec/@inlineStringLengthLimit:
gYear
gYearMonth “OFFSET(pool) LOCATES([CHAR|WCHAR]
time (n)VARYING)”
else
“[CHAR|WCHAR](n) VARYING”
Comments:
• WCHAR is generated when hostCCSIDIsDBCS is
true.
• The whiteSpace facet is used by language
structure to XML conversion only.
• The following facets are not used: pattern,
enumeration, maxInclusive, maxExclusive,
minInclusive, and minExclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Developing web services and SOA with Enterprise Service Tools 383
Table 95. XSD to PL/I: Unsigned integer data types (continued)
XSD built-in data type: Enterprise PL/I data declaration:
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• Requires compiler option
LIMITS(FIXEDBIN(31,63)).
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used:
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
maxInclusive.
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
384 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 96. XSD to PL/I: Signed integer data types (continued)
XSD built-in data type: Enterprise PL/I data declaration:
Comments:
• The following facets are not used: totalDigits,
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Comments:
• Requires compiler option
LIMITS(FIXEDBIN(31,63)).
• The following facets are not used:
fractionDigits, pattern, enumeration, whiteSpace,
maxInclusive, maxExclusive, minInclusive, and
minExclusive.
Table 97. XSD to PL/I: Decimal and floating point data types
XSD built-in data type: Enterprise PL/I data declaration:
else:
n = min(default_total_digits, 31),
m = min(default_fraction_digits, 31).
Comments:
• The following facets are not used: pattern,
enumeration, whiteSpace, maxInclusive, and
maxExclusive.
Developing web services and SOA with Enterprise Service Tools 385
Table 97. XSD to PL/I: Decimal and floating point data types (continued)
XSD built-in data type: Enterprise PL/I data declaration:
Comments:
• Native support for IEEE single-precision binary
floating point.
• The following facets are not used:
pattern, enumeration, whiteSpace, maxInclusive,
maxExclusive, minInclusive, and minExclusive.
Comments:
• Native support for IEEE double-precision
binary floating point.
• Requires compiler option
LIMITS(FIXEDBIN(31,63)).
• The following facets are not used:
pattern, enumeration, whiteSpace, maxInclusive,
maxExclusive, minInclusive, and minExclusive.
COMMENTS:
• Unparsed entities require parsing or generation
of an internal
or external DTD at execution time; this is not
supported by
Compiled XML Conversion.
COMMENTS:
• xsd:anySimpleType is the base type of all built-
in primitive and
derived datatypes. Therefore XML elements and
attributes that
are of type xsd:anySimpleType can be of any built-
in or user-defined
atomic, list, or union type at execution time.
386 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 98. XSD to PL/I: Data types not supported (continued)
XSD built-in data type: Enterprise PL/I data declaration:
COMMENTS:
• xsd:anyType is the base type from which all
simple and
complex types are derived. An xsd:anyType type
does not
constrain its content in any way. For example, the
content of
an XML element that is of type xsd:anyType can be
an
arbitrary XML document fragment in one
occurrence and
base64Binary in another.
Developing web services and SOA with Enterprise Service Tools 387
Table 99. Suffixes added to PL/I identifiers (continued)
Suffix: Description:
_buf An array for binary content based on the length
specified in the elementary variable with the suffix
_buf_len.
_buf_len An elementary variable that indicates the size of
decoded binary content in bytes.
_cnt An elementary variable that indicates the number
of entries used in the array that immediately
follows it in the language structure.
_ele_enm A major structure that contains the PL/I constants
for enumerated strings declared in an anonymous
string data type that is defined in an element.
_lim An elementary variable that specifies the upper
bound of a REFER subject (unbounded array) at
execution time.
_ptr An elementary variable that contains the starting
address of the storage allocated for a major
structure that contains REFER subjects. This
variable is to be used with the PL/I ALLOCATE
statement, for example: allocate (struct)
set (@irz_struct_ptr)).
_ref A major structure that contains elementary
variables that serve as REFER objects. The objects
in this structure are read when allocating the
corresponding major structure that contains the
REFER subjects.
_typ_enm A major structure that contains the PL/I constants
for enumerated strings declared in a named
string data type that can be referenced by many
elements or attributes.
388 Developer for z/OS: Developing with Db2, CICS, and IMS
Mapping elementary XML elements
An elementary XML element is one that does not contain other elements, although it can have attributes
and character content.
• This mapping shows the simple case:
Table 100. Elementary XML elements with built-in or derived simple types
Language: Declaration:
XSD <xsd:element name=”eleName”
type=”simpleTypeName” />
PL/I depth(xsd:element) pli_name(eleName)
pli_type(simpleTypeName)
• An optional elementary XML element contains "minOccurs=0" and "maxOccurs=1":
Developing web services and SOA with Enterprise Service Tools 389
• An elementary XML element can contain characters and attributes:
Table 103. Elementary XML elements with character and attribute contents
Language: Declaration:
Table 104. Composed XML elements with elementary and attribute contents
Language: Declaration:
390 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 104. Composed XML elements with elementary and attribute contents (continued)
Language: Declaration:
Developing web services and SOA with Enterprise Service Tools 391
Table 106. Repeating composed XML elements (arrays) (continued)
Language: Declaration:
PL/I One of the following:
– [ depth(xsd:element) pli_name(eleName1 +
“_lim1”) SIGNED FIXED BINARY(31), ]2
– [ depth(xsd:element) pli_name(eleName1 +
“_cnt1”) SIGNED FIXED BINARY(31), ]3
– [ depth(xsd:element) pli_name(eleName1)
(n), ]4 or
– [ depth(xsd:element) pli_name(eleName1)
(_ref._lim1 REFER _lim1) ]5
– depth(xsd:element) pli_name(eleName2) (3)
pli_type(simpleTypeName)
A REFER example
A variable-length XSD schema array is one in which maxOccurs="unbounded" or where maxOccurs
exceeds the limit set in the batch-processor property inlineMaxOccursLimit (see “WSDL2ELSSpec” on
page 492). An example of such an array is shown in Figure 39 on page 392:
To implement the equivalent array in PL/I, the WSDL2PLI code-generation process creates two PL/I
major structures, one for REFER object declarations and one for REFER subject declarations. Figure 40 on
page 393 and Figure 41 on page 393 show the structures that would be generated for the XSD schema
example in Figure 39 on page 392:
• The structure for object declarations specifies the maximum number of array items that can be
allocated. For the significance of the suffixes _ref and _lim see “Creation of PL/I identifiers” on page
387:
392 Developer for z/OS: Developing with Db2, CICS, and IMS
/* PL/I REFER object declarations: */
01 planets_ref UNALIGNED,
/* number of planet_name entries to allocate space for */
02 planet_name_lim SIGNED FIXED BINARY(31);
• The structure for subject declarations maps the allocated space. For the significance of the suffixes _ptr,
_lim, and _cnt see “Creation of PL/I identifiers” on page 387:
The source code in the next figure shows how to initialize the structures declared in Figure 40 on page
393 and Figure 41 on page 393. First the number of items to allocate is set and the allocation is done.
Then four of the items in the allocated array are initialized. Finally the number of allocated elements in
use is set.
Note: After the major structure planets is allocated, planets.planet_name_cnt must be set to the
actual number of items in the array. Also the value in planets.planet_name_cnt must not exceed the
value in planets.planet_name_lim.
/* Usage: */
planets_ref.planet_name_lim = 10;
allocate (planets) set (planets_ptr);
planets.planet_name(1) = “Mercury”;
planets.planet_name(2) = “Venus”;
planets.planet_name(3) = “Earth”;
planets.planet_name(4) = “Mars”;
planets.planet_name_cnt = 4;
Figure 42. Initializing the structures for object declarations and subject declarations
<complexType name="PlanetType">
<sequence>
<element name="planet_name" type="string" minOccurs="1" maxOccurs="1" />
<element name="moon_name" type="string" minOccurs="1" maxOccurs="unbounded" />
</sequence>
</complexType>
To implement the equivalent arrays in PL/I, the WSDL2PLI code-generation process creates the two
REFER object declarations and the two REFER subject declarations shown in Figure 44 on page 394 and
Figure 45 on page 394:
Developing web services and SOA with Enterprise Service Tools 393
• /* PL/I REFER object declarations: */
01 solar_system_ref UNALIGNED,
/* number of planet entries to allocate space for */
02 planet_lim SIGNED FIXED BINARY(31),
/* number of moon_name entries to allocate space for */
2 moon_name_lim SIGNED FIXED BINARY(31);
/*Usage:*/
/* initialize major structure solar_system */
solar_system_ref.planet_lim = 4;
solar_system_ref.moon_name_lim = 2;
allocate (solar_system) set (solar_system_ptr);
solar_system.planet_cnt = 0;
Figure 46. Initializing the structures for object declarations and subject declarations
Note: With complex REFER subjects such as moon_name shown above, it is necessary to allocate a limit
that satisfies all repetitions of the subject. For example, consider converting the following XML into or out
of major structure solar_system:
<solar_system>
<planet>
<planet_name>Earth</planet_name>
<moon_name>Luna</moon_name>
</planet>
<planet>
<planet_name>Mars</planet_name>
<moon_name>Phobos</moon_name>
<moon_name>Deimos</moon_name>
</planet>
</solar_system>
394 Developer for z/OS: Developing with Db2, CICS, and IMS
The minimum value of the REFER object solar_system_ref.moon_name_lim that will satisfy all repetitions
of planet is 2. Setting the object value to 2 will cause space for two moon_name entries to be allocated for
each planet entry. Because moon_name occurs only once in the first occurrence of the first planet entry,
the counter solar_system.planet(1).moon_name_cnt should be set to 1 so that only the first moon_name
entry is read.
Table 107.
Correspondin
g PL/I
identifier
Annotation: <value>: suffix:
@XPATH <value> The full path of the XSD element or attribute declaration N/A
that this structure or structure member is mapped to.
@PRESENCE <value> The full path of the optional member that this member _bit
indicates the presence or absence of.
@COUNT <value> The full path of the array member that this member _cnt
contains the count of.
@LENGTH <value> The full path of the binary content array that this member N/A
contains the size for.
@LIMIT <value> The full path of the array member that this member _lim
describes the upperbound or limit of.
@POINTER <value> The name of the language structure into which this variable _ptr
stores the base address when a REFER object is allocated.
Developing web services and SOA with Enterprise Service Tools 395
<xs:simpleType name="rainbowcolor">
<xs:restriction base="xs:string">
<xs:enumeration value="Violet"/>
<xs:enumeration value="Indigo"/>
<xs:enumeration value="Blue"/>
<xs:enumeration value="Green"/>
<xs:enumeration value="Yellow"/>
<xs:enumeration value="Orange"/>
<xs:enumeration value="Red"/>
</xs:restriction>
</xs:simpleType>
The named simple type rainbowcolor can be referenced numerous times as shown in Figure 48 on
page 396.
<xs:schema xmlns:poc="http://schemas.cs.csg.com/poc"...
<xs:element name="color1" type="poc:rainbowcolor:/>
<xs:element name="color2" type="poc:rainbowcolor:/>
<xs:attribute name="att_color3" type="poc:rainbowcolor:/>
After the XML schema has been defined, the PL/I include file includes the generated PL/I constants for
the named data types with enumeration facets. The naming convention used for this type is <name of
the type>_typ_enm where typ indicates type and enm indicates enumeration. See “Suffixes appended
to PL/I identifiers” on page 387 for more information about these and other suffixes. An example of the
PL/I include file is shown in Figure 49 on page 396.
/*********************************************************************
* PL/I constants for enumerated strings declared in named simple type
* "poc:rainbowcolor".
**********************************************************************/
DCL 01 rainbowcolor_typ_enm,
02 Violet CHAR VALUE('E589969385A3'x),
02 Indigo CHAR VALUE('C99584898796'x),
02 Blue CHAR VALUE('C293A485'x),
02 Green CHAR VALUE('C799858595'x),
02 Yellow CHAR VALUE('E885939396A6'x),
02 Orange CHAR VALUE('D69981958785'x),
02 Red CHAR VALUE('D98584'x);
Figure 49. Generated PL/I constants in the include file (Host code page: SBCS)
Note: If there are two or more simple types that have the same name but different namespaces, all of the
structures are declared in the include file since they could contain different enumerations. To eliminate
confusion between the structures, an incremented value is appended to the end of each structures name
(_enm, _enm1, _enm2) and the comment section of the include file will identify the type.
/***************************************************************
* PL/I constants for enumerated strings declared in named simple type
* "poc1:rainbowcolor".
********************************************************************/
DCL 01 rainbowcolor_typ_enm,
02 Violet CHAR VALUE('E589969385A3'x),
02 Red CHAR VALUE('D98584'x);
/*********************************************************************
* PL/I constants for enumerated strings declared in named simple type
* "poc2:rainbowcolor".
********************************************************************/
DCL 01 rainbowcolor_typ_enm1,
02 Violet CHAR VALUE('E589969385A3'x),
02 Red CHAR VALUE('D98584'x);
Figure 50.
396 Developer for z/OS: Developing with Db2, CICS, and IMS
Anonymous simple types
For anonymous simple types, PL/I constants are generated each time an anonymous instance is
referenced in an element or attribute.
<xs:element name="rcolor">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Violet"/>
<xs:enumeration value="Red"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
/*********************************************************************
* PL/I constants for enumerated strings declared in an anonymous simpl
* e type for element "rcolor".
********************************************************************/
DCL 01 rcolor_ele_enm,
02 Violet CHAR VALUE('E589969385A3'x),
02 Red CHAR VALUE('D98584'x);
Figure 52. Generated PL/I constants in the include file for an anonymous type
The naming convention used for this type is <name of the element>_[ele/att]_enm where ele
indicates element, att indicates attribute, and enm indicates enumeration. See “Suffixes appended to
PL/I identifiers” on page 387 for more information about these and other suffixes.
Note:
For PL/I constants, when the host code page is:
• DBCS: WCHAR is used and encode VALUEs as UTF-16 hexadecimal literals. The memConvert function
can be used to convert UTF-16 to DBCS when wanted.
• SBCS: CHAR is used and encode VALUEs as hex in the specified target code page.
Developing web services and SOA with Enterprise Service Tools 397
As shown in the above figure, protocol-level logic exists in code-complete procedures named
OperationNameHandler that are dedicated to handling interactions with the IMS Message
Queue and IRZPWSIO APIs on behalf of the respective user-written business logic in procedures
named OperationNameImpl. All of the user-written business logic must be entered into the
OperationNameImpl procedures. At execution time, OperationNameImpl procedures are invoked by
their respective OperationNameHandler procedure.
The following shows an example of an enhanced template for a WSDL file that includes three operations:
• getteam_1_0
• setteam_1_0
• ping_1_0
The operations getteam_1_0 and setteam_1_0 may issue a SOAP fault.
/*********************************************************************
* IBM Developer for z/OS
* Enterprise Service Tools (EST)
* Single-service Projects (XSE)
* IMS Enterprise Suite SOAP Gateway
* Web Service Provider Template MPP
*
* Date created: 2011-05-17 11:31:39 PDT
* UUID: be97872d-c773-4e42-b9bd-f8ac4d45c450
* INSTALLATION: 8.3.100
********************************************************************/
WSPOC1Package: package exports(*);
398 Developer for z/OS: Developing with Db2, CICS, and IMS
/* WSDL2ELS language structures
*/
%INCLUDE WSPOC1;
/*-------------------------------------------------------------------*
* Procedure: WSPOC1
* Description: Implementation of a Web service provider MPP for ser
* vice "WS_poc_1" and binding "WS_poc_1_Binding" of the Web service
* definition file "WS_PoC_1.wsdl".
*------------------------------------------------------------------*/
WSPOC1: procedure(iopcb_mask_ptr) options(main);
/*-------------------------------------------------------------------*
* Procedure: ProcessMessages
* Description: Retrieve the IRZPWSIO message header from the IMS Me
* ssage Queue and invoke a handler procedure based on the service c
* ontext.
*------------------------------------------------------------------*/
ProcessMessages: procedure internal;
/* Allocate memory for the IRZPWSIO message header and copy it fro
m the IMS Message Queue.
*/
allocate @irz_async_msg_header set (@irz_async_msg_header_ptr);
call CEETDLI(@irz_dli_get_unique, @irz_iopcb_mask,
@irz_async_msg_header);
Developing web services and SOA with Enterprise Service Tools 399
if (@irz_iopcb_mask.iopcb_status_code ¬=
@irz_dli_end_messages) then do;
host_text_1 = @irz_iopcb_mask.iopcb_status_code;
call LogEvent(trim(packagename()) || '#'
|| trim(procedurename()) || '(): Error, '
|| 'CEETDLI.GU(@irz_async_msg_header), '
|| 'iopcb_status_code: '
|| trim(host_text_1) || '.');
end;
free @irz_async_msg_header;
return;
end ProcessMessages;
/*-------------------------------------------------------------------*
* Procedure: getteam_1_0Handler
* Description: Get the request language structure for operation "ge
* tteam_1_0" from the IMS Message Queue using the IRZQGETS API, inv
* oke user-written implementation, set the response or fault langua
* ge structure and commit it to the IMS Message Queue using the IRZ
* QSETS API. Finally, deallocate language structures.
*------------------------------------------------------------------*/
getteam_1_0Handler: procedure internal;
/* Get the request language structure from the IMS Message Queue u
sing the IRZQGETS API.
*/
@irz_struct_name = 'getteam_1_0';
@irz_struct_type = @irz_soap_body_struct;
@irz_struct_ptr = null();
@irz_struct_size = 0;
@irz_debug = '0'b;
call IRZQGETSWrapper(procedurename());
if (@return_code = @irz_success) then do;
getteam_1_0_ptr = @irz_struct_ptr;
end; else do;
return;
end;
@irz_commit_structs = '1'b;
@irz_debug = '0'b;
call IRZQSETSWrapper(procedurename());
400 Developer for z/OS: Developing with Db2, CICS, and IMS
end;
if (ServiceException_ptr ¬= null()) then do;
call plifree(ServiceException_ptr);
ServiceException_ptr = null();
end;
return;
end getteam_1_0Handler;
/*-------------------------------------------------------------------*
* Procedure: getteam_1_0Impl
* Description: Implement the business logic for operation "getteam_
* 1_0" using the following steps: (1) Process the request language
* structure "getteam_1_0", (2) Allocate and fill in the response la
* nguage structure "getteam_1_0Response" or a fault language struct
* ure from the set {ServiceException}. (3) Finally, set the respect
* ive response or fault language structure pointer before returning
* to the operation handler (Handler) procedure. Note: If an error
* occurs that requires a rollback, use parameter iopcb_mask_ptr to
* access the IOPCB.
*------------------------------------------------------------------*/
getteam_1_0Impl: procedure(iopcb_mask_ptr, getteam_1_0_ptr, getteam_1_0
Response_ptr, ServiceException_ptr) internal;
return;
end getteam_1_0Impl;
/*-------------------------------------------------------------------*
* Procedure: setteam_1_0Handler
* Description: Get the request language structure for operation "se
* tteam_1_0" from the IMS Message Queue using the IRZQGETS API, inv
* oke user-written implementation, set the response or fault langua
* ge structure and commit it to the IMS Message Queue using the IRZ
* QSETS API. Finally, deallocate language structures.
*------------------------------------------------------------------*/
setteam_1_0Handler: procedure internal;
/* Get the request language structure from the IMS Message Queue u
sing the IRZQGETS API.
*/
@irz_struct_name = 'setteam_1_0';
@irz_struct_type = @irz_soap_body_struct;
@irz_struct_ptr = null();
@irz_struct_size = 0;
@irz_debug = '0'b;
call IRZQGETSWrapper(procedurename());
if (@return_code = @irz_success) then do;
setteam_1_0_ptr = @irz_struct_ptr;
end; else do;
return;
end;
Developing web services and SOA with Enterprise Service Tools 401
@irz_struct_size = storage(ServiceException);
end;
@irz_commit_structs = '1'b;
@irz_debug = '0'b;
call IRZQSETSWrapper(procedurename());
return;
end setteam_1_0Handler;
/*-------------------------------------------------------------------*
* Procedure: setteam_1_0Impl
* Description: Implement the business logic for operation "setteam_
* 1_0" using the following steps: (1) Process the request language
* structure "setteam_1_0", (2) Allocate and fill in the response la
* nguage structure "setteam_1_0Response" or a fault language struct
* ure from the set {ServiceException}. (3) Finally, set the respect
* ive response or fault language structure pointer before returning
* to the operation handler (Handler) procedure. Note: If an error
* occurs that requires a rollback, use parameter iopcb_mask_ptr to
* access the IOPCB.
*------------------------------------------------------------------*/
setteam_1_0Impl: procedure(iopcb_mask_ptr, setteam_1_0_ptr, setteam_1_0
Response_ptr, ServiceException_ptr) internal;
return;
end setteam_1_0Impl;
/*-------------------------------------------------------------------*
* Procedure: ping_1_0Handler
* Description: Get the request language structure for operation "pi
* ng_1_0" from the IMS Message Queue using the IRZQGETS API, invoke
* user-written implementation, set the response or fault language
* structure and commit it to the IMS Message Queue using the IRZQSE
* TS API. Finally, deallocate language structures.
*------------------------------------------------------------------*/
ping_1_0Handler: procedure internal;
return;
end ping_1_0Handler;
/*-------------------------------------------------------------------*
402 Developer for z/OS: Developing with Db2, CICS, and IMS
* Procedure: ping_1_0Impl
* Description: Implement the business logic for operation "ping_1_0
* " using the following steps: (1) Process the request language str
* ucture "n/a", (2) Allocate and fill in the response language stru
* cture "n/a" or a fault language structure from the set {}. (3) Fi
* nally, set the respective response or fault language structure po
* inter before returning to the operation handler (Handler) procedu
* re. Note: If an error occurs that requires a rollback, use parame
* ter iopcb_mask_ptr to access the IOPCB.
*------------------------------------------------------------------*/
ping_1_0Impl: procedure(iopcb_mask_ptr) internal;
return;
end ping_1_0Impl;
/*-------------------------------------------------------------------*
* Procedure: IRZQGETSWrapper
* Description: Get a language structure from the IMS Message Queue
* using the IRZQGETS API.
*------------------------------------------------------------------*/
IRZQGETSWrapper: procedure(caller_proc_name) internal;
@return_code = IRZQGETS(@irz_async_msg_header_ptr,
@irz_iopcb_mask_ptr, @irz_struct_type,
@irz_struct_name, @irz_struct_ptr,
@irz_struct_size, @irz_cee_feedback_ptr,
@irz_debug);
return;
end IRZQGETSWrapper;
/*-------------------------------------------------------------------*
* Procedure: IRZQSETSWrapper
* Description: Set a language structure and optionally commit it to
* the IMS Message Queue using the IRZQSETS API.
*------------------------------------------------------------------*/
IRZQSETSWrapper: procedure(caller_proc_name) internal;
@return_code = IRZQSETS(@irz_async_msg_header_ptr,
@irz_iopcb_mask_ptr, @irz_struct_type,
@irz_struct_name, @irz_struct_ptr,
@irz_struct_size, @irz_commit_structs,
@irz_cee_feedback_ptr, @irz_debug);
return;
end IRZQSETSWrapper;
/*-------------------------------------------------------------------*
* Procedure: LogEvent
* Description: Common procedure for logging events that may be exte
* nded as needed.
*------------------------------------------------------------------*/
LogEvent: procedure(text) internal;
dcl text char(*) varying byaddr;
Developing web services and SOA with Enterprise Service Tools 403
put skip list(datetime() || ' ' || text);
put list('');
return;
end LogEvent;
end WSPOC1;
end WSPOC1Package;
• A WSDL2ELS metadata file that is later used to generate the IMS application template file, the IMS
correlator file, and the XML converter files.
• A log file containing processing information. The name and location of file are specified in the
targetLogFile parameter of the WSDL2ELSSpec element of the ServiceSpecification.xml input file.
The files generated by the batch processor are as follows:
• The file containing the application template program:
– This program is a working template of an application that uses the IMS Web service provider.
– If the original WSDL file contains multiple operations then the template program is multioperation.
• The file or files containing the drivers and converters.
– There is one such file for each operation defined in the WSDL file.
– Each file contains a driver, an inbound converter, and an outbound converter.
• The IMS correlator file:
– This file contains information about using IMS Connect.
– If the WSDL file contains multiple operations then the correlator file is also multioperation.
404 Developer for z/OS: Developing with Db2, CICS, and IMS
Mapping session files
This group of topics describe the characteristics of the mapping session files that are generated by
WSDL2ELS in the WSDL2PLI and WSDL2COBOL scenarios.
Developing web services and SOA with Enterprise Service Tools 405
<ccl:mappingRoot xmlns:ccl="http://www.ibm.com/2006/ccl/Mapping"
domainID="com.ibm.etools.xmlent.mapping.domainxsd2pli" >
<ccl:mappingDeclaration name="Calculator.mapping">
<ccl:input path="CalculatorInput"/>
<ccl:output path="CALCULATORINPUT"/>
<ccl:mapping>
<ccl:input path="integerArray"/>
<ccl:output path="INTEGERARRAY"/>
</ccl:mapping>
<ccl:mapping>
<ccl:input path="allowOverflow"/>
<ccl:output path="ALLOWOVERFLOW"/>
</ccl:mapping>
</ccl:mappingDeclaration>
</ccl:mappingRoot>
406 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 109 on page 407describes these annotations:
Developing web services and SOA with Enterprise Service Tools 407
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com/
8_0_0_0/wsdl2elsmetadata" xmlns:w2e="http://www.ibm.com/8_0_0_0/wsdl2elsmetadata"
attributeFormDefault="qualified"
elementFormDefault="qualified">
<xsd:element name="Wsdl2elsMetadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="w2e:parameters" />
<xsd:element ref="w2e:preferences" />
<xsd:element ref="w2e:service" />
</xsd:sequence>
<xsd:attribute name="version" type="xsd:string" default="8.0.0.0" />
</xsd:complexType>
</xsd:element>
<xsd:element name="parameters">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="sourceWsdlFile" type="xsd:string" />
<xsd:element name="sourceWsdlService" type="xsd:QName" />
<xsd:element name="sourceWsdlPort" type="xsd:string" />
<xsd:element name="targetLanguageFile" type="xsd:string" />
<xsd:element name="targetMappingDirectory" type="xsd:string" />
<xsd:element name="targetMetadataFile" type="xsd:string" />
<xsd:element name="targetLogFile" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="preferences">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="enterpriseLanguage" type="xsd:string" />
<xsd:element name="enterpriseEnvironment" type="xsd:string" />
<xsd:element name="isServiceRequester" type="xsd:boolean" />
<xsd:element name="hostCCSIDIsDBCS" type="xsd:boolean" />
<xsd:element name="defaultStringLength" type="xsd:int" />
<xsd:element name="defaultTotalDigits" type="xsd:int" />
<xsd:element name="defaultFractionDigits" type="xsd:int" />
<xsd:element name="defaultDateTimeLength" type="xsd:int" />
<xsd:element name="elementMaxOccursLimit" type="xsd:int" />
<xsd:element name="languageNameLimit" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="service">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" ref="w2e:operation" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:QName" use="required" />
<xsd:attribute name="port" type="xsd:string" use="required" />
<xsd:attribute name="binding" type="xsd:QName" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="operation">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="w2e:input" minOccurs="0" />
<xsd:element ref="w2e:output" minOccurs="0" />
<xsd:element ref="w2e:fault" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="input">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="w2e:soapHeaderLanguageBinding" minOccurs="0" />
<xsd:element ref="w2e:soapBodyLanguageBinding" minOccurs="1" />
</xsd:sequence>
</xsd:element>
<xsd:element name="output">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="w2e:soapHeaderLanguageBinding" minOccurs="0" />
<xsd:element ref="w2e:soapBodyLanguageBinding" minOccurs="1" />
</xsd:sequence>
408 Developer</xsd:complexType>
for z/OS: Developing with Db2, CICS, and IMS
</xsd:element>
WSDL2ELS limitations and restrictions
This topic describes limitations and restrictions for the WSDL2ELS component in the WSDL2PLI and
WSDL2COBOL scenarios.
WSDL files
The following limitations and restrictions apply to WSDL files:
• WSDL2ELS supports WSDL 1.0 and 1.1 and SOAP 1.0 and 1.1.
• The WSDL document must have a document-literal wrapped style SOAP binding. The following
conditions can be raised when WSDL2ELS is given a WSDL document with an unsupported SOAP
binding style:
– CRRZX0114E An unsupported SOAP binding style style_name was specified for
Port Binding binding_name of Port port_name of Service service_name.
– CRRZX0116E An unsupported SOAP operation style style_name was specified
for Operation operation_name of Port Binding binding_name of Port
port_name of Service service_name.
– CRRZX0115E An unsupported SOAP body use use_name was specified for
Operation operation_name of Port Binding binding_name of Port port_name of
Service service_name.
XSD structures
The following limitations apply to XSD structures:
• XML schemas must have unique target namespaces within the context of the source WSDL. If
WSDL2ELS detects that an XML schema has a non-unique target namespace then the following
condition is raised:
CRRZX0102E An error occurred while importing a WSDL file. The XML Schema
target namespace target_namespace is not unique within the context of the
WSDL file.
• The XSD built-in type anySimpleType is not supported. If WSDL2ELS detects that an XSD element or
attribute is of this type then the following condition is raised:
Developing web services and SOA with Enterprise Service Tools 409
• Recursive complex type references are not supported. If WSDL2ELS detects that an XSD element
specifies a complex type of which it is already a direct or indirect member, then the following condition
is raised:
CRRZX0118E The maximum XSD element hierarchy depth of 15 has been exceeded
at XSD XPath: qualified_element_path.
• WSDL2ELS does not support generation of language structures for SOAP Headers or SOAP Header faults
in the WSDL2PLI scenario.
410 Developer for z/OS: Developing with Db2, CICS, and IMS
@defaultMaxOccursLimit and WSDL2ELSSpec/@defaultCharMaxLength attributes to avoid generating
structures that are unnecessarily large.
• The characteristics of enterprise language structures might decrease the amount of XML data that can
be parsed or generated. For example, although the literal 'John Doe' requires only 8 bytes to encode in
EBCDIC, saving it in the field “05 CUST-NAME PIC X(255)” requires 255 bytes.
• COBOL supports a maximum nesting depth of 49 levels for subordinate group and elementary data
items, and the maximum number of dimensions for an array (table) is limited to 7. Therefore, the
maximum supported total nesting depth of XSD element declarations is 49 with a limit of 7 dimensions
on XSD element arrays. If WSDL2ELS detects that an XSD element declaration exceeds the total nesting
depth limit of 49, or the array dimension limit of 7, WSDL2ELS will terminate with one of the following
messages:
– CRRZX0118E The maximum XSD element hierarchy depth of maximum_depth has
been exceeded at XSD XPath: qualified_element_path.
– CRRZX0135E The maximum XSD element array dimension limit of dimension_limit
has been exceeded at XSD XPath: qualified_element_path.
Batch processor
The batch processor is a command-line utility for generating enterprise Web service description files and
message converter files for CICS and IMS applications.
Web service files generated by the batch processor are identical to those generated in the single-service
projects (see “Web service development scenarios: Single-service projects” on page 136).
The advantages of using the batch processor are (a) that it reads configuration information from
generation properties files that you can save and reuse, and (b) that optionally it can generate Web
service files for multiple Web services in one execution.
The generation properties files for the batch processor are
• Container.xml
• ServiceSpecification.xml
• PlatformProperties.xml
Note: To make the batch processor generate files for more than one Web service, create a separate and
uniquely named ServiceSpecification.xml file for each Web service.
The batch processor supports the following scenario that is not supported by the single-service wizards:
• Create New Service Implementation (top-down) for the IMS Enterprise Suite SOAP Gateway runtime
environment, with Compiled Conversion and Enterprise PL/I language only (see “Generation properties
for the top-down scenario with IMS Enterprise Suite SOAP Gateway, Enterprise PL/I, and compiled
conversion” on page 417).
Related tasks
Related references
Developing web services and SOA with Enterprise Service Tools 411
Creating and configuring generation properties files
This topic describes how to create generation properties files to use with the batch processor.
Using generation properties files and the batch processor has the following advantages over using the
graphical user interface:
• It allows regeneration of artifacts without having to remember and reenter inputs to the launchpad and
the single-service wizard.
• It provides a record of the options that were specified when the artifacts were generated.
412 Developer for z/OS: Developing with Db2, CICS, and IMS
– In the GenerationSpecArray element set the platformProperties attribute to the name of the
current PlatformProperties.xml file.
– Add a GenerationSpec element for each set of output files that you want to create and specify the
name of the appropriate ServiceSpecification file.
You can now run the batch processor with the newly configured generation properties files.
C:\Program Files\IBM\SDPShared\plugins
com.ibm.etools.est.ui_rrrrrr.vyyyymmdd_hhmm
Tip: When you run a single-service wizard it automatically creates three generation properties files that
you can use with the batch processor to generate the same files that were generated by the single-service
wizard (see “Creation of generation properties files for the batch processor” on page 195).
Important: Before you run the batch processor, close any running instance of Developer for z/OS that
uses the target workspace.
Start the batch processor by entering the following command from the command line or executing it from
a script. There are three formats of the invocation:
Developing web services and SOA with Enterprise Service Tools 413
(1) xsebatch -s languageFile [-c | -w serviceName] | [-c -w serviceName]
-f containerFile [-d workspace] [-e WS_installdir] [-verbose]
[-version] [-novalidation] [-overwrite=yes|no] [-annot synFile]
[-commtypes commTypesFile] [-whitespacecompat]
Figure 55. Formats for the parameters of the batch processor invocation:
Format (1)
In Format (1) the following parameters are required: -s, -c or -w or both, and -f. This format applies to
the bottom-up scenario. The parameters used in Format (1) are:
-s languageFile: This parameter is required unless the same information is specified in the
importFile element. Here languageFile is the language source file that contains the message
definition. You can override this name by specifying values for the elements importDirectory and
inputFile in the MessageSpec element in the ServiceSpecification.xml file.
-f containerFile: In Format (1) this parameter is required. It specifies the name of the
Container.xml file that contains the generation options. Most of the elements in this file are optional,
but a few are required and must be specified.
-overwrite=yes|no: If set to yes then this parameter causes newly generated files to overwrite
existing files of the same names. If set to no then new names are provided for generated files that
would otherwise overwrite existing files. The new name of the file contains an integer number as suffix
that is incremented for each duplicate file until a unique name is found (for example, myfile12o.xsd).
Overwriting converters and the XSD file can be further refined by the value of the overwrite attribute
of the file generation specification elements contained in the XseSpec element (see “XseSpec” on
page 511).
414 Developer for z/OS: Developing with Db2, CICS, and IMS
-annot synFile: This parameter specifies the absolute path and file name of the synonym action
XML file. The synonym action XML file contains the optional annotation information that can be present
in the source code of the service interface data declarations. When this parameter is specified the
annotation information is included with the service interface data declarations in the generated files.
The information in this file is applied to all source files during the invocation of xsebatch (see “Using
source annotations to specify service interface” on page 297).
-commtypes commTypesFile: This parameter specifies the absolute path and file name of the
common types XML file. The common types XML file describes the common elements and types that
exist among all the various elements and types that are going to be used in the generated files. When
this parameter is specified the generated WSDL and XSD schema refer to the common elements and
types instead of imbedding and potentially duplicating the elements and types. The information in this
file is applied to all source files during the invocation of xsebatch (see “Commonly Used Elements and
Types” on page 302).
-whitespacecompat: This parameter causes any trailing spaces to be trimmed in LS2XML converters
when a whitespace facet is not declared in an XSD element or an attribute. When this option is
not specified, spaces are handled with whitespace="perserve" in the converting elements that are
declared with no whitespace.
Format (2)
In Format (2) the following parameters are required: -d, -c or -e or both. This format applies to the
meet-in-middle scenario. The parameters used in Format (2) are:
-d workspace: See Format (3).
Format (3)
In Format (3) either the -s parameter or the -f parameter is required and the -c parameter is required.
This format applies to the top-down scenario. The parameters in Format (3) are:
-s sourceWSDL: Either this parameter or the -f parameter is required. sourceWSDL is the name of
the source WSDL file. When this parameter is specified all the generation options and configuration
preferences are set from default values. If the -d parameter is also present then it specifies the
location of the default preferences. Otherwise the default preferences are set by the generation
engines.
-f containerFile: In Format (3) either this parameter or the -s parameter is required. This
parameter specifies the name of the Container.xml file that contains the generation options. Most
of the content of items in this file are optional, but a few are required and must be specified.
-c containerFile: In Format (3) this parameter is required. In Format (3) -c causes the following
artifacts to be generated: language structures, language converters, mapping metadata, a template
program, and runtime (IMS Enterprise Suite SOAP Gateway) metadata.
Developing web services and SOA with Enterprise Service Tools 415
-d workspace: This parameter specifies the fully qualified path of the workspace to be used for
the import. If this path is not specified on the command line then the default is taken from the
environment variable workspace. If that environment variable is not set then the default is set to the
following:
• %eclipse_root%\workspace
-e WS_installdir: This parameter specifies is the Eclipse subdirectory of the directory in which
Developer for z/OS is installed. If not specified, the default is taken from an environment variable
eclipse_root. If that environment variable is not set then the default is set to the default installation
directory for Developer for z/OS. That directory is recorded during installation by the install process
and is set in the environment variable WDZ71INSTDIR.
Note on directory names for -d and -e: If a directory name contain spaces then it must be placed in
double quotes:
• "c:\my workspace"
Use the double quotes only when specifying values for command line parameters -d and -e. If you
use environment variables, omit double quotes for these values. Do not use a trailing file separator
character in the path names for the -d and -e options nor in the values of the environment variables
workspace and eclipse_root.
verbose: This parameter causes the diagnostic messages to be printed to the console.
version: This parameter causes the version, release, and modification information to be printed to
the console.
novalidation: This parameter turns off the validation of generation property files against an XML
Schema.
Related tasks
Related references
416 Developer for z/OS: Developing with Db2, CICS, and IMS
Generation properties for the top-down scenario with IMS Enterprise Suite
SOAP Gateway, Enterprise PL/I, and compiled conversion
This topic lists the generation properties that have a particular setting for the Create New Service
Implementation (top-down) scenario for the IMS Enterprise Suite SOAP Gateway runtime environment,
with compiled conversion and Enterprise PL/I language.
Note: This scenario is currently supported only in the batch processor.
Table 111 on page 417 shows the generation properties that have a particular setting for this scenario:
Table 111. Properties for top-down scenario, IMS SOAP Gateway, PL/I, and compiled conversion
Properties file: Element: Property:
PlatformProperties.xml CodegenPropertyArray type
CodegenPropertyArray. com.ibm.etools.xmlent.ui.GEN_CP_LIST
CodegenProperty
ServiceSpecification.xml EISServiceImplementation runtime
type
EISServiceImplementation. importFile
ServiceImplementationSpec
importDirectory
wsdlServiceName
targetLanguageFile
targetLogFile
targetMappingDirectory
targetMetadataFile
EISServiceImplementation. defaultCharMaxLength
ServiceImplementationSpec.
defaultTotalDigits
WSDL2ELSSpec
defaultFractionDigits
defaultDateTimeLength
InlineMaxOccursLimit
languageNameLimit
Container.xml
Container.xml is the top-level generation properties file used by the batch processor to create enterprise
Web service descriptions (in the “bottom-up” scenario), Web services implementation artifacts (in the
“top-down” scenario), and message converters for CICS and IMS applications.
Purpose
Container.xml contains the generation options and references to the Platform.xml and
ServiceSpecification.xml file.
Elements
Most of the content of items in this file is optional, but a few items are required. You can use the following
elements in the Container.xml document:
Developing web services and SOA with Enterprise Service Tools 417
• “GenerationSpec” on page 420
• “GenerationSpecArray” on page 419
Sample
The “Container.xml sample” on page 420 illustrates the use of applicable elements and their attributes.
Schema
The “Schema for Container.xml” on page 420 provides the structure for the contents of the Container.xml
document.
BatchSpecContainer
Use this top-level element of the Container.xml document. This element is optional.
Contained by
None
Contains
“GenerationSpecArray” on page 419
Attributes
Fields Description
Internal purpose only.
Attribute: version
Required?: No
Valid values: See Description
Default value: See Description
Example
<BatchSpecContainer>
<GenerationSpecArray generateConverters="true"
generateSeparateXSD="true"
generateWSDL="true"
platformProperties="PlatformProperties.xml">
<GenerationSpec name="ServiceSpecification.xml"/>
<GenerationSpec name="ServiceSpecification2.xml"/>
</GenerationSpecArray>
</BatchSpecContainer>
418 Developer for z/OS: Developing with Db2, CICS, and IMS
GenerationSpecArray
Use this element of the Container.xml document to provide information that globally affects the
generation of converters and service definitions. This element is required.
Contained by
BatchSpecContainer
Contains
“GenerationSpec” on page 420
Attributes
Fields Description
Specifies whether to generate the converter set (request and
Attribute: generateConverters
response converters, driver).
Required?: No
Valid values: true | false Note: The "false" setting of this attribute will cause the
Default value: false generateSeparateXSD attribute to be forced to "false". (This note
does not apply to the top-down scenarios.)
Specifies the location of the platform property file. The path can be
Attribute: platformProperties
relative (as in ./PlatformProperties.xml) or absolute.
Required?: Yes
Valid values: See Description
Default value: See Description
Example
<GenerationSpecArray generateConverters="true"
generateSeparateXSD="true"
generateWSDL="true"
platformProperties="Platform.xml">
<GenerationSpec name="ServiceSpecification.xml"/>
</GenerationSpecArray>
Developing web services and SOA with Enterprise Service Tools 419
GenerationSpec
Use this element to provide information about the ServiceSpecification.xml file, which specifies the
options for generating individual sets of converters and Web Service Definition Language (WSDL) files.
Contained by
“GenerationSpecArray” on page 419
Contains
None
Attributes
Fields Description
Specifies the path of the ServiceSpecification.xml file. This path can
Attribute: name
be either an absolute path or a path relative to the directory in which
Required?: Yes
Container.xml is located.
Default value: None
Example
<GenerationSpecArray
platformProperties="Platform.xml">
<GenerationSpec name="ServiceSpecification.xml"/>
</GenerationSpecArray>
<CodegenPropertyArray type="Cobol">
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_PROG_NAME"
value="CWSA"/>
<CodegenProperty name=
"com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
value="interpretive"/>
</CodegenPropertyArray>
Container.xml sample
Related references
Container.xml
420 Developer for z/OS: Developing with Db2, CICS, and IMS
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore">
<xsd:element name="GenerationSpec">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="GenerationSpecArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" ref="GenerationSpec"/>
</xsd:sequence>
<xsd:attribute name="platform" type="xsd:string" use="optional"/>
<xsd:attribute name="platformProperties" type="xsd:string" use="required"/>
<xsd:attribute name="generateConverters" type="xsd:boolean" use="optional"/>
<xsd:attribute name="generateSeparateXSD" type="xsd:boolean" use="optional"/>
<xsd:attribute name="generateWSDL" type="xsd:boolean" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="BatchSpecContainer">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" ref="GenerationSpecArray"/>
</xsd:sequence>
<xsd:attribute name="version" type="xsd:string" use="optional"/>
<xsd:attribute name="release" type="xsd:string" use="optional"/>
<xsd:attribute name="modelId" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Related references
Container.xml
PlatformProperties.xml
PlatformProperties.xml is one of the three generation properties files used by the batch processor to
create enterprise Web services descriptions (in the “bottom-up” scenario), Web services implementation
artifacts (in the “top-down” scenario), and message converters for CICS and IMS applications.
Purpose
PlatformProperties.xml has the default options properties that reflect your target run-time environment.
The options affect, for example, the processing of the language types (such as COBOL data types) that
are used in producing XML schema descriptions of Web service messages that are based on that language
type.
Elements
You can use the following elements in the PlatformProperties.xml document:
• “CodegenProperty” on page 422
• “CodegenPropertyArray” on page 433
• “ConnectionProperty” on page 433
• “ConnectionPropertyArray” on page 434
• “ImportProperty” on page 435
• “ImportPropertyArray” on page 438
• “Platform” on page 439
• “PlatformArray” on page 439
Developing web services and SOA with Enterprise Service Tools 421
Sample
The “PlatformProperties.xml sample” on page 440 illustrates the use of applicable elements and their
attributes.
Schema
The “Schema for PlatformProperties.xml” on page 441 provides the structure for the contents of the
PlatformProperties.xml document.
Related concepts
Related tasks
Related references
CodegenProperty
Use this element in the PlatformProperties.xml document to specify the properties for generating the
converter code, or in the ServiceSpecification.xml document to override the code generation properties
that you set in PlatformProperties.xml.
Contained by
Contains
None
Attributes
Start the value of the name attribute with com.ibm.etools.xmlent.ui.
Table 112 on page 422 shows the attributes for CodegenProperty.
422 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 112. Attribute Specifications for CodegenProperty (continued)
Fields Description
The values for this attribute define the bidirectional language
Attribute: GEN_BIDI_HOST
characteristics of the host data. The transformation is done from
Valid values: See Description
request XML data with characteristics specified by GEN_BIDI_OUT
Default value: None
to the host data with characteristics specified by this attribute after
the data is populated and converted to the appropriate bidirectional
language host page. See Supported code pages (CCSIDs).
The values for this attribute are the same as in the description for
GEN_BIDI_IN. If this attribute is specified, you are also required to
specify GEN_BIDI_IN or GEN_BIDI_OUT or both.
Note: If you do not specify either of the required attributes, no
bidirectional language transformation will be performed.
Developing web services and SOA with Enterprise Service Tools 423
Table 112. Attribute Specifications for CodegenProperty (continued)
Fields Description
This attribute has an effect only when you are generating a Web
Attribute:
service using the bottom-up method and you are using compiled XML
GEN_COMMENT_IN_XSD
conversion.
Valid values: See Description
Default value: false When this attribute is set to TRUE, the comments from the COBOL
source code file are generated as annotation documentation in the
generated XSD and WSDL files.
See “Including COBOL source code comments in generated XSD and
WSDL files” on page 327 for more information about this attribute.
Code page for the host converter program. See Supported code page
Attribute: GEN_CP_LIST
combinations.
Valid values: See Description
Default value: 1140
Attribute: This attribute has an effect only when you are generating source code
GEN_ERROR_FEEDBACK_FILE_PATH for a Web service using the bottom-up method and using compiled
Valid values: See Description XML conversion.
Default value: 1140 When this attribute is specified, the source code generator validates
the syntax of the main COBOL input file and its included COBOL files
and, if any COBOL syntax errors are detected, writes appropriate
error information into the output file that you specify.
When you use this attribute:
• Specify the name attribute to enable this option.
• In the value attribute, specify an output file path or file name.
See “Logging syntax errors detected in COBOL input files” on page
525 for more information about this attribute.
424 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 112. Attribute Specifications for CodegenProperty (continued)
Fields Description
The value of this attribute determines the value of the
Attribute:
elementFormQualified attribute in XML Schemas generated by the
GEN_ELEMENT_FORM_QUALIFIED
tool. This option only affects the "Compiled XML Conversion"
Valid values: See Description
conversion type.
Default value: true
Code page for the request (input) message. See Supported code
Attribute: GEN_IN_CP_LIST
pages (CCSIDs).
Valid values: See Description
Default value: 1140 Note: If you are generating artifacts for the IMS Enterprise Suite
SOAP Gateway, you must specify UTF-8 (value="1208") as Code
page for the request (input) message (GEN_IN_CP_LIST) and UTF-8
(value="1208") as Code page for the response (output) message
(GEN_OUT_CP_LIST). Any other values are not allowed and will cause
a runtime error if specified.
The value of this attribute directs the COBOL and PL/I XML converter
Attribute:
generators to generate code that is compatible with the IMS
GEN_IMS_MESSAGE_TYPE
Asynchronous Callout (ASYNC) or IMS Synchronous Callout (SYNC)
Valid values: ASYNC | SYNC
functions.
Default value: ASYNC
Developing web services and SOA with Enterprise Service Tools 425
Table 112. Attribute Specifications for CodegenProperty (continued)
Fields Description
The value of this attribute controls how complex type names are
Attribute:
generated from the COBOL group items. The value of "true" will cause
GEN_SHORT_TYPE_NAMES
the type name to be shortened to contain just the name derived from
Valid values: See Description
the group name itself and not the names of all the parent groups.
Default value: false
The value of "false" will cause the type name to contain the names
derived from all the parent groups. This attribute has no effect on
top-down or meet-in-middle scenarios.
The value of this attribute controls what version of the SOAP protocol
Attribute: GEN_SOAP_VERSION
binding is generated by the single-service project tools in a WSDL
Valid values: See Description
file. The valid values for this option are "1.1", "1.2", and "ALL". When
Default value: See Description
a particular version is specified, the SOAP binding conforming to
that SOAP protocol version is generated in the WSDL file. If ALL is
selected , both bindings are generated in the WSDL file.
If this option is not specified by the user, then the default value of
this option depends on the setting of the GEN_WSDL_VERSION: If the
requested WSDL version is set to 1.1, then the default value of the
SOAP version is set 1.1. If the requested WSDL version is set to 2.0,
then the default value of the SOAP version is set to 1.2.
In addition, specifying this option forces the setting of the
minimumRuntimeLevel to a value of 2.0. For additional information,
see the description of the runtimeLevel attribute (runtimeLevel) in the
WSBindSpec function.
Note: This option affects only CICS Web services interpretive bottom-
up scenario. For more information on the behavior of the WSBind file
with various SOAP versions, see the CICS TS 3.2 documentation.
426 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 112. Attribute Specifications for CodegenProperty (continued)
Fields Description
The value of this attribute indicates to the batch processor whether
Attribute:
or not to generate Web service artifacts compatible with MTOM
GEN_USE_MTOM_XOP
(Message Transformation Optimization Mechanism)/XOP (XML-binary
Valid values: true | false
Optimization Package). When the value of this attribute is true, the
Default value: false
behavior of the batch processor is modified in the following ways:
• 01 level language structures specified on the InputMessage
and OutputMessage elements are treated as simple 01 level
character arrays before being passed to DFHLS2WS; this occurs
so that they each language structure is represented as a single
xsd:base64binary typed element in the Web service description.
• The value of the attribute XseSpec/WSBindSpec/@charVarying is
assumed to be “true”.
Note: This attribute only affects the output of the batch
processor when GEN_CONVERSION_TYPE = "interpretive" and the
ServiceSpecification.xml/EISService element is used (bottom-up).
For additional description, see “Generate CICS MTOM/XOP Web
Service (Bottom-Up)” on page 271
Developing web services and SOA with Enterprise Service Tools 427
Table 112. Attribute Specifications for CodegenProperty (continued)
Fields Description
In contrast to the INIT_OMITTED_ITEMS_IN_INTERFACE (the next
Attribute:
attribute described in this table), this attribute enables initialization
INIT_EMPTY_ITEMS_IN_INTERFACE
for data items in the request language structure that you have
Valid values: See Description
included in the Web service input data structure.
Default value: false
This attribute applies only to the bottom-up scenario for generating a
Web service, and apply only if you specify Compiled XML Conversion.
When this attribute is enabled, VALUE clauses in the request
language structure that you specified for the new Web service are
given effect by initialization code that is executed before the new
Web service invokes the existing COBOL application (service provider
application or service requester application.
However, even when this attribute is enabled, it does not affect a
particular COBOL data item unless the corresponding XML element in
the request XSD Schema data structure is empty.
VALUE literals must be defined in one line. They must not be
continued.
See “Initializing data items in the COBOL application's input data
structure” on page 325 for more information about this attribute.
The value of this option is assumed to be false if the host code page is
Attribute:
not a supported EBCDIC SBCS code page; see help topic “Supported
GEN_USE_HOST_CP_INT_XML
code page combinations” on page 430 for a list of supported EBCDIC
Valid values: true | false
SBCS code pages. Set this option to false only when mapping XML
Default value: true
elements or XML attributes whose tag names contain characters that
do not have a representation in the host code page.
Note: This option is currently only supported for COBOL.
Example
Figure 57 on page 429 is an example of CodgenProperty elements within the CodgenPropertyArray
element.
428 Developer for z/OS: Developing with Db2, CICS, and IMS
<CodegenPropertyArray type="Cobol">
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_PROG_NAME" value="XCNV"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE" value="interpretive"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_AUTH_NAME" value="WSED"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_DEC_COMMA" value=" false"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_FLAT_GEN" value=" false"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.COBOL_COMPILER_LEVEL" value="3.4"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_SHORT_TYPE_NAMES" value="true"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_WSDL_VERSION" value="2.0"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_SOAP_VERSION" value="1.2"/>
CCSID: Description:
37 USA, Canada, etc. EBCDIC
273 Austria, Germany EBCDIC
277 Denmark, Norway EBCDIC
278 Finland, Sweden EBCDIC
280 Italy EBCDIC
284 Spain, Latin America EBCDIC (Spanish)
285 UK EBCDIC
297 France EBCDIC
420 Arabic EBCDIC
424 Hebrew EBCDIC
500 International EBCDIC
813 ISO 8859-7 Greek / Latin ASCII
819 ISO 8859-1 Latin 1 / Open Systems ASCII
838 Thai Host Extended SBCS EBCDIC
870 Latin 2 - Multilingual EBCDIC
871 Iceland EBCDIC
920 ISO 8859-9 Latin 5 ASCII
930 Japanese (Katakana-based) EBCDIC
933 Korean EBCDIC
935 Simplified Chinese EBCDIC
937 Traditional Chinese EBCDIC
Developing web services and SOA with Enterprise Service Tools 429
CCSID: Description:
939 Japanese (Latin-based) EBCDIC
1025 Cyrillic Multilingual EBCDIC
1026 Turkey Latin 5 EBCDIC
1047 Latin 1 / Open Systems EBCDIC
1112 Baltic, Multilingual EBCDIC
1122 Estonia EBCDIC
1123 Cyrillic Ukraine EBCDIC
1140 USA, Canada, etc. EBCDIC with Euro
1141 Austria, Germany EBCDIC with Euro
1142 Denmark, Norway EBCDIC with Euro
1143 Finland, Sweden EBCDIC with Euro
1144 Italy with EBCDIC Euro
1145 Spain, Latin America EBCDIC (Spanish) with Euro
1146 UK EBCDIC with Euro
1147 France EBCDIC with Euro
1148 International EBCDIC with Euro
1149 Iceland EBCDIC with Euro
1154 Cyrillic Multilingual EBCDIC with EuroCyrillic Multilingual EBCDIC with Euro
1155 Turkey Latin 5 EBCDIC with Euro
1156 Baltic, Multilingual EBCDIC with Euro
1157 Estonia EBCDIC with Euro
1158 Cyrillic Ukraine EBCDIC with Euro
1160 Thai Host EBCDIC with Euro
1200 Unicode, UTF-16
1208 Unicode, UTF-8
1364 Korean EBCDIC with Euro
5026 Japanese (Katakana-based) EBCDIC a subset of 930
5035 Japanese (Latin-based) EBCDIC a subset of 939
Related references
430 Developer for z/OS: Developing with Db2, CICS, and IMS
are using or the XML conversion program cannot parse a locale-specific code page that you select, you
can specify a Unicode code page instead.
Unicode
The request and response code pages are used with communications between the runtime XML
conversion programs and the runtime environment (Web services for CICS, IMS Enterprise Suite SOAP
Gateway, or Batch, TSO, z/OS UNIX System Services) not between the runtime XML conversion programs
and the client.
If the runtime environment that you are using or the XML conversion program cannot parse a locale-
specific code page that you select, you can specify a Unicode code page instead. In the single-service
wizards, whenever there is a list box of code pages to select from, the list box includes the Unicode
variants (UTF-16 or UTF-8).
In general, the performance of the XML converters is slower when the request and response code pages
are Unicode.
The following table shows the Unicode variant that is available for each type of single-service project:
Developing web services and SOA with Enterprise Service Tools 431
Request: Host: Response:
1047, Unicode 1047 1047, Unicode
Unicode 1112 Unicode
Unicode 1122 Unicode
Unicode 1123 Unicode
1140, Unicode 1140 1140, Unicode
1141, Unicode 1141 1141, Unicode
1142, Unicode 1142 1142, Unicode
1143, Unicode 1143 1143, Unicode
1144, Unicode 1144 1144, Unicode
1145, Unicode 1145 1145, Unicode
1146, Unicode 1146 1146, Unicode
1147, Unicode 1147 1147, Unicode
1148, Unicode 1148 1148, Unicode
1149, Unicode 1149 1149, Unicode
Unicode 1153 Unicode
Unicode 1154 Unicode
Unicode 1155 Unicode
Unicode 1156 Unicode
Unicode 1157 Unicode
Unicode 1158 Unicode
Unicode 1160 Unicode
Related references
432 Developer for z/OS: Developing with Db2, CICS, and IMS
“CodegenProperty” on page 422
CodegenPropertyArray
Use this element to specify the programming language for the code to be generated and as the
container for the code generation properties for the converter. You can use this element in either
PlatformProperties.xml or ServiceSpecification.xml. If you use it in both documents, the specification
in ServiceSpecification.xml overrides the specification in PlatformProperties.xml.
Contained by
Contains
“CodegenProperty” on page 422
Attributes
Fields Description
Specifies the implementation language for a new service in a top-
Attribute: type
down scenario.
Valid values: COBOL |
PLI-ENTERPRISE
Required?: No
Default value: COBOL
Example
Figure 58 on page 433 is an example of the CodegenPropertyArray element.
<CodegenPropertyArray type="Cobol">
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_PROG_NAME" value="XCNV"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_AUTH_NAME" value="WSED"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_IN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_OUT_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_DEC_COMMA" value=" false"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_FLAT_GEN" value=" false"/>
</CodegenPropertyArray>
ConnectionProperty
Use this element in the PlatformProperties.xml document to specify the properties for a server
connection, or in the ServiceSpecification.xml document to override the server connection properties
that you set in PlatformProperties.xml. This element is required in the PlatformProperties.xml document.
Contained by
“ConnectionPropertyArray” on page 434
Contains
None
Developing web services and SOA with Enterprise Service Tools 433
Attributes
Fields Description
Specifies connection protocol and location of the Web service.
Attribute: name
Valid values: See Description
Required?: Yes
Default value: See Description
Examples
Figure 59 on page 434 are Figure 60 on page 434 examples of the ConnectionProperty element.
<ConnectionProperty name="connectionURI"
value="http://sample.connection.uri.com:8888/CICS/XMLS/DFHWSDSH/ACTDSOAP"/>
<ConnectionProperty name="connectionURI"
value="http://localhost:8080/imssoap/services/IMSPHBKPort"/ >
ConnectionPropertyArray
Use this element as the container for connection properties in either PlatformProperties.xml or
ServiceSpecification.xml. If you use it in both documents, the specification in ServiceSpecification.xml
overrides the specification in PlatformProperties.xml. This element is optional in both files.
Contained by
Contains
“ConnectionProperty” on page 433
Attributes
None
Example
Figure 61 on page 434 is an example of the ConnectionPropertyArray element.
<ConnectionPropertyArray>
<ConnectionProperty name="connectionURI"
value="http://winmvsn0.cpit.hursley.ibm.com:8888/CICS/XMLS/DFHWSDSH/ACTDSOAP"/>
</ConnectionPropertyArray>
434 Developer for z/OS: Developing with Db2, CICS, and IMS
ImportProperty
Use this element to provide information about the compiler options as appropriate for the
programming language that you specify in the ImportPropertyArray element. You can use this
element in the ServiceSpecification.xml document to override the compiler options that you set in
PlatformProperties.xml. If you want to generate language converters, you are required to specify this
element in the PlatformProperties.xml document.
Contained by
“ImportPropertyArray” on page 438
Contains
None
COBOL Attributes
Start the value of the name attribute with com.ibm.etools.cobol.
Note: When generating language converters, the defaults do not apply; ALL properties must be specified.
The valid pairs of names and values for COBOL are shown in Table 113 on page 435.
2 - IBM-437
1 - IBM-850
0 - IBM-1252
Specifies the index number for the locale. From the Locale and code
Attribute:
pages table, you can determine the index number by counting the row
COBOL_COMPILE_TIME_LOCALE
number of the locale name you are interested in. For example:
Valid values: 1 through 50
Required?: - 1 - ar_AA
Default value: 14 14 - en_US
50 - zh_TW
Developing web services and SOA with Enterprise Service Tools 435
Table 113. COBOL Attribute Specifications for ImportProperty (continued)
Fields Description
Specifies the language used to display the syntax errors. The values
Attribute:
correspond to the languages as follows:
COBOL_ERROR_MSGS_LANG
Valid values: 0 through 13 0 - en_US
Required?: - 1 - ja_JP
Default value: 0 2 - zh_TW
3 - zh_CN
4 - ko_KR
5 - it_IT
6 - fr_FR
7 - es_ES
8 - de_DE
9 - pt_BR
10 - CS_CZ
11 - HU_HU
12 - PL_PL
13 - RU_RU
The default is en_US. To change this value, use the preferences page.
436 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 113. COBOL Attribute Specifications for ImportProperty (continued)
Fields Description
Specifies the setting of the COBOL_QUOTE compile-time option.
Attribute: COBOL_QUOTE
Valid values: DOUBLE | SINGLE
Required?: -
Default value: DOUBLE
Use this option to list copy books on which a COBOL source file that
Attribute: COBOL_SYSLIB
you are importing has dependencies (see Example).
Valid values: One or more directories
in which copy books are located. The default value is: Directory location of the COBOL source file.
Required?: -
Default value: See Description
COBOL Example
<ImportPropertyArray type="Cobol">
<ImportProperty name="com.ibm.etools.cobol.COBOL_TRUNC" value="STD"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_NSYMBOL" value="DBCS"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_QUOTE" value="DOUBLE"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_SYSLIB"
value="C:\cobol\copy books;C:\mycopybooks"/>
</ImportPropertyArray>
PL/I Attributes
Start the value of the name attribute with com.ibm.ccl/pli.
Note: When generating language converters, the defaults do not apply; ALL properties must be specified.
The valid pairs of names and values for PL/I are shown in Table 114 on page 437.
Developing web services and SOA with Enterprise Service Tools 437
Table 114. PL/I Attribute Specifications for ImportProperty (continued)
Fields Description
Specifies the special character to be used as the OR operator when
Attribute: PLI_OR
generating and importing sources using the Batch Processor.
Valid values: See Description
Required?: - With Enterprise PL/I, up to 7 alternate characters can be specified
Default value: that the compiler will recognize as the OR operator, however, when
generating PL/I sources, only the first character in the sequence will
be used.
PL/I Example
<ImportPropertyArray type="Pli">
<ImportProperty name="com.ibm.ccl.pli.PLI_NOT" value="?"/>
<ImportProperty name="com.ibm.ccl.pli.PLI_OR" value="^"/>
</ImportPropertyArray>
Related information
Opening the Preferences window
ImportPropertyArray
Use this element to specify the programming language for the file to be imported and as the container
for import properties. You can use this element in the ServiceSpecification.xml document to override
the programming language that you set in PlatformProperties.xml. If you want to generate language
converters, you are required to specify this element in the PlatformProperties.xml document.
Contained by
Contains
ImportProperty
Attributes
Fields Description
Specifies the programming language.
Attribute: type
Valid values: COBOL | Pli
Required?: Yes
Default value: COBOL
Example
<ImportPropertyArray type="Cobol">
<ImportProperty name="com.ibm.etools.cobol.COBOL_TRUNC" value="STD"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_NSYMBOL" value="DBCS"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_QUOTE" value="DOUBLE"/>
</ImportPropertyArray>
438 Developer for z/OS: Developing with Db2, CICS, and IMS
Platform
Use this element to specify the platform for which the Web service will be generated and as a container
for properties that affect global service generation options.
Contained by
“PlatformArray” on page 439
Contains
“ImportPropertyArray” on page 438
“ConnectionPropertyArray” on page 434
“CodegenPropertyArray” on page 433
Attributes
Fields Description
Specifies the target generation platform.
Attribute: name
Valid values: OS390 Note: OS390 is the currently supported value. Other values are
Required?: Yes reserved for future use.
Default value: OS390
Example
Figure 62 on page 439 is an example of the Platform element within the PlatformArray element.
<PlatformArray>
<Platform name="OS390">
<ImportPropertyArray type="Cobol">
<ImportProperty name="com.ibm.etools.cobol.COBOL_TRUNC" value="STD"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_NSYMBOL" value="DBCS"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_QUOTE" value="DOUBLE"/>
</ImportPropertyArray>
<ConnectionPropertyArray>
<ConnectionProperty name="connectionURI"
value="http://winmvsn0.cpit.hursley.ibm.com:8888/CICS/XMLS/DFHWSDSH/ACTDSOAP"/>
</ConnectionPropertyArray>
<CodegenPropertyArray type="Cobol">
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_PROG_NAME" value="XCNV"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_AUTH_NAME" value="WSED"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_IN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_OUT_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_DEC_COMMA" value=" false"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_FLAT_GEN" value=" false"/>
</CodegenPropertyArray>
</Platform>
</PlatformArray>
PlatformArray
This top-level element of the PlatformProperties.xml document provides information about the target
runtime environment.
Contained by
None
Contains
“Platform” on page 439
Developing web services and SOA with Enterprise Service Tools 439
Attributes
None
Example
Figure 63 on page 440 is an example of the PlatformArray element.
<PlatformArray>
<Platform name="OS390">
<ImportPropertyArray type="Cobol">
<ImportProperty name="com.ibm.etools.cobol.COBOL_TRUNC" value="STD"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_NSYMBOL" value="DBCS"/>
<ImportProperty name="com.ibm.etools.cobol.COBOL_QUOTE" value="DOUBLE"/>
</ImportPropertyArray>
<ConnectionPropertyArray>
<ConnectionProperty name="connectionURI"
value=
"http://winmvsn0.cpit.hursley.ibm.com:8888/CICS/XMLS/DFHWSDSH/ACTDSOAP"/>
</ConnectionPropertyArray>
<CodegenPropertyArray type="Cobol">
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_PROG_NAME" value="XCNV"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_AUTH_NAME" value="WSED"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_IN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_OUT_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_DEC_COMMA" value=" false"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_FLAT_GEN" value=" false"/>
</CodegenPropertyArray>
</Platform>
</PlatformArray>
PlatformProperties.xml sample
This topic is a sample of the PlatformProperties.xml.
Related references
440 Developer for z/OS: Developing with Db2, CICS, and IMS
PlatformProperties.xml
Developing web services and SOA with Enterprise Service Tools 441
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore">
<xsd:element name="CodegenProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="CodegenPropertyArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="CodegenProperty" />
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ConnectionProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ConnectionPropertyArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="ConnectionProperty" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ImportProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ImportPropertyArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="ImportProperty" />
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="Platform">
<xsd:complexType>
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="1"
ref="ImportPropertyArray" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="ConnectionPropertyArray" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="CodegenPropertyArray" />
</xsd:all>
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="PlatformArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" ref="Platform" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Related references
PlatformProperties.xml
442 Developer for z/OS: Developing with Db2, CICS, and IMS
ServiceSpecification.xml
ServiceSpecification.xml is one of the three generation properties files used by the batch processor.
Purpose
Using the ServiceSpecification.xml file, you can specify the options required to generate new Web service
interfaces or Web service implementations. In this file you can also override certain options that you
specify in the PlatformProperties.xml file.
ServiceSpecification.xml allows you to create:
• A Web service interface for existing CICS and IMS applications. The generated artifacts include a Web
service description and message converters. For IMS, the generated artifacts also include the correlator
file.
• A new CICS or IMS service provider application from a Web Service description. The generated artifacts
include language structures, message converters and an application template. For IMS, the generated
artifacts also include the correlator file.
• A new CICS service requester implementation from a Web Service description. The generated artifacts
include language structures, message converters and an application template.
Elements
You can use the following elements in the ServiceSpecification.xml document:
• “ApplicationTemplateSpec” on page 444
• “CodegenProperty” on page 422
• “CodegenPropertyArray” on page 433
• “ConnectionProperty” on page 433
• “ConnectionPropertyArray” on page 434
• “ConverterSpecIn” on page 445
• “ConverterSpecOut” on page 446
• “CorrelatorSpec” on page 447
•
•
• “DriverSpec” on page 449
• “EISProject” on page 452
• “EISService” on page 453
• “EISServiceImplementation” on page 455
• “ElementSelection” on page 456
• “ElementSelectionArray” on page 457
• “ImportProperty” on page 435
• “ImportPropertyArray” on page 438
• “InputMessage” on page 457
• “InputOutputMessage” on page 459
• “ItemExclude” on page 460
• “ItemExclusionArray” on page 462
• “ItemSelection” on page 462
• “ItemSelectionArray” on page 464
• “LanguageStructureSpec” on page 464
Developing web services and SOA with Enterprise Service Tools 443
• “LanguageStructureSpecIn” on page 465
• “LanguageStructureSpecOut” on page 466
• “MessageSpec” on page 467
• “Operation” on page 469
• “OperationProperty” on page 471
• “OperationPropertyArray” on page 472
• “OperationSelection” on page 472
• “OperationSelectionArray” on page 473
• “OutputMessage” on page 473
• “RedefinesArray” on page 475
• “RedefineSelection” on page 476
• “ServiceImplementationSpec” on page 478
• “ServiceProperty” on page 480
• “ServicePropertyArray” on page 481
• “TypeSelection” on page 482
• “TypeSelectionArray” on page 482
• “WSBindSpec” on page 483
• “XSDBindSpec” on page 496
• “XMLNamesArray” on page 503
• “XMLNameSelection” on page 504
• “XsdSpec” on page 506
• “XsdSpecIn” on page 508
• “XsdSpecOut” on page 509
• “XseSpec” on page 511
Sample
The “ServiceSpecification.xml sample (EISService Element)” on page 512 illustrates the use of applicable
elements and their attributes.
Schema
The “Schema for ServiceSpecification.xml” on page 513 provides the structure for the contents of the
ServiceSpecification.xml document.
ApplicationTemplateSpec
Use this element of the ServiceSpecification.xml document to specify properties of the new application
template generated to assist in implementing a new service provider or service requester based on the
web service description (WSDL).
Contained by
“ServiceImplementationSpec” on page 478
Contains
None
Attributes
Table 115 on page 445 shows the attributes for ApplicationTemplateSpec.
444 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 115. Attribute Specifications for ApplicationTemplateSpec
Fields Description
The filename of the generated application template.
Attribute: fileName
Valid values: See Description The default value is: First 8 characters of the input WSDL file name
Required?: No
Default value: See Description
Example
Figure 66 on page 445 is an example of ApplicationTemplateSpec element.
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSTopDownSample">
</EISProject>
ConverterSpecIn
Use this element of the ServiceSpecification.xml document to specify the generation options for the
request converter.
Contained by
“XseSpec” on page 511
Contains
None
Attributes
Table 116 on page 446 shows the attributes for ConverterSpecIn.
Developing web services and SOA with Enterprise Service Tools 445
Table 116. Attribute Specifications for ConverterSpecIn
Fields Description
Specifies the name of the output file.
Attribute: fileName
Valid values: See Description The default value is: Data source file name concatenated with "I"
Required?: No
Default value: See Description
Example
ConverterSpecOut
Use this element of the ServiceSpecification.xml document to specify the generation options for
theresponse converter.
Contained by
“XseSpec” on page 511
Contains
None
Attributes
Table 117 on page 446 shows the attributes for ConverterSpecOut.
446 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 117. Attribute Specifications for ConverterSpecOut (continued)
Fields Description
Specifies whether to overwrite the output file if it exists.
Attribute: overwrite
Valid values: true | false
Required?: No
Default value: true
Example
<ConverterSpecOut fileName="DFH0CSTDO.cbl"
overwrite="true" programName="XCNVO"/>
CorrelatorSpec
Use this element of the ServiceSpecification.xml document to specify the generation options for the IMS
Correlator file. The correlation information is used by the IMS Enterprise Suite SOAP Gateway.
Contained by
Contains
None
Attributes
Table 118 on page 447 shows the attributes for CorrelatorSpec.
The name of the connection bundle for IMS Enterprise Suite SOAP
Attribute: calloutConnBundleName
Gateway Outbound.
Valid values: See Description
Required?: No
Default value: None
Developing web services and SOA with Enterprise Service Tools 447
Table 118. Attribute Specifications for CorrelatorSpec (continued)
Fields Description
A space-separated list of callout connection bundle names. Callout
Attribute: calloutConnBundleNames
connection bundles contain the connection and security properties
Valid values: See Description
that are used by SOAP Gateway to connect with IMS in the service
Required?: No
requester scenario. Each callout connection bundle name should be
Default value: blank
no longer than 20 characters.
The name of the connection bundle for IMS Enterprise Suite SOAP
Attribute: connectionBundleName
Gateway Inbound.
Valid values: See Description
Required?: No
Default value: None
The number of milliseconds for which the IMS Enterprise Suite SOAP
Attribute: calloutWSTimeout
Gateway should wait for a response from the target Web service.
Valid values: See Description
Valid range: Positive integer (in milliseconds).
Required?: No
Default value: 5000
Specifies the time that the IMS Connect waits for a response from
Attribute: executionTimeout
IMS. Valid range: 0-3600000 (in milliseconds).
Valid values: See Description
Required?: No
Default value: 5000
The LTERM name used to override the value in the LTERM field of the
Attribute: ltermName
IMS application program's I/O PCB.
Valid values: See Description
Required?: No
Default value: None
448 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 118. Attribute Specifications for CorrelatorSpec (continued)
Fields Description
Specifies whether to overwrite the output file if it exists.
Attribute: overwrite
Valid values: true | false
Required?: No
Default value: true
Specifies the time that the IMS Enterprise Suite SOAP Gateway
Attribute: socketTimeout
runtime waits for a response from IMS Connect. Valid range: Positive
Valid values: See Description
integer (in milliseconds).
Required?: No
Default value: 0
Attribute: trancode Service Provider: IMS transaction which is providing the Web service.
Valid values: See Description Service Requester: IMS transaction which handles the response from
Required?: No the target Web service.
Default value: None
Attribute: WSSecurity The security token type to use for web services security for the
Valid values: provider scenario.
blank
SAML11Token
SAML20Token
SAML11SignedTokenTrustAny
SAML11SignedTokenTrustOne
SAML20SignedTokenTrustAny
SAML20SignedTokenTrustOne
UserNameToken
Required?: No
Default value: blank
Example
DriverSpec
Use this element of the ServiceSpecification.xml document to specify the generation options for the
converter driver program
Note: In the top-down scenario the DriverSpec specifies the file that contains the entire conversion
package (driver, converters, and utility programs).
Contained by
“XseSpec” on page 511
Developing web services and SOA with Enterprise Service Tools 449
Contains
None
Attributes
This table shows the attributes for DriverSpec.
450 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 119. Attribute Specifications for DriverSpec (continued)
Fields Description
Specifies the prefix used to form the names of the generated
Attribute: fileNamePrefix
conversion source packages. A conversion source package is a single
Valid values: See Description.
COBOL or PL/I source file that contains the generated conversion
Required?: No
programs for converting from XML data to language data and from
Default value: See Description.
language data to the XML data. For Web services scenarios these
packages may contain SOAP header and SOAP fault conversion code
and other utility programs (if supported by a specific scenario).
The default value is the name of the input WSDL file up to 6
characters, excluding the file extension.
Note:
• If the name of the input WSDL file is longer than 6 characters, then
the first 6 characters are used to form the default name.
• To avoid name collisions for multiple conversion source packages,
successive package names are formed by appending a hexadecimal
ordinal to the value of fileNamePrefix, up to 7 characters, to
distinguish it from previously generated packages.1. If the number
of possible distinct package names is exhausted then the batch
processor terminates with error CRRZX0130E.
• This attribute is supported only if the driver type is IMS_SOAP. For
all other driver types the value of this attribute is ignored.
Developing web services and SOA with Enterprise Service Tools 451
Example
The following sample code illustrates a DriverSpec element.
EISProject
Use this top-level element of the ServiceSpecification.xml document to provide information about the
Web service.
Contained by
None
Contains
“CodegenPropertyArray” on page 433
“EISService” on page 453
“ImportPropertyArray” on page 438
“EISServiceImplementation” on page 455
Attributes
Fields Description
Specifies the name of the project that contains the generated files. If
Attribute: name
the project does not exist, it will be created automatically.
Valid values: See Description
Required?: No
Default value: EISProject
Examples
Figure 67 on page 452 areFigure 68 on page 453 examples of the EISProject element.
<EISProject name="CICSSample">
<!-- Use the ImportPropertyArray to override values from PlatformProperties.xml -->
<ImportPropertyArray type="Cobol">
<ImportProperty name="com.ibm.etools.cobol.COBOL_TRUNC" value="BIN" />
<ImportProperty name="com.ibm.etools.cobol.COBOL_NSYMBOL" value="DBCS" />
<ImportProperty name="com.ibm.etools.cobol.COBOL_QUOTE" value="DOUBLE" />
</ImportPropertyArray>
<CodegenPropertyArray type="Cobol">
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_PROG_NAME" value="XCNV"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_AUTH_NAME" value="WSED"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_IN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_OUT_CP_LIST" value="1140"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_DEC_COMMA" value=" false"/>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_FLAT_GEN" value=" false"/>
</CodegenPropertyArray>
<EISService name="CustomerInfo" type="CICS" targetNameSpace="http://cics.sample"
generateConverters="true"
generateSeparateXSD="false"
generateWSDL="true"
portType="myPortType" >
</EISService>
</EISProject>
452 Developer for z/OS: Developing with Db2, CICS, and IMS
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSTopDownSample">
</EISProject>
EISService
Use this element of the ServiceSpecification.xml document to provide information about the Web service
and as a container for the required Operation containers and, optionally, for the ConnectionPropertyArray
and the ServicePropertyArray.
If this service contains multiple Operations and it is implemented by the CICS Web Services runtime
environment, you can specify an optional WSBindSpec element. In that element, you can specify
properties of the WSBind file representing multi-operation service. The WSBindSpec options provided on
multiple Operations takes precedence over any WSBindSpec options that might be specified on individual
Operations. That is, any WSBindSpec on individual Operations in multi-operation service is ignored.
Note: If you do not specify a WSBindSpec for the EISService with multiple operations, the default values
for multiple Operations are used (see“WSBindSpec” on page 483 description for more information on the
default WSBindSpec values for multiple Operations).
The following is a sample of specifying multiple operations:
<EISProject name="BankPrj">
<EISService name="Bank">
.....
<Operation name="DepositFundsOperation">
....
</Operation>
<Operation name="WithdrawFundsOperation">
....
</Operation>
</EISService>
</EISProject>
Developing web services and SOA with Enterprise Service Tools 453
• Program interface for the business program implementing multiple operations in CICS must be via
CHANNEL (COMMAREA interfaces are not supported).
• Business program name must be specified in the WSBindSpec element of the EISService container.
Business program names of the DriverSpec elements in the individual operations are ignored.
• Relying on default program names and file names may lead to unpredictable results when the different
parameters come up identical values. For example service name with the name of "Bank" may lead to a
default business program name of BANKSER. If you also specify the router name as BANKSER, you may
have errors when building or using these programs.
Contained by
“EISProject” on page 452
Contains
“ConnectionPropertyArray” on page 434
“Operation” on page 469
“ServicePropertyArray” on page 481
“RouterSpec” on page 476
“WSBindSpec” on page 483
Attributes
Table 120 on page 454 shows the attributes for EISService.
Specifies the URI of the location where the output files will be
Attribute: targetFilesURI
generated, relative to the top level project.
Valid values: See Description
Required?: - The default value is: Value of targetNamespace, if specified.
Default value: See Description Otherwise it is set to file: //target.files
454 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 120. Attribute Specifications for EISService (continued)
Fields Description
Specifies the URL of the target namespace.
Attribute: targetNamespace
Valid values: See Description
Required?: -
Default value: svcNS
Example
Figure 69 on page 455 is an example of the EISService element.
<EISProject name="CICSSample">
<EISService name="CustomerInfo" type="CICS" targetNamespace="http://cics.sample"
targetFilesURI="file://my.files"
generateConverters="true"
generateSeparateXSD="false"
generateWSDL="true" >
</EISService>
</EISProject>
EISServiceImplementation
Use this element of the ServiceSpecification.xml document to implement a service provider or
service requester from a web service description (WSDL) file. Also use as a container for the
required ServiceImplementationSpec container and, optionally, for the ConnectionPropertyArray and the
ServicePropertyArray.
Contained by
“EISProject” on page 452
Contains
“ConnectionPropertyArray” on page 434
“ServicePropertyArray” on page 481
“ServiceImplementationSpec” on page 478
Attributes
Table 121 on page 456 shows the attributes for EISServiceImplementation.
Developing web services and SOA with Enterprise Service Tools 455
Table 121. Attribute Specifications for EISServiceImplementation
Fields Description
Specifies the subsystem (such as CICS, IMS, TSO) for which the
Attribute: runtime
artifacts are generated:
Valid values: WEB_SERVICES_CICS
| IMS_SOAP_GATEWAY | • WEB_SERVICES_CICS: The artifacts are deployable to a CICS TS
XML_TRANSFORM_CICS 3.1+ Web services runtime environment.
Required?: - • IMS_SOAP_GATEWAY: The artifacts are deployable into IMS
Default value: WEB_SERVICES_CICS Enterprise Suite SOAP Gateway and IMS Connect.
• XML_TRANSFORM_CICS: The artifacts are deployable to a CICS TS
CICS XML TRANSFORM runtime environment.
Example
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSTopDownSample">
</EISProject>
ElementSelection
Use this element, in a top-down scenario, to select an element from those defined in the XSD file or in the
types section of the WSDL file.
Contained by
“ElementSelectionArray” on page 457
Contains
None
456 Developer for z/OS: Developing with Db2, CICS, and IMS
Attributes
Fields Description
Selects an element to implement from the XSD file or from the types
Attribute: name
section of the WSDL file in a top-down scenario. Specified element
Valid values: elementName
must exist in the XSD or the WSDL file. If the specified element is not
Required?: No
found, an error message is generated.
Default value: None
Example
<ElementSelectionArray>
<ElementSelection name="balance"/>
<ElementSelection name="interestRate"/>
</ElementSelectionArray>
ElementSelectionArray
Use this element, in the top-down scenario, as a container for the ELEMENT selection elements which are
enabled for conversion.
Note: If no ElementSelectionArray is specified in a top-down scenario, all global elements in the XSD file
or in the types section of the WDSL file are used for generating the conversion artifacts.
Contained by
“ServiceSpecification.xml” on page 443
Contains
“ElementSelection” on page 456
Attributes
None
Example
<ElementSelectionArray>
<ElementSelection name="balance"/>
<ElementSelection name="interestRate"/>
</ElementSelectionArray>
InputMessage
Use this element to define messages for ONE-WAY operations or REQUEST_RESPONSE
(SOLICIT_RESPONSE) operations if the input and output messages are of different types. Note that for
ONE_WAY operations, you are allowed to specify only the InputMessage. OutputMessage is not allowed
and will cause unpredictable results during the generation process. To compose a message from multiple
data types, specify additional InputMessage elements (this capability is supported only for the IMS
Enterprise Suite SOAP Gateway runtime). The order in which the InputMessage elements are specified in
the ServiceSpecification.xml determines their order in the composite message.
Contained by
“Operation” on page 469
Contains
“ItemSelectionArray” on page 464
“RedefinesArray” on page 475
Developing web services and SOA with Enterprise Service Tools 457
“XMLNamesArray” on page 503
“ItemExclusionArray” on page 462
Attributes
Table 122 on page 458 shows the attributes for InputMessage.
Specifies the absolute path to location and name in the file system of
Attribute: annotationsFile
the synonym action XML file. The synonym action XML file contains
Valid values: See Description
the optional annotation information that can be present in the
Required?: No
source of the service interface data declarations. If this attribute
Default value: See Description
is not specified, the default is taken from the “-annot” parameter
of the xsebatch invocation. For more information see “Using source
annotations to specify service interface” on page 297.
Specifies the absolute path to location and name in the file system of
Attribute: commTypesFile
the common types xml file. The common types xml file describes the
Valid values: See Description
common element and type information that is used in the generated
Required?: No
WSDL and XSD schema to refer to instead of imbedding and
Default value: See Description
potentially duplicating the types. If this attribute is not specified, the
default is taken from the “-commtypes” parameter of the xsebatch
invocation. For more information, see “Commonly Used Elements and
Types” on page 302.
Specifies the directory for the source file.
Attribute: importDirectory
Valid values: See Description The default value is: The input directory
Required?: No
Default value: See Description
Specifies the file name that contains the data definition to be used in
Attribute: importFile
creating the Web service operation message types.
Valid values: See Description
Required?: Yes (unless the -s Note: Only COBOL data definitions are supported and are subject to
command the restrictions that are specified in the online help.
line option is specified)
The default value is: The name provided in the xsebatch command
Default value: See Description
line parameter -s.
458 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 122. Attribute Specifications for InputMessage (continued)
Fields Description
Specifies the name of the data type that is to be imported from the
Attribute: nativeTypeName
importFile, such as DFHCOMMAREA for a CICS COBOL application. An
Valid values: See Description
error message is generated on the console if a parse of the importFile
Required?: No
does not identify the nativeTypeName as a valid data type.
Default value: See Description
The default value is: For COBOL, the name of the first available level
01 data item name.
Example
Figure 70 on page 459 is an example of InputMessage element.
Note: Another example of an Input message is in “Specification of Multiple Response Language
Structures” on page 311.
InputOutputMessage
Use this element to define messages for REQUEST-RESPONSE operations if the input and output
messages are of the same type.
Note: In the InputOutputMessage both request and response message definitions come from a single
COBOL source. Because of this, the XsdSpecOut schema specification for the namespace will be ignored
for theresponse schema.
Contained by
“Operation” on page 469
Developing web services and SOA with Enterprise Service Tools 459
Contains
“ItemSelectionArray” on page 464
“RedefinesArray” on page 475
“XMLNamesArray” on page 503
“ItemExclusionArray” on page 462
Attributes
Table 123 on page 460 shows the attributes for InputOutputMessage.
Specifies the name of the data type that is to be imported from the
Attribute: nativeTypeName
importFile, such as DFHCOMMAREA for a CICS COBOL application. An
Valid values: See Description
error message is generated on the console if a parse of the importFile
Required?: No
does not identify the nativeTypeName as a valid data type.
Default value: See Description
The default value is: For COBOL, the name of the first available level
01 data item name.
Example
ItemExclude
Use this element to prevent individual data items in the COBOL structure from becoming elements in the
XML message.
460 Developer for z/OS: Developing with Db2, CICS, and IMS
• You must specify the data item name as fully qualified by dot-separated parent group names if it
is required to resolve name collisions within the language structure. Otherwise, qualification is not
required. For example, in the following language structure, qualification is required for both elementary
items named "CODE":
01 INPUT-MSG.
02 COUNTRY.
03 CODE pic 999.
02 ACTION.
03 CODE pic 9.
Contained by
“ItemExclusionArray” on page 462
Contains
None
Attributes
Fields Description
Specifies the name of the data item to be selected.
Attribute: itemName
Valid values: See Description
Required?: Yes
Default value: None
Example
For the following COBOL language structure
01 INPUT-MSG.
02 IN-LL PICTURE S9(3) COMP.
02 IN-ZZ PICTURE S9(3) COMP.
02 IN-TRCD PICTURE X(10).
02 IN-CMD PICTURE X(8).
02 IN-NAME PICTURE X(10).
02 IN-EXTN PICTURE X(10).
you can use the following settings to prevent IN-LL, IN-ZZ and IN-EXTN data items from becoming
elements in the generated XML message:
<ItemExclusionArray>
<ItemExclude itemName="IN-LL"/>
<ItemExclude itemName="IN-ZZ"/>
<ItemExclude itemName="IN-EXTN"/>
</ItemInclusionArray>
Developing web services and SOA with Enterprise Service Tools 461
ItemExclusionArray
Use this element as the container for preventing individual data items in the COBOL structure from
becoming elements in the XML message.
Contained by
“InputMessage” on page 457
“InputOutputMessage” on page 459
“OutputMessage” on page 473
Contains
“ItemExclude” on page 460
Attributes
None
Example
For the following COBOL language structure
1 CBL-STRUCT-AAA.
2 CBL-STRUCT-BBB.
3 CBL-FLD-CCC PIC X(10).
3 CBL-FLD-DDD PIC X(2).
3 CBL-FLD-EEE PIC 9.
you can use the following settings to prevent the last two data items from becoming elements in the
generated XML message:
<ItemExclusionArray>
<ItemExclude itemName="CBL-FLD-DDD"/>
<ItemExclude itemName="CBL-FLD-EEE"/>
</ItemInclusionArray>
ItemSelection
Use this element to select individual data item in the COBOL structure.
462 Developer for z/OS: Developing with Db2, CICS, and IMS
• When an ODO (variable size repeating) item is selected, its ODO object (count variable) must also be
selected. Otherwise the results produced by the generated artifacts are undefined
• ItemSelection elements can appear in any order within ItemSelectionArray
• The value of the ItemSelection attribute must specify the data item name prefixed by dot-separated
parent group names.
• The values of the ItemSelection attributes are not case-sensitive. For example, specifying
itemName="FoO.bAr" is equivalent to specifying itemName="fOo.BaR"
• If none of the selected items appear in the language structure, the results produced by the generated
artifacts are undefined.
Contained by
“ItemSelectionArray” on page 464
Contains
None
Attributes
Fields Description
Specifies the name of the data item to be selected.
Attribute: itemName
Valid values: See Description
Required?: Yes
Default value: None
Specifies whether the XML schema element generated from this item
Attribute: optional
is optional. If set to "yes", the corresponding XML schema element
Valid values: yes | no
will have a minOccurs facet generated and set to 0. If this attribute is
Required?: No
not specified, minOccurs facet is not generated.
Default value: None
The value of the attribute must specify the item name qualified by a dot-separated parent names as
shown in the example.
Example
For the following COBOL language structure
01 INPUT-MSG.
02 IN-LL PICTURE S9(3) COMP.
02 IN-ZZ PICTURE S9(3) COMP.
02 IN-TRCD PICTURE X(10).
02 IN-CMD PICTURE X(8).
02 IN-NAME1 PICTURE X(10).
02 redParent.
03 redefd.
04 IN-NAME2 PICTURE X(10).
03 redefd2 redefines redefd.
04 IN-NAME2R PICTURE X(10).
02 IN-EXTN PICTURE X(10).
02 IN-EXTNR redefines in-extn PICTURE X(10).
02 IN-ZIP PICTURE X(7).
<ItemSelectionArray>
<ItemSelection itemName="input-msg.redParent"/>
<ItemSelection itemName="input-msg.in-extn"/>
<ItemSelection itemName="input-msg.in-zip"/>
Developing web services and SOA with Enterprise Service Tools 463
<ItemSelection itemName="input-msg.in-ll" optional="yes"/>
</ItemSelectionArray>
Note: To specify redefd2 redefinition in the redParent group, you need to specify the following
RedefinesArray:
Otherwise, redefd items are selected by default.
<RedefinesArray>
<RedefineSelection redefine="input-msg.redParent.redefd"
useRedefinition="input-msg.redParent.redefd2"/>
</RedefinesArray>
ItemSelectionArray
Use this element as the container for individual data item selections in the COBOL structure.
If the this element is not specified the default element selection rules apply as follows:
• If nativeTypeName of the message specification is not given, the first available LEVEL 01 structure and
all its children are automatically selected according to any rules specified in the “RedefineSelection” on
page 476 section and “ItemSelection” on page 462 section.
• If nativeTypeName of the message specification is given, it is assumed to be a LEVEL 01 structure and
all its children are automatically selected according to any rules specified in the “RedefineSelection” on
page 476 section and “ItemSelection” on page 462 section.
• If the RedefineSelectionArray is given, the items from that array will override the default REDEFINES
behavior (See “RedefineSelection” on page 476 and “ItemSelection” on page 462 section for more
information)
Contained by
“InputMessage” on page 457
“InputOutputMessage” on page 459
“OutputMessage” on page 473
Contains
“ItemSelection” on page 462
Attributes
None
Example
<ItemSelectionArray>
<ItemSelection itemName="input-msg.redParent"/>
<ItemSelection itemName="input-msg.in-extn"/>
<ItemSelection itemName="input-msg.in-zip"/>
<ItemSelection itemName="input-msg.in-ll"/>
</ItemSelectionArray>
LanguageStructureSpec
Use this element to specify properties of the language structures generated from the XML schema or
types section in the Web service description (WSDL) file.
These data structures can be used in an application that utilizes XML transformation; for example, CICS
4.1 XMLTRANSFORM resource.
464 Developer for z/OS: Developing with Db2, CICS, and IMS
Note: LanguageStructureSpec CANNOT be specified with:
• “LanguageStructureSpecIn” on page 465
• “LanguageStructureSpecOut” on page 466
Contained by
“ServiceImplementationSpec” on page 478
Contains
None
Attributes
Fields Description
A 7 character filename for the generated language structures.
Attribute: fileNamePrefix
Valid values: See Description The default value is: First 6 characters of the input XSD or WSDL file
Required?: No name + 'X'
Default value: See Description
Example
Figure 71 on page 465 is an example of the LanguageStructureSpecIn element.
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICS2XMLSample">
LanguageStructureSpecIn
Use this element of the ServiceSpecification.xml document to specify properties of the language
structures generated from the input messages in the Web service description (WSDL) file.
Contained by
“ServiceImplementationSpec” on page 478
Contains
None
Developing web services and SOA with Enterprise Service Tools 465
Attributes
Fields Description
A 6 character filename prefix for the generated language structures
Attribute: fileNamePrefix
representing request messages in the web service description. The
Valid values: See Description
remaining two characters are reserved for suffixing the generated
Required?: No
files with an ordinal based on the number of operations in the web
Default value: See Description
service description.
The default value is: First 5 characters of the input WSDL file name +
'I'
Example
Figure 72 on page 466 is an example of LanguageStructureSpecIn element.
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSTopDownSample">
</EISProject>
LanguageStructureSpecOut
Use this element of the ServiceSpecification.xml document to specify properties of the language
structures generated from the output messages in the Web service description (WSDL) file.
Contained by
“ServiceImplementationSpec” on page 478
Contains
None
Attributes
Fields Description
A 6 character filename prefix for the generated language structures
Attribute: fileNamePrefix
representing request messages in the web service description. The
Valid values: See Description
remaining two characters are reserved for suffixing the generated
Required?: No
files with an ordinal based on the number of operations in the web
Default value: See Description
service description.
The default value is: First 5 characters of the input WSDL file name +
'O'
466 Developer for z/OS: Developing with Db2, CICS, and IMS
Fields Description
Specifies whether to overwrite the output file(s) if it exists.
Attribute: overwrite
Valid values: true | false
Required?: No
Default value: true
Example
Figure 73 on page 467 is an example of LanguageStructureSpecOut element.
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSTopDownSample">
</EISProject>
MessageSpec
Use this element to specify data structures for conversion by the XML transformation.
The XML transformation is supported in CICS Transaction Server 4.1 and later. MessageSpec elements
apply to:
• conversion from XML documents to data structures
• conversion from data structures to XML documents
Note: MessageSpec CANNOT be used with:
• “InputMessage” on page 457
• “OutputMessage” on page 473
• “InputOutputMessage” on page 459 (Deprecated)
The “InputOutputMessage” on page 459 element is being deprecated and should not be used. Instead
use the “InputMessage” on page 457 and “OutputMessage” on page 473 elements and specify identical
parameters.
Contained by
“Operation” on page 469
Contains
“ItemSelectionArray” on page 464
“RedefinesArray” on page 475
“XMLNamesArray” on page 503
Developing web services and SOA with Enterprise Service Tools 467
Attributes
Table 124 on page 468 shows the attributes for MessageSpec.
Specifies the absolute path to location and name in the file system of
Attribute: annotationsFile
the synonym action XML file. The synonym action XML file contains
Valid values: See Description
the optional annotation information that can be present in the source
Required?: No
of the data declarations. If this attribute is not specified, the default
Default value: See Description
is taken from the "-annot" parameter of the xsebatch invocation. For
more information, see “Using source annotations to specify service
interface” on page 297.
Specifies the absolute path to location and name in the file system of
Attribute: commTypesFile
the common types xml file. The common types xml file describes the
Valid values: See Description
common element and type information that is used in the generated
Required?: No
XSD schema to refer to instead of imbedding and potentially
Default value: See Description
duplicating the types. If this attribute is not specified, the default is
taken from the "-commtypes" parameter of the xsebatch invocation.
For more information, see “Commonly Used Elements and Types” on
page 302.
Specifies the directory for the source file.
Attribute: importDirectory
Valid values: See Description The default value is: The input directory
Required?: No
Default value: See Description
Specifies the file name that contains the language data definitions to
Attribute: importFile
be used in creating the XML data types.
Valid values: See Description
Required?: Yes (unless the -s Note: Only COBOL data definitions are supported and are subject to
command the restrictions that are specified in the online help.
line option is specified)
The default value is: The name provided in the xsebatch command
Default value: See Description
line parameter -s.
Specifies the name of the data type that is to be imported from the
Attribute: nativeTypeName
importFile, such as DFHCOMMAREA for a CICS COBOL application. An
Valid values: See Description
error message is generated on the console if a parse of the importFile
Required?: No
does not identify the nativeTypeName as a valid data type.
Default value: See Description
The default value is: For COBOL, the name of the first available level
01 data item name.
Example
Figure 74 on page 469 is an example of the MessageSpec element.
468 Developer for z/OS: Developing with Db2, CICS, and IMS
<MessageSpec name="convertThis" importDirectory="." importFile="sample.cbl"
nativeTypeName="input-struc">
<RedefinesArray>
<RedefineSelection redefine="input-msg.redParent.redefd"
useRedefinition="input-msg.redParent.redefd2"/>
</RedefinesArray>
<ItemSelectionArray>
<ItemSelection itemName="input-msg.redParent"/>
<ItemSelection itemName="input-msg.in-extn"/>
<ItemSelection itemName="input-msg.in-zip"/>
<ItemSelection itemName="input-msg.in-ll"/>
</ItemSelectionArray>
</MessageSpec>
Operation
Use this element to specify the type of operation and as the container for operation properties. Note that
only one operation is allowed per service. Specifying more than one operation may cause an invalid WSDL
to be generated.
Contained by
“EISService” on page 453
Contains
“OperationPropertyArray” on page 472
“InputOutputMessage” on page 459 (Deprecated)
“InputMessage” on page 457
“MessageSpec” on page 467
“OutputMessage” on page 473
“XseSpec” on page 511
Note: Operation can contain a “MessageSpec” on page 467 element. If Operation contains a
“MessageSpec” on page 467 element, then Operation CANNOT contain:
• “InputMessage” on page 457
• “OutputMessage” on page 473
• “InputOutputMessage” on page 459 (Deprecated)
If this restriction is not followed, the results of the generation are unpredictable.
The “InputOutputMessage” on page 459 element is being deprecated and should not be used. Instead
use the “InputMessage” on page 457 and “OutputMessage” on page 473 elements and specify identical
parameters.
Attributes
Fields Description
Specifies the name of the operation in the WSDL file.
Attribute: name
Valid values: See Description The default value is: The name attribute for the EISService element
Required?: No concatenated with "Operation"
Default value: See Description
Note: For Web Services that use the CICS Bottom up interpretive
case, the default operation name is CICS program name+"Operation".
Developing web services and SOA with Enterprise Service Tools 469
Fields Description
Specifies whether to generate the converter set (request, response,
Attribute: type
converters, and driver). See Note.
Valid values: REQUEST_RESPONSE |
SOLICIT_RESPONSE | ONE_WAY |
NOTIFICATION
Required?: No
Default value: REQUEST_RESPONSE
Note:
REQUEST_RESPONSE and SOLICIT_RESPONSE operations cause the generation of:
1. a request converter, a response converter, a driver (if the generateConverters option is in effect),
AND
2. a request and response schema (if the generateSeparateXSD option is in effect).
A NOTIFICATION operation causes the generation of:
1. a response converter, a driver (if the generateConverters option is in effect),
AND
2. a response schema (if the generateSeparateXSD option is in effect).
A ONE_WAY operation causes the generation of:
1. a request converter, a driver (if the generateConverters option is in effect),
AND
2. a request schema (if the generateSeparateXSD option is in effect).
Example
Figure 75 on page 471 is an example of Operation element.
470 Developer for z/OS: Developing with Db2, CICS, and IMS
<Operation name="getCustomerInfo" type="REQUEST_RESPONSE">
<OperationPropertyArray>
<OperationProperty name="soapOpStyle" value="document" />
<OperationProperty name="soapBindingStyle" value="document" />
<OperationProperty name="soapBodyUse" value="literal" />
</OperationPropertyArray>
<InputOutputMessage name="CustomerDetails" importDirectory="." importFile="DFH0ACTD.cbl"
nativeTypeName="DFHCOMMAREA">
<RedefinesArray>
<RedefineSelection redefine="name.info" useRedefinition="name.last-name"/>
<RedefineSelection redefine="address.zip-code" useRedefinition="province"/>
</RedefinesArray>
</InputOutputMessage>
<XseSpec>
<DriverSpec fileName=""DFH0CSTDD.cbl" driverType="IMS SOAP Gateway"
programName="XCNVD" businessPgmName="Ex01" />
<ConverterSpecIn fileName="DFH0CSTDI.cbl" overwrite="true"
programName="XCNVI"/>
<ConverterSpecOut fileName="DFH0CSTDO.cbl" overwrite="true"
programName="XCNVO"/>
<XsdSpecIn fileName="DFH0CSTDI.xsd overwrite="true"
targetNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
xsdNamespace="http://www.w3.org/2001/XMLSchema"
localNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
xsdPrefix="cbl"
xsdElemName="dfhcommarea"/>
<XsdSpecOut fileName="DFH0CSTDO.xsd" overwrite="true"
targetNamespace="http://www.DFH0CSTDO.com/schemas/DFH0CSTDOInterface"
xsdNamespace="http://www.w3.org/2001/XMLSchema"
localNamespace="http://www.DFH0CSTDO.com/schemas/DFH0CSTDOInterface"
xsdPrefix="cbl"
xsdElemName="dfhcommarea"/>
</XseSpec>
</Operation>
OperationProperty
Use this element to specify the properties for an operation.
Contained by
“OperationPropertyArray” on page 472
Contains
None
Attributes
Fields Description
Specifies the URI for the optional SOAP action.
Attribute: soapAction
Valid values: URI
Required?: No
Default value: None
Developing web services and SOA with Enterprise Service Tools 471
Fields Description
Specifies the SOAP operation style. The value must match the
Attribute: soapOpStyle
soapBindingStyle in ServiceSpecification.xml.
Valid values: document | rpc
Required?: No
Default value: document
Note: If you are generating artifacts for IMS Enterprise Suite SOAP Gateway you must specify soapAction
property, for example "urn:IMSPHBK". It should match the soapAction value in the CorrelatorSpec
property. If you don't specify this property or if it does not match the CorrelatorSpec, it will cause a
runtime error.
Example
<OperationPropertyArray>
<OperationProperty name="soapOpStyle" value="document" />
<OperationProperty name="soapBodyUse" value="literal" />
<OperationProperty name="soapAction" value="urn:myaction" />
</OperationPropertyArray>
OperationPropertyArray
Use this element as the container for operation properties.
Contained by
“Operation” on page 469
Contains
“OperationProperty” on page 471
Attributes
None
Example
<OperationPropertyArray>
<OperationProperty name="soapOpStyle" value="document" />
<OperationProperty name="soapBindingStyle" value="document" />
<OperationProperty name="soapBodyUse" value="literal" />
</OperationPropertyArray>
OperationSelection
Use this element to select an operation from those defined in the WSDL file.
Contained by
“OperationSelectionArray” on page 473
Contains
None
472 Developer for z/OS: Developing with Db2, CICS, and IMS
Attributes
Fields Description
Selects an operation to implement from the binding selected in
Attribute: name
the ServicePropertyArray. Specified operation(s) must exist in the
Valid values: operationName
services specified in the Service property array. If the specified
Required?: No
operations are not found, an error message is generated.
Default value: None
Example
<OperationSelectionArray>
<OperationSelection operationName="getBalance"/>
<OperationSelection operationName="getInterestRate"/>
</OperationSelectionArray>
OperationSelectionArray
Use this element as a container for the operation selection elements.
Contained by
“ServiceSpecification.xml” on page 443
Contains
“OperationSelection” on page 472
Attributes
None
Example
<OperationSelectionArray>
<OperationSelection operationName="getBalance"/>
<OperationSelection operationName="getInterestRate"/>
</OperationSelectionArray>
OutputMessage
Use this element to define messages for NOTIFICATION operations or REQUEST_RESPONSE
(SOLICIT_RESPONSE) operations if the input and output messages are of different types. Note that for
NOTIFICATION operations, you are allowed to specify only the OutputMessage. InputMessage is not
allowed and will cause unpredictable results during the generation process. To compose a message from
multiple data types, specify additional OutputMessage elements (this capability is only supported for
the IMS Enterprise Suite SOAP Gateway runtime). The order in which the OutputMessage elements are
specified in Operation element determines their order in the composite message.
Contained by
“Operation” on page 469
Contains
“ItemSelectionArray” on page 464
“RedefinesArray” on page 475
“XMLNamesArray” on page 503
“ItemExclusionArray” on page 462
Developing web services and SOA with Enterprise Service Tools 473
Attributes
Table 125 on page 474 shows the attributes for OuputMessage.
Specifies the absolute path to location and name in the file system of
Attribute: annotationsFile
the synonym action XML file. The synonym action XML file contains
Valid values: See Description
the optional annotation information that can be present in the
Required?: No
source of the service interface data declarations. If this attribute
Default value: See Description
is not specified, the default is taken from the “-annot” parameter
of the xsebatch invocation. For more information see “Using source
annotations to specify service interface” on page 297.
Specifies the absolute path to location and name in the file system of
Attribute: commTypesFile
the common types xml file. The common types xml file describes the
Valid values: See Description
common element and type information that is used in the generated
Required?: No
WSDL and XSD schema to refer to instead of imbedding and
Default value: See Description
potentially duplicating the types. If this attribute is not specified, the
default is taken from the “-commtypes” parameter of the xsebatch
invocation. For more information see “Commonly Used Elements and
Types” on page 302.
Specifies the directory for the source file.
Attribute: importDirectory
Valid values: See Description The default value is: The input directory
Required?: No
Default value: The input directory
Specifies the file name that contains the data definition to be used in
Attribute: importFile
creating the Web service operation message types.
Valid values: See Description
Required?: Yes (unless the -s Note: Only COBOL data definitions are supported and are subject to
command the restrictions that are specified in the online help.
line option is specified)
The default value is: The name provided in the xsebatch command-
Default value: See Description
line parameter -s.
Specifies the name of the data type that is to be imported from the
Attribute: nativeTypeName
importFile, such as DFHCOMMAREA for a CICS COBOL application. An
Valid values: See Description
error message is generated on the console if a parse of the importFile
Required?: No
does not identify the nativeTypeName as a valid data type.
Default value: See Description
The default value is: For COBOL, the name of the first available level
01 data item name.
474 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 125. Attribute Specifications for OutputMessage (continued)
Fields Description
Corresponds to the minOccurs attribute value of the xsd:element
Attribute: upperBound
that is assigned the complexType derived from the data type
Valid values: 1 to n, -1 (infinite)
specified in the following attributes: importDirectory, importFile, and
Required?: No
nativeTypeName
Default value: 1
Note: This attribute is ignored unless two or more InputMessages are
specified.
Example
Figure 76 on page 475 is an example of OutputMessage element.
Note: Another example of an OutputMessage element is in “Specification of Multiple Response Language
Structures” on page 311.
RedefinesArray
Use this element as the container for REDEFINE item selections for COBOL.
Note: The default behavior for redefinitions when there are REDEFINES in the data but the
RedefinesArray element is omitted is to use the original definition of the items.
Contained by
“InputMessage” on page 457
“InputOutputMessage” on page 459
“OutputMessage” on page 473
Contains
RedefineSelection
Attributes
None
Developing web services and SOA with Enterprise Service Tools 475
Example
<RedefinesArray>
<RedefineSelection redefine="name.info" useRedefinition="name.last-name"/>
<RedefineSelection redefine="address.zip-code" useRedefinition="province"/>
</RedefinesArray>
RedefineSelection
Use this element to select redefinitions for an item.
Contained by
“RedefinesArray” on page 475
Contains
None
Attributes
If necessary for uniqueness, qualify the data item names using the period-separated notation. For
example, use name info from the following language structure.
1 name.
2 info pic x(100).
2 last-name redefines info pic x(100).
Fields Description
Specifies the name of the data item to be redefined.
Attribute: redefine
Valid values: See Description Note: Redefinitions of redefined items are not supported.
Required?: Yes
Default value: None
Example
<RedefinesArray>
<RedefineSelection redefine="name.info" useRedefinition="name.last-name"/>
<RedefineSelection redefine="address.zip-code" useRedefinition="province"/>
</RedefinesArray>
RouterSpec
Use this element to specify attributes and properties of the router program to route multiple operation
requests for a single end point. This element will be used to name the source file and the program name
for the router program. This element can be specified for multiple operations or for single operations.
If the RouterSpec element is not specified for multiple operations, the default values are derived from
the name element of the EISService element as shown in “XML Schema element for EISService with
RouterSpec and WSBindSpec elements” on page 477. If it is not specified for single operations, no router
program is generated.
Contained by
“EISService” on page 453
476 Developer for z/OS: Developing with Db2, CICS, and IMS
XML Schema element for EISService with RouterSpec and WSBindSpec elements
Figure 77 on page 477 is and example of an XML Schema element for EISService with RouterSpec and
WSBindSpec elements.
<xsd:element name="EISService">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="ServicePropertyArray"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="ConnectionPropertyArray"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="Operation"/>
<xsd:element maxOccurs="1" minOccurs="0" ref="WSBindSpec"/>
<xsd:element minOccurs="0" ref="RouterSpec"/>
</xsd:sequence>
<xsd:attribute name="generateConverters" type="xsd:boolean" use="optional"/>
<xsd:attribute name="generateSeparateXSD" type="xsd:boolean" use="optional"/>
<xsd:attribute name="generateWSDL" type="xsd:boolean" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
<xsd:attribute name="targetNamespace" type="xsd:string" use="optional"/>
<xsd:attribute name="type" type="xsd:string" use="optional"/>
<xsd:attribute name="targetFilesURI" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
Figure 77. XML Schema Element for EISService with RouterSpec and WSBindSpec Elements
Attributes
Fields Description
Specifies the name of the output file.
Attribute: fileName
Valid values: See Description The default value is: The Service name in the generated WSDL File
Required?: No truncated to 8 characters and concatenated with .CBL file extension.
Default value: See Description
Specifies the program name of the main program entry of the Router.
Attribute: programName
Any program name longer than 8 characters will be truncated to 8
Valid values: See Description
characters.
Required?: No
Default value: See Description The default value is: The Service name in the generated WSDL File
truncated to 7 characters and suffixed with letter "T".
Example
<CodegenPropertyArray type="Cobol">
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_PROG_NAME"
value="CWSA"/>
Developing web services and SOA with Enterprise Service Tools 477
<CodegenProperty name=
"com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
value="interpretive"/>
</CodegenPropertyArray>
ServiceImplementationSpec
Use this element of the ServiceSpecification.xml document to provide information about the service
implementation or, in the case of XML transformations, about the transformation artifacts.
This element must contain one and only one of the following elements:
• WSBindSpec:
Use this element to generate a set of artifacts for a top-down development scenario for Web Services
for CICS.
• XSDBindSpec:
Use this element to generate a set of artifacts for use in an XML transformation, such as a CICS 4.1
XMLTRANSFORM resource.
– Only the “LanguageStructureSpec” on page 464 can be specified in the
“ServiceImplementationSpec” on page 478.
– If any of the following elements are also specified they are ignored:
- “ApplicationTemplateSpec” on page 444
- “LanguageStructureSpecIn” on page 465
- “LanguageStructureSpecOut” on page 466
• WSDL2ELSSpec:
Use this element to generate a set of artifacts for IMS and other non-CICS top-down scenarios (see
WSD2ELSSpec).
– ServiceImplementationSpec can also include the following elements:
- DriverSpec
- CorrelatorSpec
Contained by
“EISServiceImplementation” on page 455
Contains
“ApplicationTemplateSpec” on page 444
“LanguageStructureSpec” on page 464
“LanguageStructureSpecIn” on page 465
“LanguageStructureSpecOut” on page 466
“WSBindSpec” on page 4831
“XSDBindSpec” on page 4962
“WSDL2ELSSpec” on page 4923
“DriverSpec” on page 4493
“CorrelatorSpec” on page 447 3
1See the description of WSBindSpec earlier in this topic.
2See the description of XSDBindSpec earlier in this topic.
3See the description of WSDL2ELSSpec earlier in this topic.
478 Developer for z/OS: Developing with Db2, CICS, and IMS
Attributes
Fields Description
Specifies the directory for the source file. The path can be either
Attribute: importDirectory
relative to ServiceSpecification.xml or absolute.
Valid values: See Description
Required?: No
Default value: The input directory
Specifies the WSDL Port name for which to generate service artifacts.
Attribute: wsdlPortName
The Port name must exist in the WSDL otherwise an error message is
Valid values: See Description
displayed.
Required?: Yes
Default value: None
Examples
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSTopDownSample">
</EISProject>
Developing web services and SOA with Enterprise Service Tools 479
<EISProject xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSXSDTopDownSample">
</EISProject>
ServiceProperty
Use this element to specify the properties for a service.
Contained by
“ServicePropertyArray” on page 481
Contains
None
Attributes
Fields Description
Specifies the name of the binding element in the WSDL file.
Attribute: bindingName
Valid values: QNAME The default value is: The name attribute for the EISService element
Required?: No (or if it is not specified, the value of -w parameter from the xsebatch
Default value: See Description command line invocation) concatenated with the UPPER-CASED
value of the type attribute of the EISService element.
Specifies the name of the port type element in the WSDL file.
Attribute: portType
Valid values: QNAME The default value is: The name attribute for the EISService element
Required?: No (or if it is not specified, the value of -w parameter from the xsebatch
Default value: See Description command line invocation) concatenated with the UPPER-CASED
value of the type attribute of the EISService element.
480 Developer for z/OS: Developing with Db2, CICS, and IMS
Fields Description
Specifies the value of the name attribute of service element in the
Attribute: serviceName
WSDL file.
Valid values: QNAME
Required?: No The default value is: The name attribute for the EISService element
Default value: See Description (or if it is not specified, the value of -w parameter from the xsebatch
command line invocation) concatenated with the UPPER-CASED
value of the type attribute of the EISService element.
Specifies the value for the transport attribute of the binding element
Attribute: soapTransport
in the WSDL file.
Valid values: URI
Required?: No The default value is: http://schemas.xmlsoap.org/soap/http
Default value: See Description
Example
Figure 80 on page 481 is an example of the ServiceProperty element within the ServicePropertyArray
element..
<ServicePropertyArray>
<ServiceProperty name="bindingName" value="myBinding" />
<ServiceProperty name="bindingType" value="SOAP" />
<ServiceProperty name="soapTransport" value="http://schemas.xmlsoap.org/soap/http" />
<ServiceProperty name="soapBindingStyle" value="document" />
<ServiceProperty name="selectService" value="BankAccountServices" />
</ServicePropertyArray>
ServicePropertyArray
Use this element as a container for the properties for a service.
Contained by
“EISService” on page 453
Contains
“ServiceProperty” on page 480
Attributes
None
Example
Figure 81 on page 482 is an example of the ServicePropertyArray element.
Developing web services and SOA with Enterprise Service Tools 481
<ServicePropertyArray>
<ServiceProperty name="bindingName" value="myBinding" />
<ServiceProperty name="bindingType" value="SOAP" />
<ServiceProperty name="soapTransport" value="http://schemas.xmlsoap.org/soap/http" />
<ServiceProperty name="soapBindingStyle" value="document" />
</ServicePropertyArray>
TypeSelection
Use this element, in a top-down scenario, to select a type from those defined in the XSD file or in the
types section of the WSDL file.
Contained by
“TypeSelectionArray” on page 482
Contains
None
Attributes
Fields Description
Selects a type to implement from the XSD file or from the types
Attribute: name
section of the WSDL file in a top-down scenario. Specified type must
Valid values: typeName
exist in the XSD or the WSDL file. If the specified type is not found, an
Required?: No
error message is generated.
Default value: None
Example
<TypeSelectionArray>
<TypeSelection name="balanceType"/>
<TypeSelection name="interestRateType"/>
</TypeSelectionArray>
TypeSelectionArray
Use this element, in the top-down scenario, as a container for the TYPE selection elements which are
enabled for conversion.
Note: If no TypeSelectionArray is specified in a top-down scenario, no types are used for generating the
conversion artifacts.
Contained by
“ServiceImplementationSpec” on page 478
Contains
“TypeSelection” on page 482
Attributes
None
482 Developer for z/OS: Developing with Db2, CICS, and IMS
Example
<TypeSelectionArray>
<TypeSelection name="balanceType"/>
<TypeSelection name="interestRateType"/>
</TypeSelectionArray
WSBindSpec
Use this element of the ServiceSpecification.xml document to specify the generation properties for the
Native or Vendor WSBind file.
The WSBind file is used to install a new Web service under CICS Transaction Server version 3.1 and later.
There are two kinds of WSBind files that may be generated: Native WSBind and Vendor WSBind.
The following shows which generation properties are associated with each WSBind file type and examples
of how to specify them.
Native WSBind (Interpretive XML Conversion):
• Characteristics:
– CICS performs XML conversion using an internal mechanism
– Specify @type="interpretive" on the element PlatformProperties.xml/CodegenPropertyArray/
CodegenProperty/@name="com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
– Specify ServiceSpecification.xml/../WSBindSpec/@businessPgmName="name of CICS program"
• PlatformProperties.xml:
<PlatformArray>
<Platform>
<CodegenPropertyArray>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
value="interpretive"/>
</CodegenPropertyArray>
</Platform>
</PlatformArray>
• ServiceSpecification.xml (bottom-up):
<EISProject
xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSPROGProject">
<EISService name="CICSPROG">
<Operation>
<OutputMessage importFile="CICSPROG.cbl" importDirectory="."
nativeTypeName="DFHCOMMAREA"/>
<InputMessage importFile="CICSPROG.cbl" importDirectory="."
nativeTypeName="DFHCOMMAREA"/>
<XseSpec>
<WSBindSpec fileName="CICSPROG.wsbind"
uri="/cics/services/CICSPROG" logFileName="CICSPROG.log"
businessPgmName="CICSPROG"/>
</XseSpec>
</Operation>
</EISService>
</EISProject>
Developing web services and SOA with Enterprise Service Tools 483
• PlatformProperties.xml:
<PlatformArray>
<Platform>
<CodegenPropertyArray>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
value="compiled"/>
</CodegenPropertyArray>
</Platform>
</PlatformArray>
• ServiceSpecification.xml (bottom-up):
<EISProject
xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSPROGProject">
<EISService name="CICSPROG">
<Operation>
<OutputMessage importFile="CICSPRG.cbl" importDirectory="."
nativeTypeName="DFHCOMMAREA"/>
<InputMessage importFile="CICSPRG.cbl" importDirectory="."
nativeTypeName="DFHCOMMAREA"/>
<XseSpec>
<DriverSpec fileName="CICSPRGD.cbl" driverType="WEB_SERVICES_CICS"
programName="CICSPRG" businessPgmName="CICSPROG"/>
<ConverterSpecIn fileName="CICSPRGD.cbl" programName="BUP001"/>
<ConverterSpecOut fileName="CICSPRGD.cbl" programName="BUP001"/>
<WSBindSpec fileName="CICSPROG.wsbind" uri="/cics/services/CICSPROG"
logFileName="CICSPROG.log"
mappingLevel="VENDOR" minimumRuntimeLevel="VENDOR"/>
</XseSpec>
</Operation>
</EISService>
</EISProject>
Contained by
“XseSpec” on page 511
“ServiceImplementationSpec” on page 478
Contains
None
Attributes
Table 126 on page 484 shows the attributes for WSBindSpec.
484 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Specifies the CCSID that is used at run time to encode data between
Attribute: ccsid
the application program and the Web services binding file. The value
Valid values: See Description
of this parameter overrides the value of the LOCALCCSID system
Required?: No
initialization parameter. The value must be an EBCDIC CCSID that is
Default value: See Description
supported by Java and z/OS conversion services. If you do not specify
this parameter, the application program uses the CCSID specified in
the system initialization parameter, and the Web service binding file is
encoded in US EBCDIC (Cp037).
Specifies how character arrays in the language structure should be
Attribute: charVarying (EISService)
mapped when the mapping level is 1.2 and higher.
Valid values: NO | NULL |
COLLAPSE | BINARY Note: This parameter does not apply to Enterprise and other PL/I
Required?: No language structures.
Default value: NULL or COLLAPSE
The options you can select are:
(See Description)
• NO - Character arrays are mapped to an xsd:string and are
processed as fixed length fields. The maximum length of the data is
equal to the length of the array.
• NULL - Character arrays are mapped to an xsd:string and are
processed as null terminated arrays. CICS adds a terminating null
character when transforming from a SOAP message. The maximum
length of the character string is calculated as one character less
than the length indicated in the language structure. This value is the
default for mapping levels 1.2 and 2.0
• COLLAPSE - Generate XML character data description with the
whiteSpace attribute set to "collapse". This value is only available
at mapping levels of 1.2 and higher. This value is the default for
mapping levels 2.1 and higher.
• BINARY- Any character arrays defined in the language structure are
mapped to fixed length xsd:base64Binary fields in the WSDL rather
than to xsd:string fields.
Required elements:
• PlatformProperties.xml/CodegenPropertyArray/CodegenProperty
@name="CONVERSION_TYPE" @value="interpretive"
• ServiceSpecification.xml/EISService
Developing web services and SOA with Enterprise Service Tools 485
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Specifies how variable length character data is mapped when the
Attribute: charVarying
mapping level is 1.2 or higher. Variable length binary data types are
(EISServiceImplementation)
always mapped to either a container or a varying structure. If you
Valid values: NO | NULL | YES
do not specify this parameter, the default mapping depends on the
Required?: No
language specified. The options that you can select are:
Default value: NO
• NO - Variable length character data is mapped as fixed length
strings.
• NULL - Variable length character data is mapped to null terminated
strings.
• YES - Variable length character data is mapped to a CHAR VARYING
data type in PL/I. In the COBOL, C and C++ languages, variable
length character data is mapped to an equivalent representation
that comprises of two related elements - data length and the data.
Required Batch Options:
• PlatformProperties.xml/CodegenPropertyArray/CodegenProperty
@name="CONVERSION_TYPE" @value="interpretive"
• ServiceSpecification.xml/EISService
Attribute: dataTruncation Specifies how truncated data is treated by the CICS native conversion
Valid values: DISABLED | ENABLED mechanism:
Required?: No • If set to ENABLED, CICS tolerates truncated application data and
Default value: DISABLED assumes that the missing data is set to nulls.
• If it is set to DISABLED, CICS rejects the truncated application data
and issues an error message.
Note: The ENABLED setting is only supported at mapping levels 3.0
and higher.
486 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Attribute: dateTime Specifies how the XML elements of xsd:dateTime type are mapped
Valid values: See Description into CICS ASKTIME format. This attribute is only valid for the
Required?: No CICS interpretive conversion type. If it is specified for the Vendor
Default value: See Description (Compiled) conversion type, it is ignored.
This attribute is only valid at Mapping level 3.0 and higher.
If this attribute is specified in a top-down scenario (that is, the
WSBindSpec is specified inside the EISServiceImplementation) then
the valid values are:
• PACKED15 (default)
or
• STRING
If this attribute is specified in a bottom-up (that is, the WSBindSpec is
specified inside the EISService) then the valid values are:
• UNUSED (default)
or
• PACKED15
Developing web services and SOA with Enterprise Service Tools 487
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Specifies the version of the programmatic interface shared between
Attribute: mappingLevel
CICS and the application (see Mapping levels for the CICS assistants).
Valid values: 1.0 | 1.1 | 1.2 |
Generally, it is best to specify the highest mapping level that is
2.0 | 2.1 |2.2 | 3.0 | 4.0
available:
Required?: No • Mapping levels 1.0 to 1.2 are supported in CICS TS 3.1 with APAR
Default value: 2.1 (See Note 1) PK23547 applied.
• Mapping levels 1.0 to 2.1 are supported in CICS TS 3.2 with APAR
PK59794 applied.
• Mapping levels 1.0 to 2.2 are supported in CICS TS 3.2 with APAR
PK69738 applied.
• Mapping levels 1.0 to 3.0 are supported in CICS TS 4.1.
• Mapping levels 1.0 to 4.0 are supported in CICS TS 5.2 and 5.3.
The use of old mapping levels is recommended only when
regenerating the XML binding files for XML transformation resources
that were previously deployed with an old mapping level (see CICS®
Transaction Server for z/OS, Version 5 Release 2 Knowledge Center).
1.0
This is the CICS runtime default mapping level. For
more information on mapping levels refer to CICS TS 4.1
documentation at: The CICS web services assistant
1.1
Use this mapping level if you need to regenerate a binding file at
this specific level.
1.2
This mapping level provides the following features:
• It enables the CHAR-VARYING parameter on the DFHLS2WS
tab and the DFHWS2LS tab of the preferences.
• It supports VARYING and VARYINGZ arrays,
Note: Mapping level 1.2 requires APAR PK23547.
2.0
Use this mapping level for CICS TS 3.2.
For more information on mapping levels refer to CICS TS 4.1
documentation at: The CICS web services assistant
2.1
Use this mapping level for CICS TS 3.2 and later with APAR
PK59794 applied. At this level you can enable the following
features:
• INLINE-MAXOCCURS-LIMIT
See the description of the Inline maxOccurs limit preference
on the DFHWS2LS tab of the wizard (see Inline maxOccurs
limit).
• XML-ONLY (also called Pass-through XML)
See the description of the Pass-through XML preference on the
DFHWS2LS tab of the wizard (see Pass-through XML).
• WSDL-NAMESPACE
See the description of the WSDL namespace preference on the
WSDL and XSD tab of the wizard (see WSDL namespace).
488 Developer for z/OS: Developing with Db2, CICS, and IMS
Support has been added for the XML schema element <xsd:any>
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Specifies whether the default behavior is overridden for the specified
Attribute: mappingOverides
mapping level when generating language structures.
Valid values: See Description
Required?: No The options you can select are:
Default value: See Description
• LESS-DUP-NAMES - For PL/I only. This parameter generates non-
structural structure field names with _value at the end of the
name to enable direct referencing to the field. The suffix _value
is appended only when there is a name conflict between the
structural name and non-structural name.
• UNDERSCORES-AS-HYPHENS - For COBOL only. This parameter
converts any underscores in the WSDL document to hyphens, rather
than the character X, to improve the readability of the generated
COBOL language structures. If any field name clashes occur, the
fields are numbered to ensure they are unique.
Developing web services and SOA with Enterprise Service Tools 489
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Specifies how a generated field name is shortened if it is too long for
Attribute: nameTruncation
use in the specified high-level language. This option is available at all
Valid values: RIGHT | LEFT
mapping levels.
Required?: No
Default value: RIGHT RIGHT
The field name is truncated from the right and a numeric suffix is
added if necessary.
LEFT
The field name is truncated from the left and a numeric suffix is
added if necessary.
490 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Specifies that the remote web service can issue a syncpoint. This
Attribute: synconreturn
attribute is equivalent to the SYNCONRETURN parameter of the CICS
Valid values: YES | NO
Web services assistant wizard pages DFHLS2WS and DFHWS2LS. The
Required?: No
implication of setting this option to YES is that the remote task is
Default value: NO
committed at return. The remote task is classified as a separate unit
of work (UOW). This means that if the remote web service updates a
recoverable resource and then there is a failure after it returns, the
update cannot be backed out. If this option is defaulted or set to NO
and the remote web service issues a syncpoint, then the remote task
fails with ABEND ADPL.
In a service provider, this parameter specifies the 1-4 character
Attribute: transaction
name of an alias transaction that can start the pipeline or run a user
Valid values: See Description
application to compose a HTTP response. The value of this parameter
Required?: No
is used to define the TRANSACTION attribute of the URIMAP resource
Default value: See Description
when it is created automatically using the PIPELINE scan command.
Acceptable characters: A-Z a-z 0-9 $
Developing web services and SOA with Enterprise Service Tools 491
Table 126. Attribute Specifications for WSBindSpec (continued)
Fields Description
Desired local URI to for the Web service, for example, "/exampleApp/
Attribute: uri
InquireSingle". Note: this is different that the location of the Web
Valid values: See Description
service for example, http://server:port[local URI]. If you do not
Required?: No
specify this property it must be defined at install time during manual
Default value: See Description
creation of the Web service resource definitions in CICS.
In a service provider, this parameter specifies a 1-8 character user ID
Attribute: userid
which can be used by any Web client. For an application-generated
Valid values: See Description
response or a Web service, the alias transaction is attached under
Required?: No
this user ID. The value of this parameter is used to define the USERID
Default value: See Description
attribute of the URIMAP resource when it is created automatically
using the PIPELINE scan command.
Acceptable characters: A-Z a-z 0-9 $ @ #
If this attribute is set to true then CICS does not perform any
Attribute: xmlOnly
transformations to the XML at all and instead requires that the
Valid values: true | false
application work with the contents of the DFHWS-BODY container
Required?: No
directly. For a full description refer to: CICS® Transaction Server for
Default value: false
z/OS, Version 5 Release 2 IBM Documentation
Note: The following WSBind default settings apply when multiple operations are present:
• contid value: Service name in WSDL
• fileName: WSDL file location and WSDL file name with .wsbind extension
• mappingLevel: 1.2
• minimumRuntimeLevel: 1.2
• vendorConverterName: Service name in WSDL truncated to 8 characters
Related reference
Example
WSDL2ELSSpec
Use this element of the ServiceSpecification.xml document to specify options for generating the artifacts
that implement a service description in a top-down scenario.
Contained by
492 Developer for z/OS: Developing with Db2, CICS, and IMS
“ServiceImplementationSpec” on page 478
Contains
None
Attributes
Table 127 on page 493 shows the attributes for WSDL2ELSSpec.
Developing web services and SOA with Enterprise Service Tools 493
Table 127. Attribute specifications for WSDL2ELSSpec (continued)
Fields Description
Specifies a value that is applied when elementary language structure
Attribute: defaultDateTimeLength
members are generated for XSD element and attribute declarations
Valid PL/I values: n where 1 <= n <=
of the following types:
(215 – 1)
Valid COBOL values: n where 1 <= n • xsd:date, xsd:dateTime, xsd:duration, xsd:gDay, xsd:gMonth,
<= (227 – 1) xsd:gMonthDay, xsd:gYear, xsd:gYearMonth, and xsd:time.
Required?: No • xsd:simpleType having one of the preceding types as its base type
Default PL/I value: n = 64 but omitting the length or maxLength constraining facets.
Default COBOL value: n = 64
Specifies the relative path of the file container that contains the
Attribute: fileContainer
generated files. This path is relative to the project that is specified
Valid values: See Description.
in EISProject/@name. For example, the fileContainer "generated", as
Required?: Yes
used in the example below, specifies a directory at the top level of the
Default value: None
project specified in EISProject/@name.
If the directory does not exist it is created. If the directory exists its
contents are overwritten.
494 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 127. Attribute specifications for WSDL2ELSSpec (continued)
Fields Description
Attribute: inlineStringLengthLimit Specifies a value that establishes a limit on the length of XSD element
Valid PL/I values: n where 0 <= n <= and attribute declarations of type “xsd:string” that are eligible to be
32767 mapped inline. XSD elements or attributes that exceed the limit will
Valid COBOL values: None (not be mapped out-of-line using a language-specific mechanism if and
supported) only if an out-of-line mapping has the potential to occupy fewer bytes
Required?: No than an inline mapping.
Default PL/I value: n = 32767 This attribute interacts with attribute defaultCharMaxLength, which
Default COBOL value: None (not provides the default length of XSD element or attribute declarations
supported) of type “xsd:string” that do not specify the length or maxLength
facets.
Note: The default PL/I value of 32767 effectively disables out-of-line
mappings as this is the maximum length in bytes of PL/I CHAR or
WCHAR variables.
Note: This attribute is not supported in the WSDL2COBOL scenario.
Attribute: defaultMaxOccursLimit Specifies a value that is applied when language structure members
Valid PL/I values: None (not are generated for XSD element declarations that specify the
applicable) maxOccurs facet.
Valid COBOL values: n where 1 <= n If an XML element specifies a maxOccurs facet value that is
<= (227 – 1) unbounded or exceeds the value of this attribute, the upper bound
Required?: No of the array that is generated in the language structure will be equal
Default PL/I value: None (not to the value of this attribute.
applicable)
Default COBOL value: n=20 Note: This option is not supported in the WSDL2PLI scenario.
Specifies the file name of the generated file into which language
Attribute: languageFileName
structures are written.
Valid values: See Description.
Required?: Yes If the file does not exist it is created. If the file exists it is overwritten.
Default value: None
Specifies a value that is applied when names are derived for language
Attribute: languageNameLimit
structures and language structure members from the names of
Valid PL/I values: n where 1 <= n <=
corresponding XSD element and attribute declarations. For PL/I, if
100
the value of this attribute is greater than 31 then generated language
Valid COBOL values: n where 1 <= n
structures must be compiled with the option “LIMITS(NAME(n))”,
<= 30
where 31 < n <= 100.
Required?: No
Default PL/I value: n=100
Default COBOL value: n=30
Developing web services and SOA with Enterprise Service Tools 495
Table 127. Attribute specifications for WSDL2ELSSpec (continued)
Fields Description
Specifies the file name of the file into which log information is written.
Attribute: logFileName
Valid values: See Description. If the file does not exist it is created. If the file exists it is overwritten.
Required?: Yes
Default value: None
Specifies the file name of the file into which WSDL2ELS metadata is
Attribute: metadataFileName
written.
Valid values: See Description.
Required?: Yes If the file does not exist it is created. If the file exists it is overwritten.
Default value: None
Example
<WSDL2ELSSpec
defaultCharMaxLength="256"
defaultBase64BinaryLength="256"
defaultTotalDigits="31"
defaultFractionDigits="6"
defaultDateTimeLength="64"
inlineMaxOccursLimit="20"
languageNameLimit="31"
fileContainer="/generated"
languageFileName="MYAPP.inc"
logFileName="MYAPP.log"
mappingDirectory="metadata/mapping"
metadataFileName="MYAPP_metadata.xml" />
XSDBindSpec
Use this element of the ServiceSpecification.xml document to specify the generation properties for the
Native or Vendor XML binding file (XSDBind file).
The XSDBind file is used to install an XML transformation resource (XMLTRANSFORM) under CICS
Transaction Server version 5.2 and later. The XMLTRANSFORM resource is used by the CICS EXEC APIs,
TRANSFORM XMLTODATA and TRANSFORM DATATOXML.
The XMLTRANSFORM resource can be used to perform the XML transformation in both directions
(DATATOXML and XMLTODATA), for one XML document and for one data structure. This is in contrast
to the WEBSERVICE resource in which transformation to an XML document can be different from the
transformation to a data structure.
There are two kinds of XSDBind files that may be generated: Native XSDBind and Vendor XSDBind.
The following shows which generation properties are associated with each XSDBind file type and
examples of how to specify them.
Native XSDBind (Interpretive XML Conversion):
• Characteristics:
– CICS performs XML conversion using an internal mechanism
496 Developer for z/OS: Developing with Db2, CICS, and IMS
– Specify @type="interpretive" on the element PlatformProperties.xml/CodegenPropertyArray/
CodegenProperty/@name="com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
– Include "MessageSpec" inside the element ServiceSpecification.xml/EISProject/EISService/
Operation.
• PlatformProperties.xml:
<PlatformArray>
<Platform>
<CodegenPropertyArray>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
value="interpretive"/>
</CodegenPropertyArray>
</Platform>
</PlatformArray>
• ServiceSpecification.xml (bottom-up):
<EISProject
xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSPROGProject">
<EISService name="CICSPROG">
<Operation>
<MessageSpec importFile="CICSPRG.cbl" importDirectory="."
nativeTypeName="DFHCOMMAREA"/>
<XseSpec>
<XSDBindSpec fileName="CICSPROG.xsdbind" logFileName="CICSPRG.log"/>
</XseSpec>
</Operation>
</EISService>
</EISProject>
<PlatformArray>
<Platform>
<CodegenPropertyArray>
<CodegenProperty name="com.ibm.etools.xmlent.ui.GEN_CONVERSION_TYPE"
value="compiled"/>
</CodegenPropertyArray>
</Platform>
</PlatformArray>
• ServiceSpecification.xml (bottom-up):
<EISProject
xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
name="CICSPROGProject">
<EISService name="CICSPROG">
<Operation>
<MessageSpec importFile="CICSPRG.cbl" importDirectory="."
nativeTypeName="FHCOMMAREA"/>
<XseSpec>
<DriverSpec fileName="CICSPRGD.cbl" driverType="XML_TRANSFORM_CICS"
programName="CICSPRG"/>
<ConverterSpecIn fileName="CICSPRGD.cbl" programName="BUP001"/>
<ConverterSpecOut fileName="CICSPRGD.cbl" programName="BUP001"/>
<XSDBindSpec fileName="CICSPROG.xsdbind" logFileName="CICSPROG.log"
mappingLevel="VENDOR" minimumRuntimeLevel="VENDOR"/>
</XseSpec>
</Operation>
Developing web services and SOA with Enterprise Service Tools 497
</EISService>
</EISProject>
Contained by
“XseSpec” on page 511
“ServiceImplementationSpec” on page 478
Contains
None
Attributes
Table 128 on page 498 shows the attributes for XSDBindSpec.
498 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 128. Attribute Specifications for XSDBindSpec (continued)
Fields Description
Specifies how character arrays in the language structure should be
Attribute: charVarying (EISService)
mapped when the mapping level is 1.2 or higher .
Valid values: NO | NULL |
COLLAPSE | BINARY Note: This parameter does not apply to Enterprise and other PL/I
Required?: No language structures.
Default value: NULL or COLLAPSE
The options you can select are:
(See Description)
• NO - Character arrays are mapped to an xsd:string and are
processed as fixed length fields. The maximum length of the data is
equal to the length of the array.
• NULL - Character arrays are mapped to an xsd:string and are
processed as null terminated arrays. CICS adds a terminating null
character when transforming from a XML document. The maximum
length of the character string is calculated as one character less
than the length indicated in the language structure. This value is the
default for mapping levels 1.2 and 2.0.
• COLLAPSE - Generate XML character data description with the
whitespace attribute set to "collapse". This value is only available
at mapping levels of 1.2 and higher. This value is the default for
mapping levels 2.1 and higher.
• BINARY- Any character arrays defined in the language structure are
mapped to fixed length xsd:base64Binary fields in the WSDL rather
than to xsd:string fields.
Required elements:
• PlatformProperties.xml/CodegenPropertyArray/CodegenProperty
– @name="CONVERSION_TYPE"
– @value="interpretive"
• ServiceSpecification.xml/EISService
Attribute: charVarying Specifies how variable length character data is mapped when the
mapping level is 1.2 or higher. Variable length binary data types are
(EISServiceImplementation)
always mapped to either a container or a varying structure. If you
Valid values: NO | NULL | YES
do not specify this parameter, the default mapping depends on the
Required?: No
language specified. The options that you can select are:
Default value: NO
• NO - Variable length character data is mapped as fixed length
strings.
• NULL - Variable length character data is mapped to null terminated
strings.
• YES - Variable length character data is mapped to a CHAR VARYING
data type in PL/I. In the COBOL, C and C++ languages, variable
length character data is mapped to an equivalent representation
that comprises of two related elements - data length and the data.
Required Batch Options:
• PlatformProperties.xml/CodegenPropertyArray/CodegenProperty
@name="CONVERSION_TYPE" @value="interpretive"
• ServiceSpecification.xml/EISService
Developing web services and SOA with Enterprise Service Tools 499
Table 128. Attribute Specifications for XSDBindSpec (continued)
Fields Description
Specifies the maximum size of binary data and variable length
Attribute: charVaryingLimit
character data that is mapped to the language structure when the
Valid values: See Description
mapping level is 1.2 or higher. If the character or binary data is larger
Required?: No
than the value specified in this parameter, it is mapped to a container
Default value: 32767
and the container name is used in the generated language structure.
The value can range from 0 to the default 32767 bytes.
Required Batch Options:
• PlatformProperties.xml/CodegenPropertyArray/CodegenProperty
@name="CONVERSION_TYPE" @value="interpretive"
• ServiceSpecification.xml/EISService
500 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 128. Attribute Specifications for XSDBindSpec (continued)
Fields Description
Specifies the version of the programmatic interface shared between
Attribute: mappingLevel
CICS and the application (see CICS® Transaction Server for z/OS,
Valid values: 1.0 | 1.1 | 1.2 |
Version 5 Release 2 IBM Documentation). Generally, it is best to
2.0 | 2.1 |2.2 | 3.0 | 4.0
specify the highest mapping level that is available:
Required?: No
Default value: 2.1 • Mapping levels 1.0 to 1.2 are supported in CICS TS 3.1 with APAR
PK23547 applied.
• Mapping levels 1.0 to 2.1 are supported in CICS TS 3.2 with APAR
PK59794 applied.
• Mapping levels 1.0 to 2.2 are supported in CICS TS 3.2 with APAR
PK69738 applied.
• Mapping levels 1.0 to 3.0 are supported in CICS TS 4.1.
• Mapping levels 1.0 to 4.0 are supported in CICS TS 5.2 and 5.3.
The use of old mapping levels is recommended only when
regenerating the XML binding files for XML transformation resources
that were previously deployed with an old mapping level.
1.0
This is the CICS runtime default mapping level. For
more information on mapping levels refer to CICS TS 4.1
documentation at: The CICS web services assistant
1.1
Use this mapping level if you need to regenerate a binding file at
this specific level.
1.2
This mapping level provides the following features:
• It enables the CHAR-VARYING parameter on the DFHLS2SC
tab and the DFHSC2LS tab of the preferences.
• It supports VARYING and VARYINGZ arrays,
Note: Mapping level 1.2 requires APAR PK23547.
2.0
Use this mapping level for CICS TS 3.2.
For more information on mapping levels refer to CICS TS 5.3
documentation at: Mapping levels for the CICS assistants
2.1
Use this mapping level for CICS TS 3.2 with APAR PK59794 and
later. At this level you can use the following features:
• INLINE-MAXOCCURS-LIMIT (available on wizard page
DFHSC2LS)
This option allows you to decide whether to map variably
repeating content inline or to use the existing container based
mapping. For additional details, refer to: Mapping levels for the
CICS assistants
502 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 128. Attribute Specifications for XSDBindSpec (continued)
Fields Description
Attribute: dateTime Specifies how the XML elements of xsd:dateTime type are mapped
Valid values: See Description into CICS ASKTIME format. This attribute is only valid for the
Required?: No CICS interpretive conversion type. If it is specified for the Vendor
Default value: See Description (Compiled) conversion type, it is ignored.
This attribute is only valid at Mapping level 3.0 and higher.
If this attribute is specified in a top-down scenario (that is the
XSDBindSpec is specified inside the EISServiceImplementation) then
the valid values are:
• PACKED15 (default)
or
• STRING
If this attribute is specified in a bottom-up (that is, the XSDBindSpec
is specified inside the EISService) then the valid values are:
• UNUSED (default)
or
• PACKED15
Related reference
Example
<XSDBindSpec fileName="CICSPROG.xsdbind"
mappingLevel="VENDOR" logFileName="CICSPROG.log" ccsid="37"
minimumRuntimeLevel="VENDOR">
</XSDBindSpec>
XMLNamesArray
Use this element as a container for one or more XMLNameSelection elements.
Contained by
Developing web services and SOA with Enterprise Service Tools 503
Contains
“XMLNameSelection” on page 504
Attributes
None
Example
<ItemSelectionArray>
<ItemSelection itemName="A.B.C"/>
</ItemSelectionArray>
<XMLNamesArray>
<XMLNameSelection itemName="A.B.C" xmlName="XMLC"/>
<XMLNameSelection itemName="A.B" xmlName="XMLB"/>
<XMLNameSelection itemName="A" xmlName="XMLA"/>
</XMLNamesArray>
XMLNameSelection
Use this element to provide the mapping of the original COBOL elements to the new XML element names.
There are some important aspects to consider when you use this element:
• No error checking is done to ensure the xmlName attribute value is in fact a valid XML element name.
• Only the batch specification files support alternate name specification. The GUI wizard does not have
that capability.
• The XMLNamesArray and the xsdElemName attributes of the XsdSpec elements should not be used to
alter the same level 01 COBOL item in the same message specification. Use one or the other but not
both in the same specification.
• Element and type names formation is similar to name formation applied to the default names subject to
the following rules:
– If non-level 01 COBOL item name or its alternate name is all upper case, the corresponding XML
schema type if any and the XML element name will be all lower case
– If non-level 01 item name or its alternate name is not all upper case, the corresponding XML schema
type, if any, and the XML element name will preserve the case of the specification
– The case of level 01 item name will always have the case of the original COBOL name of the xmlName
attribute specification
– All hyphens are removed from level 01 item names
– One or more hyphens are replaced by a single underscore in non-level 01 item names. COBOL names
that differ only by the number of hyphens are not supported. The schemas generated from COBOL
data containing items with such names under the same group item will have duplicate element
names and may not be valid
Contained by
“XMLNamesArray” on page 503
Contains
None
504 Developer for z/OS: Developing with Db2, CICS, and IMS
Attributes
Fields Description
Specifies the name of the COBOL data item for which the alternate
Attribute: itemName
name is desired. The value of this attribute must specify a valid
Valid values: See Description
COBOL data item name prefixed with dot-separated parent names
Required?: Yes
as shown in the following example. Only this COBOL data item is
Default value: None
affected
Specifies the name from which the XML names in generated schemas
Attribute: xmlName
and WSDL files will be derived. This name will be used rather than the
Valid values: See Description
name of the COBOL data item.
Required?: Yes
Default value: None
Example
(1) Assuming the COBOL language structure shown in Figure 82 on page 505
1 A.
2 B.
3 C pic x(10).
3 D pix x(2).
(2) Figure 83 on page 505 is an example of specifying alternate names for the three data items A, B, and
C shown in Figure 82 on page 505.
<ItemSelectionArray>
<ItemSelection itemName="A.B.C"/>
</ItemSelectionArray>
<XMLNamesArray>
<XMLNameSelection itemName="A.B.C" xmlName="XMLC"/>
<XMLNameSelection itemName="A.B" xmlName="XMLB"/>
<XMLNameSelection itemName="A" xmlName="XMLA"/>
</XMLNamesArray>
Figure 83. Example of Alternate Names of COBOL Language Structures for XMLNameSelection Element
(3) Given the specification provided per Figure 82 on page 505 and Figure 83 on page 505, Figure 84 on
page 506 is an example of the schema that is generated.
Developing web services and SOA with Enterprise Service Tools 505
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:cbl="http://www.XC011I.com/schemas/
XC011IInterface"
targetNamespace="http://www.XC011I.com/schemas/XC011IInterface">
<complexType name="XMLA">
<sequence>
<element name="xmlb" type="cbl:xmla_xmlb"/>
</sequence>
</complexType>
<complexType name="xmla_xmlb">
<sequence>
<element name="xmlc">
<annotation>
<appinfo source="http://www.wsadie.com/appinfo">
<initialValue kind="SPACE"/>
</appinfo>
</annotation>
<simpleType>
<restriction base="string">
<maxLength value="10"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
<element name="XMLA" type="cbl:XMLA"/>
</schema>
Figure 84. Example of the Generated Schema for COBOL Language Structures for XMLNameSelection Element
XsdSpec
Use this element to specify properties of the XML schema generated from the data structures.
These XML schemas can be used for validation by an XML transformation; for example, CICS 4.1
XMLTRANSFORM resource.
Note: XsdSpec CANNOT be specified with:
• “XsdSpecIn” on page 508
• “XsdSpecOut” on page 509
Contained by
“XseSpec” on page 511
Contains
None
Attributes
Table 129 on page 506 shows the attributes for XsdSpec.
506 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 129. Attribute Specifications for XsdSpec (continued)
Fields Description
Specifies the local namespace.
Attribute: localNamespace
Valid values: See Description Note: Request namespaces have no effect on the code generated in
Required?: No the converter.
Default value: See Description
The default value is: http://www.w3.org/2001/XMLSchema
Example
Figure 85 on page 508 is an example of XseSpec element.
Developing web services and SOA with Enterprise Service Tools 507
<XsdSpec fileName="sample.xsd" overwrite="true"
targetNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
xsdNamespace="http://www.w3.org/2001/XMLSchema"
localNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
xsdPrefix="cbl"
xsdElemName="dfhcommarea"/>
XsdSpecIn
Use this element of the ServiceProperties.xml document to specify the generation options for the XML
schema that corresponds to the input language structure.
Contained by
“XseSpec” on page 511
Contains
None
Attributes
Table 130 on page 508 shows the attributes for XsdSpecIn.
508 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 130. Attribute Specifications for XsdSpecIn (continued)
Fields Description
The value of this attribute directs the Batch processor to generate
Attribute: whiteSpace
XML Schemas and XML converter programs that support the three
Valid values: collapse | replace |
standard whitespace processing options in XML Schema: "preserve",
preserve | compat
"replace", and "collapse". Every element in the generated XML
Required?: No
Schema is assigned the value of this attribute for its whiteSpace
Default value: collapse
option. The value of this attribute is ignored when XML converters are
being generated for the "Map and Existing Service Interface" scenario
since the setting in the mapped XML Schema must be assumed.
To direct the Batch processor to generate XML Schemas and XML
converter programs that are compatible with releases prior to
version 7.5, specify the value "compat".
Example
XsdSpecOut
Use this element of the ServiceProperties.xml document to specify the generation options for the XML
schema that corresponds to the output language structure.
Note: If the Output and Input message specifications elsewhere in the same EISService specfication are
combined in a single InputOutputMessage, both request and response message definitions come from a
single COBOL source. Because of this, the XsdSpecOut schema specification for all attributes except the
fileName will be ignored for the response schema. The resulting external XSD file for XsdSpecOut in this
case will be identical to the XSD file resulting from XsdSpecIn. The types section of a resulting WSDL file
will only have one schema type definition (that will be defined by characteristics of the XsdSpecIn).
“XseSpec” on page 511
Contains
None
Developing web services and SOA with Enterprise Service Tools 509
Attributes
Table 131 on page 510 shows the attributes for XsdSpecOut.
510 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 131. Attribute Specifications for XsdSpecOut (continued)
Fields Description
Specifies the xsd namespace prefix.
Attribute: xsdPrefix
Valid values: See Description
Required?: No
Default value: cbl
Example
XseSpec
Use this element as the container for specifying generation options for the set of converters, driver, and
XSD files.
Contained by
“Operation” on page 469
Contains
“CorrelatorSpec” on page 447
“ConverterSpecIn” on page 445
“ConverterSpecOut” on page 446
“DriverSpec” on page 449
“XsdSpec” on page 506 (See Note)
“XsdSpecIn” on page 508 (See Note)
“XsdSpecOut” on page 509 (See Note)
Note: XseSpec can contain an “XsdSpec” on page 506 element. If XseSpec contains a “XsdSpec” on page
506 element, then XseSpec CANNOT contain the following:
• “XsdSpecIn” on page 508
• “XsdSpecOut” on page 509
If this restriction is not followed the results of the generation are unpredictable.
Attributes
None
Example
Figure 86 on page 511 is an example of XseSpec element.
<XseSpec>
<DriverSpec fileName=""DFH0CSTDD.cbl" driverType="SOAP_FOR_CICS"
programName="XCNVD" businessPgmName="Ex01" />
<ConverterSpecIn fileName="DFH0CSTDI.cbl" overwrite="true" programName="XCNVI"/>
<ConverterSpecOut fileName="DFH0CSTDO.cbl" overwrite="true" programName="XCNVO"/>
<XsdSpecIn fileName="DFH0CSTDI.xsd" overwrite="true"
targetNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
Developing web services and SOA with Enterprise Service Tools 511
xsdNamespace="http://www.w3.org/2001/XMLSchema"
localNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
xsdPrefix="cbl"
xsdElemName="dfhcommarea" />
<XsdSpecOut fileName="DFH0CSTDO.xsd" overwrite="true"
targetNamespace="http://www.DFH0CSTDO.com/schemas/DFH0CSTDOInterface"
xsdNamespace="http://www.w3.org/2001/XMLSchema"
localNamespace="http://www.DFH0CSTDO.com/schemas/DFH0CSTDOInterface"
xsdPrefix="cbl"
xsdElemName="dfhcommarea" />
</XseSpec>
<ServicePropertyArray>
<ServiceProperty name="bindingName" value="myBinding" />
<ServiceProperty name="soapTransport"
value="http://schemas.xmlsoap.org/soap/http" />
<ServiceProperty name="soapBindingStyle" value="document" />
</ServicePropertyArray>
<XseSpec>
<DriverSpec fileName=""DFH0CSTDD.cbl" driverType="IMS_SOAP"
programName="XCNVD" businessPgmName="Ex01" />
<ConverterSpecIn fileName="DFH0CSTDI.cbl" overwrite="true" programName="XCNVI"/>
<ConverterSpecOut fileName="DFH0CSTDO.cbl" overwrite="true" programName="XCNVO"/>
<XsdSpecIn fileName="DFH0CSTDI.xsd" overwrite="true"
targetNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
xsdNamespace="http://www.w3.org/2001/XMLSchema"
512 Developer for z/OS: Developing with Db2, CICS, and IMS
localNamespace="http://www.DFH0CSTDI.com/schemas/DFH0CSTDIInterface"
xsdPrefix="cbl"
xsdElemName="dfhcommarea"
/>
<XsdSpecOut fileName="DFH0CSTDO.xsd"
overwrite="true"
targetNamespace="http://www.DFH0CSTDO.com/schemas/DFH0CSTDOInterface"
xsdNamespace="http://www.w3.org/2001/XMLSchema"
localNamespace="http://www.DFH0CSTDO.com/schemas/DFH0CSTDOInterface"
xsdPrefix="cbl"
xsdElemName="dfhcommarea"
/>
</XseSpec>
</Operation>
</EISService>
</EISProject>
Related references
---------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
elementFormDefault="qualified">
<xsd:complexType name="LanguageStructureSpecType">
<xsd:attribute name="fileNamePrefix" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="6" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
</xsd:complexType>
<xsd:complexType name="MessageType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="RedefinesArray" />
<xsd:choice>
<xsd:element maxOccurs="1" minOccurs="0"
ref="ItemSelectionArray" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="ItemExclusionArray" />
</xsd:choice>
<xsd:element maxOccurs="1" minOccurs="0" ref="XMLNamesArray" />
</xsd:sequence>
<xsd:attribute name="importDirectory" type="xsd:string"
use="optional" />
<xsd:attribute name="importFile" type="xsd:string" use="optional" />
<xsd:attribute name="name" type="xsd:string" use="optional" />
<xsd:attribute name="annotationsFile" type="xsd:string"
use="optional" />
<xsd:attribute name="commTypesFile" type="xsd:string"
use="optional" />
<xsd:attribute name="xmlEleName" type="xsd:string" use="optional" />
<xsd:attribute name="nativeTypeName" type="xsd:string"
use="optional" />
<xsd:attribute name="lowerBound" use="optional"
type="xsd:nonNegativeInteger" />
<xsd:attribute name="upperBound" use="optional"
type="xsd:nonNegativeInteger" />
Developing web services and SOA with Enterprise Service Tools 513
<xsd:attribute name="mappingFile" use="optional" type="xsd:string" />
<xsd:attribute name="mappingDirectory" use="optional" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="XsdSpecType">
<xsd:attribute name="fileName" type="xsd:string" use="optional" />
<xsd:attribute name="localNamespace" type="xsd:string"
use="optional" />
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="targetNamespace" type="xsd:string"
use="optional" />
<xsd:attribute name="whiteSpace" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="collapse" />
<xsd:enumeration value="replace" />
<xsd:enumeration value="preserve" />
<xsd:enumeration value="compat" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="xsdElemName" type="xsd:string" use="optional" />
<xsd:attribute name="xsdNamespace" type="xsd:string"
use="optional" />
<xsd:attribute name="xsdPrefix" type="xsd:string" use="optional" />
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
</xsd:complexType>
<xsd:complexType name="ConverterSpecType">
<xsd:attribute name="fileName" type="xsd:string" use="optional" />
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="programName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
</xsd:complexType>
<xsd:element name="ConnectionProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ConnectionPropertyArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="ConnectionProperty" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CorrelatorSpec">
<xsd:complexType>
<xsd:attribute name="fileName" type="xsd:string" use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="soapAction" type="xsd:string" use="optional" />
<xsd:attribute name="adapterType" type="xsd:string"
use="optional" />
<xsd:attribute name="connectionBundleName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
514 Developer for z/OS: Developing with Db2, CICS, and IMS
<xsd:attribute name="calloutConnBundleName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="calloutConnBundleNames" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="socketTimeout" type="xsd:nonNegativeInteger"
use="optional" />
<xsd:attribute name="executionTimeout" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="3600000" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="calloutWSTimeout" type="xsd:positiveInteger"
use="optional" />
<xsd:attribute name="inboundTPIPEName" type="xsd:string"
use="optional" />
<xsd:attribute name="ltermName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="trancode" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="calloutURI" type="xsd:string" use="optional" />
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
<xsd:attribute name="WSSecurity" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SAML11Token"/>
<xsd:enumeration value="SAML20Token"/>
<xsd:enumeration value="SAML11SignedTokenTrustAny"/>
<xsd:enumeration value="SAML11SignedTokenTrustOne"/>
<xsd:enumeration value="SAML20SignedTokenTrustAny"/>
<xsd:enumeration value="SAML20SignedTokenTrustOne"/>
<xsd:enumeration value="UserNameToken"/>
<xsd:enumeration value=""/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="calloutWSSecurity" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SAML11Token"/>
<xsd:enumeration value="SAML20Token"/>
<xsd:enumeration value=""/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="calloutSendOnlyWithACK" type="xsd:boolean"
use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="WSBindSpec">
<xsd:complexType>
<xsd:attribute name="fileName" type="xsd:string" use="optional" />
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="pgmint" type="xsd:int" use="optional" />
<xsd:attribute name="contid" type="xsd:string" use="optional" />
<xsd:attribute name="uri" type="xsd:string" use="optional" />
<xsd:attribute name="ccsid" type="xsd:string" use="optional" />
<xsd:attribute name="mappingLevel" type="xsd:string"
use="optional" />
Developing web services and SOA with Enterprise Service Tools 515
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="minimumRuntimeLevel" type="xsd:string"
use="optional" />
<xsd:attribute name="userid" type="xsd:string" use="optional" />
<xsd:attribute name="transaction" type="xsd:string"
use="optional" />
<xsd:attribute name="charVarying" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NO" />
<xsd:enumeration value="NULL" />
<xsd:enumeration value="COLLAPSE" />
<xsd:enumeration value="BINARY" />
<xsd:enumeration value="YES" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="charVaryingLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="32767" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="defaultCharMaxLength" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="2147483647" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="charMultiplier" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="2147483647" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="businessPgmName" type="xsd:string"
use="optional" />
<xsd:attribute name="vendorConverterName" type="xsd:string"
use="optional" />
<xsd:attribute name="xmlOnly" type="xsd:boolean" use="optional" />
<xsd:attribute name="logFileName" type="xsd:string"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="dataTruncation" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DISABLED" />
<xsd:enumeration value="ENABLED" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="nameTruncation" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="RIGHT" />
<xsd:enumeration value="LEFT" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="dateTime" type="xsd:string" use="optional" />
<xsd:attribute name="inlineMaxOccursLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="32767" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="requestChannel" type="xsd:string"
use="optional" />
<xsd:attribute name="responseChannel" type="xsd:string"
use="optional" />
<xsd:attribute name="service" type="xsd:string" use="optional" />
<xsd:attribute name="synconreturn" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NO" />
<xsd:enumeration value="YES" />
516 Developer for z/OS: Developing with Db2, CICS, and IMS
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="arithExtend" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NO" />
<xsd:enumeration value="YES" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
<xsd:attribute name="pipeline" type="xsd:string"
use="optional" />
<xsd:attribute name="wsdlloc" type="xsd:string"
use="optional" />
<xsd:attribute name="jsonReqSchema" type="xsd:string"
use="optional" />
<xsd:attribute name="jsonRespSchema" type="xsd:string"
use="optional" />
<xsd:attribute name="jsonSchemaRest" type="xsd:string"
use="optional" />
<xsd:attribute name="httpMethods" type="xsd:string"
use="optional" />
<xsd:attribute name="mappingOverrides" type="xsd:string"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="XSDBindSpec">
<xsd:complexType>
<xsd:attribute name="bundle" type="xsd:string" use="optional" />
<xsd:attribute name="ccsid" type="xsd:string" use="optional" />
<xsd:attribute name="charVarying" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NO" />
<xsd:enumeration value="NULL" />
<xsd:enumeration value="COLLAPSE" />
<xsd:enumeration value="BINARY" />
<xsd:enumeration value="YES" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="charVaryingLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="32767" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="defaultCharMaxLength" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="2147483647" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="charMultiplier" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="2147483647" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="fileName" type="xsd:string" use="optional" />
<xsd:attribute name="inlineMaxOccursLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="32767" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="logFileName" type="xsd:string"
use="optional" />
<xsd:attribute name="mappingLevel" type="xsd:string"
use="optional" />
<xsd:attribute name="minimumRuntimeLevel" type="xsd:string"
use="optional" />
<xsd:attribute name="nameTruncation" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
Developing web services and SOA with Enterprise Service Tools 517
<xsd:enumeration value="RIGHT" />
<xsd:enumeration value="LEFT" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="vendorConverterName" type="xsd:string"
use="optional" />
<xsd:attribute name="dateTime" type="xsd:string" use="optional" />
<xsd:attribute name="dataTruncation" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DISABLED" />
<xsd:enumeration value="ENABLED" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="arithExtend" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NO" />
<xsd:enumeration value="YES" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
<xsd:attribute name="mappingOverrides" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="DriverSpec">
<xsd:complexType>
<xsd:attribute name="driverType" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BATCH" />
<xsd:enumeration value="IMS_SOAP" />
<xsd:enumeration value="IMS_INFO_20" />
<xsd:enumeration value="WEB_SERVICES_CICS" />
<xsd:enumeration value="XML_TRANSFORM_CICS" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="fileName" type="xsd:string" use="optional" />
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="programName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="businessPgmName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="fileNamePrefix" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="7" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="xmlContainerName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="16" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="dataContainerName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="16" />
518 Developer for z/OS: Developing with Db2, CICS, and IMS
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="EISProject">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0"
ref="ImportPropertyArray" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="CodegenPropertyArray" />
<xsd:choice>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="EISService" />
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="EISServiceImplementation" />
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="EISService">
<xsd:complexType>
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0"
ref="ConnectionPropertyArray" />
<xsd:element maxOccurs="1" minOccurs="0" ref="Operation" />
<xsd:element minOccurs="0" ref="RouterSpec" />
<xsd:element minOccurs="0" ref="WSBindSpec" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="ServicePropertyArray" />
</xsd:all>
<xsd:attribute name="generateConverters" type="xsd:boolean"
use="optional" />
<xsd:attribute name="generateSeparateXSD" type="xsd:boolean"
use="optional" />
<xsd:attribute name="generateWSDL" type="xsd:boolean"
use="optional" />
<xsd:attribute name="name" type="xsd:string" use="optional" />
<xsd:attribute name="targetNamespace" type="xsd:string"
use="optional" />
<xsd:attribute name="type" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CICS" />
<xsd:enumeration value="IMS" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="targetFilesURI" type="xsd:string"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="targetNameSpace" type="xsd:string"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ImportProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ImportPropertyArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="ImportProperty" />
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ServiceProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ServicePropertyArray">
Developing web services and SOA with Enterprise Service Tools 519
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="ServiceProperty" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CodegenProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="CodegenPropertyArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="CodegenProperty" />
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="InputOutputMessage">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="RedefinesArray" />
<xsd:choice>
<xsd:element maxOccurs="1" minOccurs="0"
ref="ItemSelectionArray" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="ItemExclusionArray" />
</xsd:choice>
<xsd:element maxOccurs="1" minOccurs="0" ref="XMLNamesArray" />
</xsd:sequence>
<xsd:attribute name="importDirectory" type="xsd:string"
use="optional" />
<xsd:attribute name="importFile" type="xsd:string" use="optional" />
<xsd:attribute name="name" type="xsd:string" use="optional" />
<xsd:attribute name="nativeTypeName" type="xsd:string"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ItemSelection">
<xsd:complexType>
<xsd:attribute name="itemName" type="xsd:string" use="required" />
<xsd:attribute name="optional" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ItemExclude">
<xsd:complexType>
<xsd:attribute name="itemName" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ItemSelectionArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="ItemSelection" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ItemExclusionArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="ItemExclude" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Operation">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0"
ref="OperationPropertyArray" />
<xsd:choice>
<xsd:sequence>
<xsd:element ref="InputOutputMessage" maxOccurs="1"
minOccurs="0" />
</xsd:sequence>
<xsd:choice maxOccurs="unbounded">
<xsd:sequence>
<xsd:element name="InputMessage" maxOccurs="1"
520 Developer for z/OS: Developing with Db2, CICS, and IMS
minOccurs="0" type="MessageType" />
<xsd:element name="OutputMessage" maxOccurs="1"
minOccurs="0" type="MessageType" />
</xsd:sequence>
</xsd:choice>
</xsd:choice>
<xsd:element maxOccurs="1" minOccurs="0" ref="XseSpec" />
<xsd:element maxOccurs="1" minOccurs="0" name="MessageSpec"
type="MessageType" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="optional" />
<xsd:attribute name="type" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="REQUEST_RESPONSE" />
<xsd:enumeration value="SOLICIT_RESPONSE" />
<xsd:enumeration value="ONE_WAY" />
<xsd:enumeration value="NOTIFICATION" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="OperationProperty">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="OperationPropertyArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="OperationProperty" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RedefineSelection">
<xsd:complexType>
<xsd:attribute name="redefine" type="xsd:string" use="required" />
<xsd:attribute name="useRedefinition" type="xsd:string"
use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="RedefinesArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="RedefineSelection" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="XseSpec">
<xsd:complexType>
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" ref="DriverSpec" />
<xsd:element maxOccurs="1" minOccurs="0" name="ConverterSpecIn"
type="ConverterSpecType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="ConverterSpecOut"
type="ConverterSpecType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="XsdSpecIn"
type="XsdSpecType" />
<xsd:element maxOccurs="1" minOccurs="0" name="XsdSpecOut"
type="XsdSpecType" />
<xsd:element maxOccurs="1" minOccurs="0" name="XsdSpec"
type="XsdSpecType" />
<xsd:element minOccurs="0" maxOccurs="1" name="DFDLSpecIn"
type="XsdSpecType" />
<xsd:element minOccurs="0" maxOccurs="1" name="DFDLSpecOut"
type="XsdSpecType" />
<xsd:element maxOccurs="1" minOccurs="0" ref="CorrelatorSpec" />
<xsd:element maxOccurs="1" minOccurs="0" ref="WSBindSpec" />
<xsd:element maxOccurs="1" minOccurs="0" ref="XSDBindSpec" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="CICSDeploymentSpec" />
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="XMLNameSelection">
<xsd:complexType>
<xsd:attribute name="itemName" type="xsd:string" use="required" />
Developing web services and SOA with Enterprise Service Tools 521
<xsd:attribute name="xmlName" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="XMLNamesArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="XMLNameSelection" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RouterSpec">
<xsd:complexType>
<xsd:attribute name="type" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="WEB_SERVICES_CICS" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="fileName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<!-- It is set to 12 as it can include file extension (ex: .cbl) -->
<xsd:maxLength value="12" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="programName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="EISServiceImplementation">
<xsd:complexType>
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0"
ref="ServicePropertyArray" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="ConnectionPropertyArray" />
<xsd:element ref="ServiceImplementationSpec" />
</xsd:all>
<xsd:attribute name="runtime" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="WEB_SERVICES_CICS" />
<xsd:enumeration value="IMS_SOAP_GATEWAY" />
<xsd:enumeration value="XML_TRANSFORM_CICS" />
<xsd:enumeration value="BATCH" />
<xsd:enumeration value="JSON_SERVICES_CICS" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="type" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SERVICE_PROVIDER" />
<xsd:enumeration value="SERVICE_REQUESTOR" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="interactionPattern" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="REQUEST_RESPONSE" />
<xsd:enumeration value="RESTFUL" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="ServiceImplementationSpec">
<xsd:complexType>
522 Developer for z/OS: Developing with Db2, CICS, and IMS
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0"
ref="OperationSelectionArray" />
<xsd:element maxOccurs="1" minOccurs="0"
name="LanguageStructureSpecIn" type="LanguageStructureSpecType" />
<xsd:element maxOccurs="1" minOccurs="0"
name="LanguageStructureSpecOut" type="LanguageStructureSpecType" />
<xsd:element maxOccurs="1" minOccurs="0"
name="LanguageStructureSpec" type="LanguageStructureSpecType" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="ApplicationTemplateSpec" />
<xsd:element maxOccurs="1" minOccurs="0" ref="WSDL2ELSSpec" />
<xsd:element maxOccurs="1" minOccurs="0" ref="WSBindSpec" />
<xsd:element maxOccurs="1" minOccurs="0" ref="XSDBindSpec" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="CICSDeploymentSpec" />
<xsd:element maxOccurs="1" minOccurs="0" ref="CorrelatorSpec" />
<xsd:element maxOccurs="1" minOccurs="0" ref="DriverSpec" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="ElementSelectionArray" />
<xsd:element maxOccurs="1" minOccurs="0"
ref="TypeSelectionArray" />
</xsd:all>
<xsd:attribute name="importDirectory" type="xsd:string"
use="optional" />
<xsd:attribute name="importFile" type="xsd:string" use="required" />
<xsd:attribute name="wsdlPortName" type="xsd:string" />
<xsd:attribute name="wsdlServiceName" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="OperationSelectionArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1"
ref="OperationSelection" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OperationSelection">
<xsd:complexType>
<xsd:attribute name="operationName" type="xsd:string"
use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ApplicationTemplateSpec">
<xsd:complexType>
<xsd:attribute name="fileName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<!-- It is set to 12 as it can include file extension (ex: .cbl) -->
<xsd:maxLength value="12" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
<xsd:attribute name="programName" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="CICSDeploymentSpec">
<xsd:complexType>
<xsd:attribute name="fileName" type="xsd:string" use="optional" />
<xsd:attribute name="suppressGeneration" type="xsd:boolean"
use="optional" />
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="uploadWSBind" type="xsd:string"
use="optional" />
<xsd:attribute name="pickupDirectory" type="xsd:string"
use="optional" />
Developing web services and SOA with Enterprise Service Tools 523
<xsd:attribute name="pipeline" type="xsd:string"
use="optional" />
<xsd:attribute name="region" type="xsd:string"
use="optional" />
<xsd:attribute name="userName" type="xsd:string"
use="optional" />
<xsd:attribute name="remote" type="xsd:boolean"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="WSDL2ELSSpec">
<xsd:complexType>
<xsd:attribute name="defaultCharMaxLength" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="32767" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="defaultBase64BinaryLength" type="xsd:positiveInteger"
use="optional" />
<xsd:attribute name="defaultTotalDigits" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="31" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="defaultFractionDigits" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger">
<xsd:maxInclusive value="31" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="defaultDateTimeLength" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="32767" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="fileContainer" type="xsd:string"
use="optional" />
<xsd:attribute name="inlineMaxOccursLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="2147483647" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="inlineStringLengthLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="32767" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="defaultMaxOccursLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="1" />
<xsd:maxInclusive value="134217727" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="languageFileName" type="xsd:string"
use="optional" />
<xsd:attribute name="languageNameLimit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxInclusive value="100" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="suppressCountFields" type="xsd:boolean"
use="optional"/>
<xsd:attribute name="suppressStructureComments" type="xsd:boolean"
use="optional"/>
<xsd:attribute name="suppressPresenceFields" type="xsd:boolean"
use="optional"/>
524 Developer for z/OS: Developing with Db2, CICS, and IMS
<xsd:attribute name="logFileName" type="xsd:string"
use="optional" />
<xsd:attribute name="mappingDirectory" type="xsd:string"
use="optional" />
<xsd:attribute name="metadataFileName" type="xsd:string"
use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="ElementSelectionArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="ElementSelection" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ElementSelection">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="TypeSelectionArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="TypeSelection" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="TypeSelection">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
---------------------------------------------------------------------------------------------------
Related references
Developing web services and SOA with Enterprise Service Tools 525
Note: The generated error information does not generate the last two XML elements listed shown:
The following is a sample XML file generated using the XML DTD previously described.
Element: Description:
FILEREFERENCETABLE This element contains a description of each source file in which a COBOL syntax
has occurred.
FILECOUNT This element specifies the number of files in the FILEREFERENCETABLE element.
FILE This element describes one file in the FILEREFERENCETABLE element.
FILENUMBER This element specifies an integer identifier for the file being described in a FILE
element.
FILENAME This element specifies the location of the file being described in a FILE element.
MESSAGE This element describes a COBOL syntax error that was encountered in the source
file.
MESSAGENUMBER This element contains the message number of the syntax error being described in a
MESSAGE element.
MESSAGETEXT This element contains the message text of the syntax error being described in a
MESSAGE element.
MESSAGELINE This element contains the number of the line in which the syntax error being
described was detected.
MESSAGEFILE This element contains the identifying file number of the COBOL source file in which
the syntax error being described was detected. This number - an integer - is the
identifying file number that was specified for this file in the FILENUMBER element
of the FILE element.
You should be aware of the following features when you use this option:
• The source code generator validates not only the COBOL source code file that you specify, but also any
COBOL copybook files that are included in the COBOL source file that you specify.
• No output file is generated unless a COBOL syntax error is detected.
You should be aware of the following limitations when you use this option:
526 Developer for z/OS: Developing with Db2, CICS, and IMS
• This option is available only for COBOL source code.
• The source code generator records only files that contain COBOL syntax errors. Files that do not contain
COBOL syntax errors are not included in the generated XML structure.
Developing web services and SOA with Enterprise Service Tools 527
– EISService
- targetFileURI
• ItemExclusionArray
• RedefinesArray
• XMLNamesArray
• Operation
• ServiceImplementationSpec
Note: The rest of the elements and properties for interpretive conversion modules will be ignored if
specified.
ll_CC.codepageID
528 Developer for z/OS: Developing with Db2, CICS, and IMS
where:
• ll -> A lowercase two-letter ISO language code
• CC - > An uppercase two-letter ISO country code
• codepageID -> The code page to be used for native DISPLAY and DISPLAY-1 data
When specifying locale and code page information, you must code a valid value for the locale name (ll
CC) and a valid code page (codepageID) that corresponds to the locale name, as shown in Table 132 on
page 529.
The locale in effect determines the code page for compiling COBOL source programs (including
alphanumeric literal values). That is, the code page that is used for compilation is based on the locale
setting at compile time. Thus, the evaluation of literal values in the source program is handled with the
locale in effect at compile time.
The default value for Compile time Locale name is en_US. The default value for the ASCII code page is
IBM-1252.
Note: In Table 132 on page 529 for a given locale name, the last ASCII code page listed in the set is the
default.
Table 132 on page 529 shows the locales that COBOL for Windows supports and the code pages that are
valid for each locale.
The first column, Locale name, shows the valid combinations of ISO language code and ISO country code
(language_COUNTRY) that are supported. The second column show the associated language, and the third
column shows the associated country or area.
The fourth column, ASCII code pages, shows the ASCII code pages that are valid as the code page ID for
the locale with the corresponding language_COUNTRY value.
Table 132. COBOL for Windows Supported Locales and Code Pages
Locale name Language Country or ASCII code pages Language
area group
ar_AA Arabic Arabic IBM-864, IBM-1256 Arabic
Countries
be_BY Byelorussian Belarus IBM-866, IBM-1251 Latin 5
bg_BG Bulgarian Bulgaria IBM-855, IBM-1251 Latin 5
ca_ES Catalan Spain IBM-850, IBM-1252 Latin 1
cs_CZ Czech Czech Republic IBM-852, IBM-1250 Latin 2
da_DK Danish Denmark IBM-437, IBM-850, IBM-1252 Latin 1
de_CH German Switzerland IBM-437, IBM-850, IBM-1252 Latin 1
de_DE German Germany IBM-437, IBM-850, IBM-1252 Latin 1
el_GR Greek Greece IBM-1253 Greek
en_AU English Australia IBM-437, IBM-1252 Latin 1
en_BE English Belgium IBM-850, IBM-1252 Latin 1
en_GB English United Kingdom IBM-437, IBM-850, IBM-1252 Latin 1
en_JP English Japan IBM-437, IBM-850, IBM-1252 Latin 1
en_US English United States IBM-437, IBM-850, IBM-1252 Latin 1
en_ZA English South Africa IBM-437, IBM-1252 Latin 1
es_ES Spanish Spain IBM-437, IBM-850, IBM-1252 Latin 1
Developing web services and SOA with Enterprise Service Tools 529
Table 132. COBOL for Windows Supported Locales and Code Pages (continued)
Locale name Language Country or ASCII code pages Language
area group
fi_FI Finnish Finland IBM-437, IBM-850, IBM-1252 Latin 1
fr_BE French Belgium IBM-437, IBM-850, IBM-1252 Latin 1
fr_CA French Canada IBM-863, IBM-850, IBM-1252 Latin 1
fr_CH French Switzerland IBM-437, IBM-850, IBM-1252 Latin 1
fr_FR French France IBM-437, IBM-850, IBM-1252 Latin 1
hr_HR Croatian Croatia IBM-852, IBM-1250 Latin 2
hu_HU Hungarian Hungary IBM-852, IBM-1250 Latin 2
is_IS Icelandic Iceland IBM-861, IBM-850, IBM-1252 Latin 1
it_CH Italian Switzerland IBM-850, IBM-1252 Latin 1
it_IT Italian Italy IBM-437, IBM-850, IBM-1252 Latin 1
iw_IL Hebrew Israel IBM-862, IBM-1255 Hebrew
ja_JP Japanese Japan IBM-943 Ideographic
languages
lt_LT Lithuanian Lithuania IBM-1257 Lithuanian
lv_LV Latvian Latvia IBM-1257 Latvian
mk_MK Macedonian Macedonia, IBM-855, IBM-1251 Latin 5
nl_BE Dutch Belgium IBM-437, IBM-850, IBM-1252 Latin 1
nl_NL Dutch Netherlands IBM-437, IBM-850, IBM-1252 Latin 1
no_NO Norwegian Norway IBM-437, IBM-850, IBM-1252 Latin 1
pl_PL Polish Poland IBM-852, IBM-1250 Latin 2
pt_BR Portuguese Brazil IBM-850, IBM-1252 Latin 1
pt_PT Portuguese Portugal IBM-860, IBM-850, IBM-1252 Latin 1
ro_RO Romanian Romania IBM-852, IBM-850, IBM-1250 Latin 2
ru_RU Russian Russian IBM-866, IBM-1251 Latin 5
federation
sh_SP Serbian (Latin) Serbia IBM-852, IBM-1250 Latin 2
sk_SK Slovak Slovakia IBM-852, IBM-1250 Latin 2
sl_SL Slovenian Slovenia IBM-852, IBM-1250 Latin 2
sq_AL Albanian Albania IBM-850, IBM-1252 Latin 1
sv_SE Swedish Sweden IBM-437, IBM-850, IBM-1252 Latin 1
th_TH Thai Thailand IBM-874 Thai
tr_TR Turkish Turkey IBM-857, IBM-1254 Turkish
uk_UA Ukranian Ukraine IBM-866, IBM-1251 Latin 5
zh_TW Chinese Taiwan IBM-950 Ideographic
(traditional) languages
530 Developer for z/OS: Developing with Db2, CICS, and IMS
The CICS catalog manager example application
The CICS catalog example application is a working COBOL application that is designed to illustrate best
practice when connecting CICS applications to external clients and servers using Web services for CICS,
and using Web service modules generated by Enterprise Service Tools.
The example is constructed around a simple sales catalog and order processing application, in which the
end user can perform these functions:
• List the items in a catalog.
• Inquire on individual items in the catalog.(inquireSingle)
• Order items from the catalog.
The catalog is implemented as a VSAM file.
Installation of the base catalog manager application is covered in the CICS 5.3 Transaction Server
documentation. A Web client front end is provided with the catalog manager application. Configuration
of the Web client is also described in the CICS 5.3 Transaction Server documentation. The Web client
calls multiple Web Services that are provided by the base catalog example application after it has been
enabled for Web services.
This illustration shows the structure of the base application (for a detailed description of the application
see “Description of the catalog manager application” on page 554).
Developing web services and SOA with Enterprise Service Tools 531
Creating and defining the VSAM data sets
The example application uses two KSDS VSAM data sets to be defined and populated. One data set
contains configuration information for the example application. The other contains the sales catalog.
1. Locate the JCL to create the VSAM data sets.
where
• hlq is a high level qualifier of your choice
• catname is a name of your choice. The name used in the example application as supplied is
EXMPCAT.
The following command defines the configuration file:
532 Developer for z/OS: Developing with Db2, CICS, and IMS
UPDATE(YES)
c) Use the default values for all other attributes.
5. Use the CEDA transaction to create a FILE definition for the configuration file.
a) Enter the following: CEDA DEF FILE(EXMPCONF) G(EXAMPLE).
Alternatively, you can copy the FILE definition from CICS supplied group DFH$EXBS.
b) Enter the following additional attributes:
DSNAME(hlq.EXMPLAPP.EXMPCONF)
ADD(YES)
BROWSE(YES)
DELETE(YES)
READ(YES)
UPDATE(YES)
c) Use the default values for all other attributes.
The Web client front end and one version of the Web service endpoint are supplied as enterprise archives
(EARs) that will run in the following environments:
• WebSphere Application Server Version 5 Release 1 or later
• WebSphere Studio Application Developer Version 5 Release 1 or later with a WebSphere unit test
environment
• WebSphere Studio Enterprise Developer Version 5 Release 1 or later with a WebSphere unit test
environment
Developing web services and SOA with Enterprise Service Tools 533
The second version of the Web service endpoint is supplied as a CICS service provider application
program (DFH0XODE).
CONVERSION 037,1208;
CONVERSION 1208,037;
The shelf directory is used to store the Web service binding files that are associated with WEBSERVICE
resources. Each WEBSERVICE resource is, in turn, associated with a PIPELINE. The shelf directory is
managed by the PIPELINE resource and you should not modify its contents directly. Several PIPELINES
can use the same shelf directory, as CICS ensures a unique directory structure beneath the shelf directory
for each PIPELINE.
The pickup directory is the directory that contains the Web service binding files associated with a
PIPELINE. When a PIPELINE is installed, or in response to a PERFORM PIPELINE SCAN command,
information in the binding files is used to dynamically create the WEBSERVICE and URIMAP definitions
associated with the PIPELINE.
The example application uses /var/cicsts for the shelf directory.
A pipeline will read in an XML pipeline configuration file at install time. It is therefore also useful to define
a directory in which to store these.
The example application uses the CICS-supplied SOAP 1.1 handler to deal with the SOAP envelopes of
inbound and outbound requests. CICS provides sample pipeline configuration files which you can use in
your service provider and service requester.
534 Developer for z/OS: Developing with Db2, CICS, and IMS
More than one WEBSERVICE can share a single PIPELINE, therefore you need define only one pipeline
for the inbound requests of the example application. You must, however, define a second PIPELINE for
the outbound requests as a single PIPELINE cannot be configured to be both a provider and requester
pipeline at the same time.
1. Use the CEDA transaction to create a PIPELINE definition for the service provider.
a) Enter the following: CEDA DEF PIPE(EXPIPE01) G(EXAMPLE).
Alternatively, you can copy the PIPELINE definition from CICS supplied group DFH$EXWS.
b) Enter the following additional attributes:
STATUS(Enabled)
CONFIGFILE(/usr/lpp/cicsts
/samples/pipelines/basicsoap11provider.xml)
SHELF(var/cicsts)
WSDIR(/usr/lpp/cicsts/samples/webservices/wsbind/provider/)
Note: The HFS entries are case sensitive and assume a default CICS HFS install root of /usr/lpp/
cicsts.
2. Use the CEDA transaction to create a PIPELINE definition for the service requester.
a) Enter the following: CEDA DEF PIPE(EXPIPE02) G(EXAMPLE).
Alternatively, you can copy the PIPELINE definition from CICS supplied group DFH$EXWS.
b) Enter the following additional attributes:
STATUS(Enabled)
CONFIGFILE(/usr/lpp/cicsts
/samples/pipelines/basicsoap11requester.xml)
SHELF(var/cicsts)
WSDIR(/usr/lpp/cicsts/samples/webservices/wsbind/requester/)
Note: The HFS entries are case sensitive and assume a default CICS HFS install root of /usr/lpp/
cicsts.
Creating a TCPIPSERVICE
As the client connects to your Web services over an HTTP transport you must define a TCPIPSERVICE to
receive the inbound HTTP traffic.
Use the CEDA transaction to create a TCPIPSERVICE definition to handle inbound HTTP requests.
a) Enter the following: CEDA DEF TCPIPSERVICE(EXMPPPORT) G(EXAMPLE).
Alternatively, you can copy the TCPIPSERVICE definition from CICS supplied group DFH$EXWS.
b) Enter the following additional attributes:
URM(NONE)
PORTNUMBER(port) where port is an unused port number in your CICS system.
PROTOCOL(HTTP)
TRANSACTION(CWXN)
c) Use the default values for all other attributes.
Developing web services and SOA with Enterprise Service Tools 535
Use the following commands:
CEDA INSTALL PIPELINE(EXPIPE01) G(EXAMPLE)
CEDA INSTALL PIPELINE(EXPIPE02) G(EXAMPLE)
When you install each PIPELINE resource, CICS scans the directory specified in the PIPELINE's WSDIR
attribute (the pickup directory). For each Web service binding file in the directory, that is for each file with
the .wsbind suffix, CICS installs a WEBSERVICE and a URIMAP if one does not already exist. Existing
resources are replaced if the information in the binding file is newer than the existing resources.
When the PIPELINE is later disabled and discarded all associated WEBSERVICE and URIMAP resources
will also be discarded.
If you have already installed the PIPELINE, use the PERFORM PIPELINE SCAN command to initiate the
scan of the PIPELINE's pickup directory.
When you have installed the PIPELINEs, the following WEBSERVICEs and their associated URIMAPs will
be installed in your system:
dispatchOrder
dispatchOrderEndpoint
inquireCatalog
inquireSingle
placeOrder
The names of the WEBSERVICEs are derived from the names of the Web service binding files; the
names of the URIMAPs are generated dynamically. You can view the resources with a CEMT INQUIRE
WEBSERVICE command.
The following display shows the names of the PIPELINE, the URIMAP, and the target program that is
associated with each WEBSERVICE.
Note: In this example, there is no URIMAP or target program displayed for WEBSERVICE(dispatchOrder)
because the WEBSERVICE is for an outbound request.
I WEBS
STATUS: RESULTS - OVERTYPE TO MODIFY
Webs(dispatchOrder ) Pip(EXPIPE02)
Ins Dat(20041203)
Webs(dispatchOrderEndpoint ) Pip(EXPIPE01)
Ins Uri(£539140 ) Pro(DFH0XODE) Com Dat(20041203)
Webs(inquireCatalog ) Pip(EXPIPE01)
Ins Uri(£539141 ) Pro(DFH0XCMN) Com Dat(20041203)
Webs(inquireSingle ) Pip(EXPIPE01)
Ins Uri(£539142 ) Pro(DFH0XCMN) Com Dat(20041203)
Webs(placeOrder ) Pip(EXPIPE01)
Ins Uri(£539150 ) Pro(DFH0XCMN) Com Dat(20041203)
Important: If you use RDO to define the WEBSERVICE and URIMAP resources, you must ensure that their
Web service binding files are not in the PIPELINE's pickup directory.
1. Use the CEDA transaction to create a WEBSERVICE definition for the inquire catalog function of the
example application.
a) Enter the following: CEDA DEF WEBSERVICE(EXINQCWS) G(EXAMPLE).
b) Enter the following additional attributes:
536 Developer for z/OS: Developing with Db2, CICS, and IMS
PIPELINE(EXPIPE01)
WSBIND(/usr/lpp/cicsts/samples
/webservices/wsbind/inquireCatalog.wsbind)
2. Repeat the preceding step for each of the following functions of the example application.
WEBSERVICE PIPELINE
Function name attribute WSBIND attribute
Important: If you use RDO to define the WEBSERVICE and URIMAP resources, you must ensure that their
Web service binding files are not in the PIPELINE's pickup directory.
1. Use the CEDA transaction to create a URIMAP definition for the inquire catalog function of the example
application.
a) Enter the following: CEDA DEF URIMAP(INQCURI) G(EXAMPLE).
b) Enter the following additional attributes:
USAGE(PIPELINE)
HOST(*)
PATH(/exampleApp/inquireCatalog)
TCPIPSERVICE(SOAPPORT)
PIPELINE(EXPIPE01)
WEBSERVICE(EXINQCWS)
2. Repeat the preceding step for each of the remaining functions of the example application.
Use the following names for your URIMAPs:
Developing web services and SOA with Enterprise Service Tools 537
Function URIMAP name PATH WEBSERVICE
INQUIRE SINGLE INQSURI /exampleApp/inquireSingle EXINQSWS
ITEM
PLACE ORDER ORDRURI /exampleApp/placeOrder EXORDRWS
DISPATCH ODEPURI /exampleApp/dispatchOrder EXODEPWS
STOCK endpoint
(optional)
b) Enter the following additional attributes, which are the same for all the URIMAPs:
USAGE(PIPELINE)
HOST(*)
TCPIPSERVICE(SOAPPORT)
PIPELINE(EXPIPE01)
The configuration transaction uses mixed case information. You must use a terminal that can handle
mixed case information correctly.
The transaction lets you specify a number of aspects of the example application. These include:
• The overall configuration of the application, such as the use of Web services
• The network addresses used by the Web services components of the application
• The names of resources, such as the file used for the data store
• The names of programs used for each component of the application
The configuration transaction lets you replace CICS-supplied components of the example application with
your own, without restarting the application.
1. Enter the transaction ECFG to start the configuration application.
CICS displays the following screen:
538 Developer for z/OS: Developing with Db2, CICS, and IMS
CONFIGURE CICS EXAMPLE CATALOG APPLICATION
PF 3 END 12 CNCL
Developing web services and SOA with Enterprise Service Tools 539
Outbound WebService URI
If you specified YES in the Outbound WebService field, specify the location of the Web service
that implements the dispatch order function. If you are using the supplied CICS endpoint set this
to: http://myserver:myport/exampleApp/dispatchOrder where myserver and myport
are your CICS server address and port respectively.
The example application displays the page shown in Figure 89 on page 540:
540 Developer for z/OS: Developing with Db2, CICS, and IMS
Figure 90. Configuration Page for the CICS Example Application
3. Enter the new endpoints for the Web service.
There are three endpoints to configure:
Inquire catalog
Inquire item
Place order
a) In the URLs replace the string 'myCicsServer' with the name of the system on which your CICS is
running.
b) Replace the port number '9999' with the port number configured in the TCPIPSERVICE, in the
example this to 30000.
4. Click the SUBMIT button.
The Web application is now ready to run.
Note: The URL that the Web services invoke is stored in an HTTP session. It is therefore necessary to
repeat this configuration step each time a browser is first connected to the client.
Developing web services and SOA with Enterprise Service Tools 541
Running the example application with the BMS interface
The base application can be invoked using its BMS interface.
1. Enter transaction EGUI from a CICS terminal.
F3=EXIT F12=CANCEL
The options on the menu enable you to list the items in the catalog, order an item, or exit the
application.
2. Type 1 and press ENTER to select the LIST ITEMS option.
The application displays a list of items in the catalog.
542 Developer for z/OS: Developing with Db2, CICS, and IMS
CICS EXAMPLE CATALOG APPLICATION - Details of your order
Order Quantity: 5
User Name: CHRISB
Charge Dept: CICSDEV1
F3=EXIT F12=CANCEL
4. If there is sufficient stock to fulfil the order, enter the following information.
a) Complete the ORDER QUANTITY field.
Specify the number of items you want to order.
b) Complete the USERID field.
Enter a 1 to 8-character string. The base application does not check the value that is entered here.
c) Complete the CHARGE DEPT field.
Enter a 1 to 8-character string. The base application does not check the value that is entered here.
5. Press ENTER to submit the order and return to the main menu.
6. Select the EXIT option to end the application.
The example application displays the page shown in Figure 91 on page 544.
Developing web services and SOA with Enterprise Service Tools 543
Figure 91. Welcome Page for the CICS Example Application
2. Click the INQUIRE button.
The example application displays the page shown in Figure 92 on page 544.
544 Developer for z/OS: Developing with Db2, CICS, and IMS
Figure 93. List Items Page for the CICS Example Application
4. Select the item that you want to order.
a) Click the radio button in the Select column for the item you want to order.
b) Click the SUBMIT button.
The example application displays the page shown in Figure 94 on page 546:
Developing web services and SOA with Enterprise Service Tools 545
Figure 94. Order Details Page for the CICS Example Application
5. To place an order, enter the following information.
a) Complete the Quantity field.
Specify the number of items you want to order.
b) Complete the User Name field.
Enter a 1 to 8-character string. The base application does not check the value that is entered here.
c) Complete the Department Name field.
Enter a 1 to 8-character string. The base application does not check the value that is entered here.
d) Click the SUBMIT button.
The example application displays the page shown in Figure 95 on page 546 to confirm that the order
has been placed:
Figure 95. Order Confirmation Page for the CICS Example Application
546 Developer for z/OS: Developing with Db2, CICS, and IMS
Creating and deploying CICS Web services artifacts
This topic and its subtopics describe how to use the Enterprise Service Tools to create the files needed to
deploy the CICS catalog manager example application as a Web service.
Web services in CICS provides an interpretive engine that converts XML data to and from language
structures. The interpretive engine does not support all the data constructs and types in the COBOL
language, making it necessary for the CICS Web services developer to write additional code or a wrapper
program to process unsupported types. The behavior of the interpretive engine is not configurable,
whereas a user may have very specific needs in processing SOAP messages.
A standard interface between CICS combined with a user supplied program that provides XML conversion
to and from language structures is called the "vendor interface". The vendor interface allows users to have
pluggable XML conversion. XML converters generated by Enterprise Service Tools have broader support
for data constructs and types. We recommend using these XML converters with the vendor interface. For
improved debugging, CICS Transaction Server Version 3.1 treats the compiled converters as user code,
which allows debugging should a failure occur. The interpretive engine cannot be debugged or changed by
the user.
New in CICS Transaction Server Version 3.1, is a batch job called DFHLS2WS (Language Structure to
WSDL) which is equivalent to the bottom-up approach of Web services development . Enterprise Service
Tools, used in combination with the vendor interface as a replacement for DFHLS2WS, provides expanded
functionality to the end user. This combination helps a user to enable Web service interface with a COBOL
data type that is not supported by the CICS interpretive conversion engine, generally without requiring the
user to write any additional wrapper conversion program.
Related concepts
Related tasks
WSBind file
The WSBind file is a resource that describes to CICS the specifics of the Web service. For example, it
contains information about what the system should do to convert an input XML document to a COBOL
language structure and what to do to convert the output COBOL data to the output XML document.
Enterprise Service Tools can be used to generate both Vendor and Native WSBind files.
The WSBind file is an EBCDIC binary file, CICS expects the WSBind file to be encoded in the EBCDIC
variant used by the region. The extension of the generated WSBind file is always set to .wsbind.
The WSBind File Viewer can be used to display the contents of the WSBind file.
Developing web services and SOA with Enterprise Service Tools 547
output COBOL data to the output XML document. The driver program manages the communication
between CICS and the XML converters.
WSDL
The WSDL file describes the Web service to the Web service clients. The same wizard in the Enterprise
Service Tools that generates the WSBind file and the vendor conversion programs also generates the
WSDL file.
The WSDL file can also be used by the CICS system to validate messages received and sent by the Web
service. The validation can be turned on and off when the CICS Web service resource is installed or
configured. Validation is useful when you test or debug your Web service. Validation will slow down the
Web service performance and you may want to turn it off in the production version of the Web service.
Note: Make sure that you use the WSDL file, WSBind file, and XML conversion programs that are
generated from the same language source file (and the same wizard session). Do not mix artifacts from
other sources or tools. For example do not combine XML conversion programs generated by the wizard
from the Enterprise Service Tools with a WSDL file or a WSBind file generated by the DFHLS2WS batch job
(part of the CICS Web service assistant tool that is included in CICS Transaction Server version 3.1 and
later).
Related concepts
Related tasks
548 Developer for z/OS: Developing with Db2, CICS, and IMS
a. In the menu bar of the workbench, select Window > Show View > Other. The Show View wizard
opens.
b. In the Show View wizard:
i) Expand General.
ii) Select Navigator.
iii) Click OK.
The Navigator view opens.
2. Start the Enterprise Service Tools Wizard Launchpad:
a. In the Navigator view, right-click the program source file containing the interface data structure for
the program.
b. Select Enable Enterprise Web Service.
The Enterprise Service Tools Wizard Launchpad opens.
3. Launch the Create New Service Interface (bottom-up) wizard:
a. In the Enterprise Service Tools Wizard Launchpad:
i) In the Runtime list box, select Web Services for CICS.
ii) In the Scenario list box, select Create New Service Interface (bottom-up).
iii) In the Conversion type list box, select Compiled XML Conversion.
iv) Click Start.
The Create New Service Interface (bottom-up) wizard opens.
4. On the first page of the wizard (entitled Language Structures):
a. In the Request Language Structure tab, select the high-level language structure that is the input
structure for the application. By default the first structure defined in the program source file is
selected.
b. In the Response Language Structure tab, select the high-level language structure that is the
output structure for the application. Additional structures are allowed to be selected or omitted.
However, by default the first structure defined in the program source file is selected.
c. Click Next.
5. On the second page of the wizard (entitled Generation Options):
a. In the XML Converters tab:
i) In the Specify identification attributes group, verify or change other entries that apply for
your z/OS system (for example, the name of the CICS application program in "Service program
name:" should be correct).
ii) In the Specify character encodings group, verify or change other entries that apply for your
z/OS system.
b. In the WSDL and XSD tab:
i) In the Service Location field, type the Endpoint URI.
Note: The local portion of the URI (excludes server and port) is used as the default for the local
URI in the WSBind (for example, /exampleApp/inquireSingle).
c. Click Next.
6. On the third page of the wizard (entitled Web Services for CICS):
a. In the Basic Options tab:
i) In the Specify targets for WSBind file group:
a) In the input field WSBind file container, specify the folder and subfolder in which you want
the WSBind file to be generated.
Developing web services and SOA with Enterprise Service Tools 549
ii) In the Specify application program properties group, if your CICS program communicates via a
channel.
a) Expand the Program interface list box and select CHANNEL.
b) In the Container name field, type the name of the container.
b. In the Advanced Options tab, specify installation options for the CICS Web service. If you do not
specify these properties you might have to define them at install time during the manual creation of
the Web service definitions in CICS.
c. Click Next.
7. On the fourth page of the wizard (titled File, data set, or member selection):
a. In the XML Converters tab:
i) In the Converter file container field, specify the folder and subfolder in which you want the
converter programs to be created.
ii) In the input field Converter driver file name, type the name of the file in which you want the
converter programs to be generated.
Note: By default, all the converter programs (driver, request converter, and response converter)
are placed in the same file. If you clear the checkbox Generate all to driver, you can specify a
different file to contain each converter program, or you can clear the checkbox that precedes a
converter program's name to cause the wizard not to generate that converter program.
b. In the WSDL and XSD tab:
i) In the WSDL file container field, specify the folder and subfolder in which you want the WSDL
and XSD files to be generated.
ii) In each of the input fields WSDL file name, Request XSD file name, and Request XSD file
name, type the name that you want to use for the file. Clear the checkbox that precedes the
request XSD file name or the response XSD file name to cause the wizard not to generate that
file.
c. Click Finish.
The Create New Service Interface (bottom-up) wizard generates the specified output.
550 Developer for z/OS: Developing with Db2, CICS, and IMS
Setting up a CICS Web services provider PIPELINE
A TCPIPSERVICE resource using the HTTP protocol and listening on the desired port must be created and
installed. First, create a PIPELINE resource that uses the previously created TCPIPRESOURCE. Within the
PIPELINE resource definition, the WSDir or "pickup" directory must be defined which enables auto-install
of Web services directly from WSBind files.
You can find detailed information on setting up a provider type PIPELINE in the CICS 3.1 documentation.
If this completes successfully you should see a new WEBSERVICE resource created by doing a
The name of the WEBSERVICE is derived from the first 31 characters of the WSBind file name. If you do a
you will also see that a URIMAP resource is automatically created. The URIMAP resource maps a local
URI to WEBSERVICE resource. By default full WSDL validation is turned off (for performance reasons). To
turn it on you can do a
and change "novalidation" to "validation". Doing this causes CICS to use the provided WSDL to do full
validation of SOAP requests and responses related to this particular WEBSERVICE resource. The location
of the WSDL that CICS uses for validation is visible when viewing a WEBSERVICE resource. If the WSDL
specified in the WSBind file is not found at the expected location in the filesystem, the WSDL entry in the
WEBSERVICE resource will be empty or blank.
Developing web services and SOA with Enterprise Service Tools 551
Related concepts
Related tasks
Enabling the catalog example for Web services using Developer for z/OS
You can use Enterprise Service Tools to generate XML conversion artifacts that utilize the CICS vendor
interface to provide conversion services of request and response SOAP messages for the catalog manager
COBOL application.
This section describes how to enable one of the functions of the base application as a Web service. This
Web service, named inquireSingle, provides a Web service client with the ability to query individual items
in the catalog.
You can run the Create New Service Interface (bottom-up) wizard against either of these copy books,
keeping in mind that if you choose to go with DFH0XCP1 you should make sure on the first page of
the wizard (entitled Language structures) to select the redefinition CA-INQUIRE-SINGLE REDEFINES
CA-REQUEST-SPECIFIC and all of its child elements.
Note: Filler items are not displayed.
One of the benefits of using Enterprise Service Tools is support for the REDEFINES modifier. You do not
have to factor out your interface definition into separate copy books for each redefinition.
The Create New Service Interface (bottom-up) wizard expects that all imported COBOL language
structures have a level 01 containing element declared. You must add the declaration 01 DFH0XCMN
to the top of whichever copy book you decide to use. The name of the level 01 is important in this case so
that the root element name used by the XML converters matches what is expected by the CICS Web client
for the catalog application.
See “Locating the CICS application source and copy books” on page 548 for how to access the copy books
mentioned in the workspace.
After the source for the copy books is in the workspace, see “Generating the Web services artifacts
conversion artifacts” on page 548 for details on how to generate the XML converters, driver, and WSBind
and WSDL files, using the following inputs to the Create New Service Interface (bottom-up) wizard.
Follow these steps to use the Create New Service Interface (bottom-up) wizard:
1. Verify that the Navigator view is open. If the Navigator view is not open, follow these steps to open the
Navigator view:
a. In the menu bar of the workbench, select Window > Show View > Other. The Show View wizard
opens.
b. In the Show View wizard, expand General, select Navigator, and click OK.
The Navigator view opens.
552 Developer for z/OS: Developing with Db2, CICS, and IMS
2. Start the Enterprise Service Tools Wizard Launchpad:
a. In the Navigator view, right-click DFH0XCP1.cbl.
b. Select Enable Enterprise Web Service.
The Enterprise Service Tools Wizard Launchpad opens.
3. Launch the Create New Service Interface (bottom-up) wizard:
a. In the Enterprise Service Tools Wizard Launchpad, make these selections and click Start:
Runtime: Web Services for CICS
Scenario: Create New Service Interface (bottom-up)
Conversion type: Compiled XML Conversion
The Create New Service Interface (bottom-up) wizard opens.
4. Enter the following values for each page of the wizard. If a value is not specified for a particular input
field or list box selection, then use the default value already displayed for that field or list box.
a. On the Language structures page:
Request language structure: CA-INQUIRE-SINGLE
Response language structure: CA-INQUIRE-SINGLE
b. On the Generation Options XML Converters tab:
Service program name: DFH0XCMN
Request Codpage: Codepage of your CICS system
Host Codepage: Codepage of your CICS system
Response Codepage: Codepage of your CICS system
c. On the Generation Options WSDL and XSD tab Endpoint URI field, specify http://
yourserver:yourport/exampleApp/inquireSingle.
d. On the Web Services for CICS Basic Options tab WSBind file name field, specify
inquireSingle.
e. On the File, data set, or member selection XML Converters tab:
Converter driver file name: DFHXCP4D
Request Converter file name: DFHXCP4I
Response Converter file name: DFHXCP4O
f. On the File, data set, or member selection WSDL and XSD tab WSDL file name field, specify
inquireSingle.
The Create New Service Interface (bottom-up) wizard generates the specified output.
After generating the converters in “Generating Web services artifacts for the inquireSingle Web service”
on page 552, refer to following sections to deploy and install the inquireSingle Web service:
1. To build the converters and deploy the load module to the host system, see “Creating Web service
artifacts for CICS” on page 548.
2. To deploy the WSBind and WSDL files to the "EXPIPE01" PIPELINE WSDir (pickup directory), see
“Deploying the Web service artifacts to CICS” on page 550.
3. To install the new Web service and check if it is in service, see “Deploying the Web service artifacts to
CICS” on page 550.
You can now invoke the inquireSingle Web service from the web client.
Developing web services and SOA with Enterprise Service Tools 553
Combined interface definition DFH0XCP1
This topic contains a listing of the input and output interface definitions from the CICS samples dataset
with the member name DFH0XCP1.
>> 01 DFH0XCMN.
554 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 133. Application Components (continued)
Type Comment
Developing web services and SOA with Enterprise Service Tools 555
Table 133. Application Components (continued)
Type Comment
To ensure that the program logic is simple, the catalog manager performs only limited type checking and
error recovery.
The catalog manager supports a number of operations. Input and output parameters for each operation
are defined in a single data structure, which is passed to and from the program in a COMMAREA.
COMMAREA structures
This topic describes the COMMAREA structures.
556 Developer for z/OS: Developing with Db2, CICS, and IMS
03 CA-RETURN-CODE PIC 9(2).
03 CA-RESPONSE-MESSAGE PIC X(79).
03 CA-REQUEST-SPECIFIC PIC X(911).
* Fields used in Inquire Catalog
03 CA-INQUIRE-REQUEST REDEFINES CA-REQUEST-SPECIFIC.
05 CA-LIST-START-REF PIC 9(4).
05 CA-LAST-ITEM-REF PIC 9(4).
05 CA-ITEM-COUNT PIC 9(3).
05 CA-INQUIRY-RESPONSE-DATA PIC X(900).
05 CA-CAT-ITEM REDEFINES CA-INQUIRY-RESPONSE-DATA
OCCURS 15 TIMES.
07 CA-ITEM-REF PIC 9(4).
07 CA-DESCRIPTION PIC X(40).
07 CA-DEPARTMENT PIC 9(3).
07 CA-COST PIC X(6).
07 IN-STOCK PIC 9(4).
07 ON-ORDER PIC 9(3).
* Fields used in Inquire Single
03 CA-INQUIRE-SINGLE REDEFINES CA-REQUEST-SPECIFIC.
05 CA-ITEM-REF-REQ PIC 9(4).
05 FILLER PIC 9(4).
05 FILLER PIC 9(3).
05 CA-SINGLE-ITEM.
07 CA-SNGL-ITEM-REF PIC 9(4).
07 CA-SNGL-DESCRIPTION PIC X(40).
07 CA-SNGL-DEPARTMENT PIC 9(3).
07 CA-SNGL-COST PIC X(6).
07 IN-SNGL-STOCK PIC 9(4).
07 ON-SNGL-ORDER PIC 9(3).
05 FILLER PIC X(840).
* Fields used in Place Order
03 CA-ORDER-REQUEST REDEFINES CA-REQUEST-SPECIFIC.
05 CA-USERID PIC X(8).
05 CA-CHARGE-DEPT PIC X(8).
05 CA-ITEM-REF-NUMBER PIC 9(4).
05 CA-QUANTITY-REQ PIC 9(3).
05 FILLER PIC X(888).
Return codes
Each operation of the catalog manager can return a number of return codes.
Code Explanation
Type
General 00 Function completed without error
Catalog file 20 Item reference not found
21 Error opening, reading, or ending
browse of catalog file
22 Error updating file
Developing web services and SOA with Enterprise Service Tools 557
Code Explanation
Type
Configuration file 50 Error opening configuration file
51 Data store type was neither STUB
nor VSAM
52 Outbound Web service switch
was neither Y nor N
Remote Web service 30 The EXEC CICS INVOKE
WEBSERVICE command returned
an INVREQ condition
31 The EXEC CICS INVOKE
WEBSERVICE command returned
an NOTFND condition
32 The EXEC CICS INVOKE
WEBSERVICE command returned
a condition other than INVREQ or
NOTFND
Application 97 Insufficient stock to complete
order
98 Order quantity was not a positive
number
99 DFH0XCMN received a
COMMAREA in which the CA-
REQUEST-ID field was not set
to one of the following: 01INQC,
01INQS, or 01ORDR
Input parameters
CA-REQUEST-ID
A string that identifies the operation. For the INQUIRE CATALOG command, the string contains
"01INQC"
CA-LIST-START-REF
The reference number of the first item to be returned.
Output parameters
CA-RETURN-CODE
CA-RESPONSE-MESSAGE
A human readable string, containing "num ITEMS RETURNED" where num is the number of items
returned.
CA-LAST-ITEM-REF
The reference number of the last item returned.
CA-ITEM-COUNT
The number of items returned.
558 Developer for z/OS: Developing with Db2, CICS, and IMS
CA-CAT-ITEM
An array containing the list of catalog items returned. The array has 15 elements; if fewer than 15
items are returned, the remaining array elements contain blanks.
Input parameters
CA-REQUEST-ID
A string that identifies the operation. For the INQUIRE SINGLE ITEM command, the string contains
"01INQS"
CA-ITEM-REF-REQ
The reference number of the item to be returned.
Output parameters
CA-RETURN-CODE
CA-RESPONSE-MESSAGE
A human readable string, containing RETURNED ITEM: REF=item-reference' where item-
reference is the reference number of the returned item.
CA-SINGLE-ITEM
An array containing in its first element the returned catalog item.
Input parameters
CA-REQUEST-ID
A string that identifies the operation. For the PLACE ORDER operation, the string contains '01ORDR'
CA-USERID
An 8-character user ID which the application uses for dispatch and billing.
CA-CHARGE-DEPT
An 8-character department ID which the application uses for dispatch and billing.
CA-ITEM-REF-NUMBER
The reference number of the item to be ordered.
CA-QUANTITY-REQ
The number of items required.
Output parameters
CA-RETURN-CODE
CA-RESPONSE-MESSAGE
A human readable string, containing 'ORDER SUCCESSFULLY PLACED'.
Developing web services and SOA with Enterprise Service Tools 559
DISPATCH STOCK operation
This operation places a call to the stock dispatcher program, which in turn dispatches the order to the
customer.
Input parameters
CA-ORD-REQUEST-ID
A string that identifies the operation. For the DISPATCH ORDER operation, the string contains
'01DSPO'
CA-ORD-USERID
An 8-character user ID which the application uses for dispatch and billing.
CA-ORD-CHARGE-DEPT
An 8-character department ID which the application uses for dispatch and billing.
CA-ORD-ITEM-REF-NUMBER
The reference number of the item to be ordered.
CA-ORD-QUANTITY-REQ
The number of items required.
Output parameters
CA-ORD-RETURN-CODE
Input parameters
CA-ORD-REQUEST-ID
A string that identifies the operation. For the NOTIFY STOCK MANAGER operation, the string contains
'01STKO'
CA-STK-ITEM-REF-NUMBER
The reference number of the item to be ordered.
CA-STK-QUANTITY-REQ
The number of items required.
Output parameters
CA-ORD-RETURN-CODE
Data handler
The data handler provides the interface between the catalog manager and the data store.
560 Developer for z/OS: Developing with Db2, CICS, and IMS
Dispatch manager
The dispatch manager is responsible for dispatching the order to the customer once the order has been
confirmed.
The example application provides two versions of the dispatch manager program:
• The first version is a dummy program that returns a correct response to the caller, but takes no other
action.
• The second version is a Web service requester program that makes a request to the endpoint address
defined in the configuration file.
In the example application, the order dispatcher is a dummy program that returns a correct response
to the caller, but takes no other action. It makes it possible for all configurations of the example Web
services to be operable.
Stock manager
The stock manager is responsible for managing the replenishment of the stock.
In the example program, the stock manager is a dummy program that returns a correct response to the
caller, but takes no other action.
Application configuration
The example application includes a program that lets you configure the base application.
Catalog file
The catalog file is a KSDS VSAM file which contains all information relating to the product inventory.
Developing web services and SOA with Enterprise Service Tools 561
Name COBOL data type Description
WS-ON-ORDER PIC 9(3) Number of items on order
Configuration file
The configuration file is a KSDS VSAM file which contains information used to configure the example
application.
The configuration file is a KSDS VSAM file with 3 distinct records, General Information, Outbound URL,
and Catalog file information, as shown in the following tables:
filler PIC X
DO-OUTBOUND-WS PIC X A character that specifies
whether the dispatch manager is
make an outbound Web service
request. Values are:
'Y'
'N'
filler PIC X
CATMAN-PROG PIC X(8) The name of the catalog manager
program
filler PIC X
DSSTUB-PROG PIC X(8) The name of the dummy data
handler program
filler PIC X
DSVSAM-PROG PIC X(8) The name of the VSAM data
handler program
filler PIC X
ODSTUB-PROG PIC X(8) The name of the dummy order
dispatcher module
filler PIC X
ODWEBS-PROG PIC X(8) The name of the outbound Web
service order dispatcher program
filler PIC X
562 Developer for z/OS: Developing with Db2, CICS, and IMS
Table 135. General information record (continued)
Name COBOL data type Description
STKMAN-PROG PIC X(8) The name of the stock manager
program
filler PIC X(10)
Developing web services and SOA with Enterprise Service Tools 563
564 Developer for z/OS: Developing with Db2, CICS, and IMS
Documentation notices
© International Business Machines Corporation 1992, 2024.
This information was developed for products and services offered in the US. This material might be
available from IBM in other languages. However, you may be required to own a copy of the product or
product version in that language in order to access it.
IBM may not offer the products, services, or features discussed in this document in other countries.
Consult your local IBM representative for information on the products and services currently available in
your area. Any reference to an IBM product, program, or service is not intended to state or imply that
only that IBM product, program, or service may be used. Any functionally equivalent product, program, or
service that does not infringe any IBM intellectual property right may be used instead. However, it is the
user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this
document. The furnishing of this document does not grant you any license to these patents. You can
send license inquiries, in writing, to [email protected].
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. Some jurisdictions do not allow disclaimer of express or implied warranties in
certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in
any manner serve as an endorsement of those websites. The materials at those websites are not part of
the materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without
incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i)
the exchange of information between independently created programs and other programs (including
this one) and (ii) the mutual use of the information which has been exchanged, should contact
[email protected].
Such information may be available, subject to appropriate terms and conditions, including in some cases,
payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by
IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement or any
equivalent agreement between us.
Any performance data and client examples cited are presented for illustrative purposes only. Actual
performance results may vary depending on specific configurations and operating conditions.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
Statements regarding IBM's future direction or intent are subject to change or withdrawal without notice,
and represent goals and objectives only. Such statements should not be relied upon when making
purchasing decisions.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corporation, registered in many jurisdictions worldwide. Other product and service names
might be trademarks of IBM or other companies. A current list of IBM trademarks is available at
"Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.
Applicability
These terms and conditions are in addition to any terms of use for the IBM website.
Personal use
You may reproduce these publications for your personal, noncommercial use provided that all proprietary
notices are preserved. You may not distribute, display or make derivative work of these publications, or
any portion thereof, without the express consent of IBM.
Commercial use
You may reproduce, distribute and display these publications solely within your enterprise provided
that all proprietary notices are preserved. You may not make derivative works of these publications, or
reproduce, distribute or display these publications or any portion thereof outside your enterprise, without
the express consent of IBM.
Rights
Except as expressly granted in this permission, no other permissions, licenses or rights are granted, either
express or implied, to the publications or any information, data, software or other intellectual property
contained therein.
566 Developer for z/OS: Developing with Db2, CICS, and IMS
IBM reserves the right to withdraw the permissions granted herein whenever, in its discretion, the use
of the publications is detrimental to its interest or, as determined by IBM, the above instructions are not
being properly followed.
You may not download, export or re-export this information except in full compliance with all applicable
laws and regulations, including all United States export laws and regulations.
IBM MAKES NO GUARANTEE ABOUT THE CONTENT OF THESE PUBLICATIONS. THE PUBLICATIONS
ARE PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT,
AND FITNESS FOR A PARTICULAR PURPOSE.
Multi-Factor Authentication
Developer for z/OS relies on IBM Explorer for z/OS for multi-factor authentication (MFA) support. For
information about configuring MFA in IBM Explorer for z/OS, see Using Multi-Factor Authentication.
570 Developer for z/OS: Developing with Db2, CICS, and IMS
• Setup superuser IDs or IDs with special security privileges.
For more information about RACF, see the Security Server RACF Security Administrator's Guide,
SA23-2289.