Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
💻 COBOL

COBOL XML GENERATE

Advanced 🕑 15 min read 👁 0 views

COBOL XML GENERATE

XML GENERATE creates XML documents from COBOL data structures.

Syntax

```cobol XML GENERATE xml-document FROM data-structure [COUNT IN byte-count] [WITH ENCODING code-page] [WITH XML-DECLARATION] [WITH ATTRIBUTES] [NAMESPACE IS namespace] [NAME OF item-1 IS tag-1...] [TYPE OF item-1 IS ATTRIBUTE/ELEMENT/CONTENT] [SUPPRESS item-1 WHEN condition] [ON EXCEPTION imperative] [NOT ON EXCEPTION imperative] END-XML. ```

Basic Example

```cobol XML GENERATE WS-XML FROM WS-EMPLOYEE COUNT IN WS-XML-LENGTH END-XML. ```

NAME Clause

Customize tag names: ```cobol NAME OF EMP-ID IS 'employeeId' ```

WITH ATTRIBUTES

Generates attributes instead of child elements for elementary items.

Special Register

XML-CODE contains status after operation (0 = success).

Code Example

       IDENTIFICATION DIVISION.
       PROGRAM-ID. XML-GEN-DEMO.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-EMPLOYEE.
           05 EMP-ID PIC X(5) VALUE 'E0001'.
           05 EMP-NAME PIC X(20) VALUE 'JOHN SMITH'.
           05 EMP-SALARY PIC 9(7)V99 VALUE 50000.00.
       01 WS-XML PIC X(500).
       01 WS-XML-LEN PIC 9(5).
       PROCEDURE DIVISION.
           XML GENERATE WS-XML FROM WS-EMPLOYEE
               COUNT IN WS-XML-LEN
               WITH XML-DECLARATION
               NAME OF EMP-ID IS 'employeeId'
                      EMP-NAME IS 'employeeName'
                      EMP-SALARY IS 'salary'
           END-XML
           IF XML-CODE = 0
               DISPLAY 'XML Length: ' WS-XML-LEN
               DISPLAY WS-XML(1:WS-XML-LEN)
           END-IF
           STOP RUN.