Example:

The following is an example COBOL source program and corresponding PCML generated for this program:

Figure 1. PCML Source Program
 5722WDS V5R4M0 060210 LN  IBM ILE COBOL           TESTLIB/MYPCML         ISERIES1   06/02/15 12:09:25        Page      2
                                     S o u r c e
STMT PL SEQNBR -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN  S COPYNAME  CHG DATE
     1     000100 IDENTIFICATION DIVISION.
     2     000200 PROGRAM-ID.     MYPGM4.
           000300
     3     000400 DATA DIVISION.
     4     000500 WORKING-STORAGE SECTION.
     5     000600 01 RETN-VAL PIC S9(8) USAGE COMP-4.
           000700
     6     000800 LINKAGE SECTION.
     7     000900 01 PARM-LIST.
     8     001000    05 EMPL OCCURS 5 TIMES.
     9     001100      10 NAMES      PIC A(20).
    10     001200      10 ADDRESSES  PIC X(60).
    11     001300      10 PHN-NUM    PIC 9(11) DISPLAY.
    12     001400    05 NUM-1A     PIC S9(5)V9(3)  PACKED-DECIMAL.
    13     001500    05 NUM-2A     PIC 9(5)V9(3)   COMP.
    14     001600    05 TAB-NUM-3A PIC S9(5)V9(3)  COMP OCCURS 10 TIMES.
    15     001700    05 NUM-4A     PIC 9(5)V9(3)   COMP-3.
    16     001800    05 NUM-5A     PIC S9(5)V9(3)  COMP-3.
    17     001900    05 NUM-6A     PIC 9(4)        BINARY.
    18     002000    05 NUM-7A                     COMP-1.
    19     002100    05 NUM-8A                     COMP-2.
    20     002200    05 INTLNAME   PIC N(10)       NATIONAL.
           002300
           002400***************************************************************
           002500* Test PCML for arrays of basic supported types.
           002600***************************************************************
    21     002700 PROCEDURE DIVISION USING BY REFERENCE PARM-LIST
           002800     GIVING    RETN-VAL.
           002900 MAIN-LINE.
    22     003000     MOVE 1 TO RETN-VAL.
    23     003100     DISPLAY "THIS PGM TO BE CALLED BY A JAVA PGM".
    24     003200     STOP RUN.
                           * * * * *   E N D   O F   S O U R C E   * * * * *


The following is an example of PCML that is generated when the program is compiled with options PGMINFO(*PCML) and INFOSTMF('/dirname/mypgm4.pcml') specified on the CRTBNDCBL command:
<pcml version="4.0">

   <!-- COBOL program: MYPCML  -->
   <!-- created: 02/03/21 12:09:25 -->
   <!-- source: TESTLIB/QCBLLESRC(MYPCML) -->
   <programname="MYPCML" path="/QSYS.LIB/TESTLIB.LIB/MYPCML.PGM" returnvalue="integer">

      <struct name="PARM-LIST" usage="inputoutput">

         <struct name="EMPL" usage="inherit" count="5">

            <data name="NAMES" type="char" length="20" usage="inherit">
            <data name="ADDRESSES" type="char" length="60" usage="inherit">
            <data name="PHN-NUM" type="zoned" length="11" precision="0" usage="inherit">
         </struct>
         <data name="NUM-1A" type="packed" length="8" precision="3" usage="inherit">
         <data name="NUM-2A" type="packed" length="8" precision="3" usage="inherit">
         <data name="TAB-NUM-3A" type="packed" length="8" precision="3" count="10"
usage="inherit">
         <data name="NUM-4A" type="packed" length="8" precision="3" usage="inherit">
         <data name="NUM-5A" type="packed" length="8" precision="3" usage="inherit">
         <data name="NUM-6A" type="int" length="2" precision="16" usage="inherit">
         <data name="NUM-7A" type="float" length="4" usage="inherit">
         <data name="NUM-8A" type="float" length="8" usage="inherit">
         <data name="INTLNAME" type="char" length="10" chartype="twobyte" ccsid="13488" usage="inherit">
      </struct>
      <data name="RETN-VAL" type="int" length="4" precision="32" passby="value"
usage="output">
   </program></pcml>