From 6561846d8abf7fceb7677aa9792dda7ee31813e5 Mon Sep 17 00:00:00 2001 From: pathange-s Date: Sat, 3 Dec 2022 00:58:33 +0530 Subject: [PATCH 1/5] adding json and xml processing Signed-off-by: pathange-s --- ...Programming Course #3 - Advanced Topics.md | 194 ++++++++++++++++++ 1 file changed, 194 insertions(+) diff --git a/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md b/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md index 623eec5e..defb114e 100644 --- a/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md +++ b/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md @@ -552,6 +552,200 @@ The result is execution of COBOL program CBLDB21 to read the Db2 table and write 8. Two additional COBOL programs with Db2 API exist, CBLDB22 and CBLDB23 using the same Db2 table as the data source. +\newpage +# COBOL for Web Services + +## How to Parse JSON Documents in COBOL: + +There are numerous scenarios in which we can parse JSON. +### Scenario 1: Parsing JSON documents in normal conditions. +Input: +``` +{"data":{"ver":1,"uid":1234,"txt":"I love learning"}} +``` +COBOL Code: +``` +IDENTIFICATION DIVISION. + PROGRAM-ID. SCENE1. +DATA DIVISION. + WORKING-STORAGE SECTION. + 01 DATA. + 02 VER USAGE COMP-1. + 02 UID PIC 9(4). + 02 TXT PIC X(32). + LINKAGE SECTION. + 1 LK-JSON-TEXT PIC X(128). + PROCEDURE DIVISION USING LK-JSON-TEXT. + JSON PARSE JSON-TEXT INTO DATA + END-JSON. + IF VER EQUAL TO 1 THEN + DISPLAY "MESSAGE ID IS " UID + DISPLAY "MESSAGE TEXT IS '" TXT "'". + GOBACK. + END PROGRAM SCENE1. + ``` + +Output: +``` +Message ID is 1234 +Message text is ‘I love learning +``` + +### Scenario 2: When JSON names are not valid COBOL data names +JSON names can contain more characters and character types than COBOL data names. To help match JSON names with COBOL data names, we can use the NAME phrase in the JSON PARSE statement. +Input: +``` +{“num+”: 9978} +``` + +COBOL Code: +``` +IDENTIFICATION DIVISION. + PROGRAM-ID. Scene2. +DATA DIVISION. + WORKING-STORAGE SECTION. + 01 WS-INP-DATA pic 9(4). + LINKAGE SECTION. + 01 LK-INP-JSON pic X(128). +PROCEDURE DIVISION using LK-INP-JSON. + Json parse LK-INP-JSON into WS-INP-DATA + name of WS-INP-DATA is "num+" + end-json. + Display "Input Data is " WS-INP-DATA. + Goback. + End program Scene2. + ``` + +The output of the above code will be shown below. +Output: +Input Data is 9978 +When processing the example above, the following issues require attention: +The CCSID of the active CODEPAGE compiler option is assumed to have been used to encode characters that appear in literal-1 on the NAME phrase. +In contrast to the case-insensitive matching of COBOL data names, characters appearing in literal-1 will be matched to the JSON names. +The NAME phrase as a whole cannot produce an unclear name specification. + +### Scenario 3: When we want to override the value parsed by JSON. +We may not always require specific data items related to the receiver to be populated by the JSON PARSE statement. To avoid this, we usually use the SUPPRESS phrase of the JSON PARSE statement to tell the parser to ignore the item and thus override the input value. +Input: +``` +{"data":{"sno":5,"rollnum":10,"name":"Sam"}} +``` + +COBOL Code: +``` +IDENTIFICATION DIVISION. + PROGRAM-ID. Scene3. +DATA DIVISION. + WORKING-STORAGE SECTION. + 01 DATA. + 02 SNO usage comp-1. + 02 ROLLNUM pic 9(4). + 02 NAME pic x(32). + LINKAGE SECTION. + 01 LK-INP-JSON pic X(128). +PROCEDURE DIVISION using LK-INP-JSON. + Move 1122 to ROLLNUM. + Json parse LK-INP-JSON INTO data + SUPPRESS rollnum + end-json. + If sno equal to 5 then + display "Roll number is " rollnum + display "Name is '" name "'". + Goback. + End program Scene3. + ``` + +Output: +``` +Roll Number is 1122 +Name is Sam’ +``` + +The data item Rollnum was assigned to the value 1122 in the programme, and its assignment was suppressed in the JSON PARSE statement using the SUPPRESS Phrase. As we can see, rather than being populated with the value 10, the data item uid retained its value of 1122. + +### Scenario 4: When we want to handle the input data in an array. +JSON arrays can be parsed to generate COBOL data description entries with the OCCURS or OCCURS DEPENDING ON clause. Consider the following example, in which a JSON array named "data" is broken down into a COBOL data item of the same name. +Input: +``` +{"emp-data":{"data":[{"sno":10,"id":100,"txt":"Jenny"},{"sno":11,"id":101,"txt":"Sai"},{"sno":12,"id":102,"txt":"Kevin"}]}} +``` +COBOL Code: +``` +IDENTIFICATION DIVISION. + PROGRAM-ID. Scene4. +DATA DIVISION. + WORKING-STORAGE SECTION. + 01 WS-EMP-DATA. + 02 WS-DATA OCCURS 3 times. + 04 WS-SNO usage comp-1. + 04 WS-ID pic 9(4). + 04 WS-NAME pic x(32). + LINKAGE SECTION. + 01 LK-JSON-TEXT pic x(128). + PROCEDURE DIVISION using LK-JSON-TEXT. + Json parse LK-JSON-TEXT into WS-EMP-DATA + end-json. + If WS-SNO(1) equal to 10 then + Display "EMP ID is " WS-ID(1) + Display "Name is '" WS-NAME(1) "'". + If WS-SNO(2) equal to 11 then + Display " EMP ID is " WS-ID(2) + Display " Name is '" WS-NAME(2) "'". + If WS-SNO(3) equal to 12 then + Display " EMP ID is " WS-ID(3) + Display " Name is '" WS-NAME(3) "'". + Goback. + END PROGRAM Scene4. + ``` + + + +Output: +``` +EMP ID is 0100 +Name is ‘Jenny’ +EMP ID is 0101 +Name is ‘Sai +EMP ID is 0102 +Name is ‘Kevin +Invalid Message Version, ID is 0001 +Message count: 3 +``` + +Because the JSON text lacks a fourth table entry for the msg table, the JSON PARSE statement does not assign subordinate data items of table element data(4). Furthermore, before the JSON PARSE statement is executed, the OCCURS DEPENDING ON object, defined in this example as n, must not be subordinate to data item some-data and must be assigned a value. The value of the object OCCURS DEPENDING ON represents the maximum number of table elements that the JSON PARSE statement can populate. If the JSON text contains more table elements than the value of the OCCURS DEPENDING ON object, the table elements are ignored, and the condition is recorded in the JSON-STATUS special register. +The OCCURS DEPENDING ON object is not set or updated by the JSON PARSE statement. + +## How to Produce JSON Output: + +To express COBOL data items as JSON text, use the JSON GENERATE statement, which identifies the source and output data items. +JSON text can also be used to represent a resource for a web service interface, and it is encoded in UTF-8 for alphanumeric output data items and UTF-16 for national output data items. + +COBOL Code: +``` +IDENTIFICATION DIVISION. + PROGRAM-ID. prodj. +DATA DIVISION. + WORKING-STORAGE SECTION. + 01 WS-TEXT. + 02 WS-MSG pic x(80) value 'Hello, World!'. + 01 WS-Jtext national pic n(80). + 01 ws-i binary pic 99. + +PROCEDURE DIVISION. +JSON generate WS-Jtext from WS-TEXT count in ws-i + on exception + Display 'JSON generation error: ' json-code + not on exception + Display function display-of(WS-Jtext(1:ws-i)) +End-JSON. +End program prodj. +Output: +{"WS-TEXT":{"WS-MSG":"Hello, World!"}} +``` + + + + \newpage # COBOL Program Compilation From a19a963f2c8fcb938c50e27056661ee86dd3bb32 Mon Sep 17 00:00:00 2001 From: pathange-s Date: Sun, 4 Dec 2022 01:13:48 +0530 Subject: [PATCH 2/5] adding xml processing Signed-off-by: Sainath Rao Signed-off-by: pathange-s --- ...Programming Course #3 - Advanced Topics.md | 562 ++++++++++++++++++ .../Images/xml_flow.png | Bin 0 -> 51111 bytes 2 files changed, 562 insertions(+) create mode 100644 COBOL Programming Course #3 - Advanced Topics/Images/xml_flow.png diff --git a/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md b/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md index defb114e..849ec90c 100644 --- a/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md +++ b/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md @@ -743,8 +743,570 @@ Output: {"WS-TEXT":{"WS-MSG":"Hello, World!"}} ``` +## Processing XML input + +The XML PARSE statement can be used in a COBOL program to handle XML input. The COBOL language interface to either of two fast XML parsers is the XML PARSE statement. You choose the best parser for your application using the XMLPARSE compiler option: +The z/OS XML System Services parser is selected by XMLPARSE(XMLSS). +This option offers improved features like namespace processing, XML document validation in accordance with an XML schema, and text fragment conversion to national character representation (Unicode UTF-16). + The COBOL library's integrated XML parser is chosen by XMLPARSE(COMPAT). The XML parser and a processing procedure where you handle parser events exchange control as you process XML input. +To process XML input, use the COBOL facilities listed below: +the XML PARSE statement, which identifies the source XML document, the processing method, and the start of XML parsing. +The XML PARSE statement's additional optional clauses can be used as well: + ENCODING to define the XML document's encoding + VALIDATING to specify the XML schema that the XML document should be validated against + Receiving and processing XML events and any associated document fragments before returning them to the parser for further processing is the processing procedure used to control parsing. + Unique registers for information exchange between the parser and the processing method: + XML-CODE to learn how well the XML parsing is going and, in some cases, to return data to the parser + XML-EVENT to ask the parser for the names of each XML event + A method for quickly determining whether an XML event is complete is provided by XML-INFORMATION. + For XML document fragments that are returned as national + character data, use XML-NTEXT. + Receiving document fragments as alphanumeric data via XML-TEXT + To receive a namespace identifier for an element name or attribute name that is in a namespace, use the tags XML-NAMESPACE or XML-NNAMESPACE. + Use the tags XML-NAMESPACE-PREFIX or XML-NNAMESPACE-PREFIX to + request a namespace prefix for an NAMESPACE-DECLARATION XML event, an element name, or an attribute name. + The XML PARSE statement's optional RETURNING NATIONAL clause can be used to + specify that alphanumeric data items containing XML document fragments should be converted to UTF-16 and then processed using the national special registers XML- NTEXT, XML-NNAMESPACE, and XML-NNAMESPACE-PREFIX. +Only when XMLPARSE(XMLSS) is active can you use the XML PARSE statement's ENCODING, VALIDATING, and RETURNING NATIONAL phrases. + +### XML parser in COBOL +With the help of COBOL's event-based interface, you can parse XML files and convert them into COBOL data structures. +The processing procedure acts on the fragments that the XML parser finds in the source XML document. The fragments are linked to specific XML events, and you must program the processing method to address each individual XML event. +The parsing process is started and the parser's processing protocol is established upon execution of the XML PARSE statement. For each XML event it encounters while analysing the document, the parser hands off control to the processing procedure. +The processing procedure automatically hands back control to the parser after processing the event. The parser continues to examine the XML document after each typical return from the processing procedure in order to report the subsequent event. During this operation, control alternates between the parser and the processing method. +A high-level view of the fundamental control transfer between the parser and your COBOL program is provided in the following figure. +// +![](Images/xml_flow.png) + +Parsing typically goes on until the entire XML document has been processed. + +### Accessing XML documents +You must first make the XML document accessible to your program in order to parse it using an XML PARSE statement. An XML document can typically be obtained by reading it from a file, a WebSphere® MQ message, a CICS® transient queue or communication area, an IMS message processing queue, or a transient queue or communication area. +Use standard COBOL facilities to insert the XML file into a data item in your program if the XML document you want to parse is stored in a file: + a FILE-CONTROL entry for your program's definition of the file. + a file-opening OPEN statement. + To read every record from the file into a data item, use READ statements (either an elementary item of category alphanumeric or national, or an alphanumeric or national group). Either the LOCAL-STORAGE SECTION or the WORKING-STORAGE SECTION can define the data item. + Optionally, use the STRING statement to handle variable-length records, remove extraneous blanks, and string together all of the individual records into a single continuous stream. +You can parse an XML document that is stored in a file if the XMLPARSE(XMLSS) option is enabled by sending the parser one record (or text segment) from the file at a time. The ability to parse very large XML documents is helpful. + +### Parsing XML documents + +#### Writing procedures to process XML +Include code statements to handle XML events in your processing procedure. +The parser sends data to the processing procedure in a number of specialised registers for each event it encounters. Utilize the information in those unique registers to control and populate COBOL data structures. +To find out which event the parser sent to the processing procedure, look in the XML-EVENT special register. +An event name, like "START-OF-ELEMENT," is contained in the XML-EVENT tag. +From the XML-TEXT or XML-NTEXT special register, retrieve the text related to the event. +If the XMLPARSE(XMLSS) option is enabled, you can check the special registers XML- NAMESPACE or XML-NNAMESPACE to see if there is a namespace identifier, if any, associated with the XML event, and XML-NAMESPACE-PREFIX or XML-NNAMESPACE- PREFIX to see if there is a prefix. +The XML special registers are implicitly defined as GLOBAL in the outermost program when used in nested programs. +By following this following link you can check table containing more information about the XML special registers: + +https://www.ibm.com/docs/en/cobol-zos/6.4?topic=documents-writing-procedures-process- xml#:~:text=Table%201.%20Special%20registers%20used%20by%20the%20XML%20parser + +Restrictions: + An XML PARSE statement may not be executed by a processing function directly. However, if a processing procedure uses an INVOKE or CALL statement to transfer control to a method or outermost program, the target method or program can choose to execute the same or a different XML PARSE statement. Using a program with several threads, you can also run the same XML statement or several different XML statements at once. + Any GOBACK or EXIT PROGRAM statement cannot be executed within the scope of the processing procedure, with the exception of returning control from a method or program to which control was transferred by an INVOKE or CALL statement, respectively, that is executed within the scope of the prfocessing procedure. + To stop a run unit, code a STOP RUN statement in a processing routine. + +Taking an Example of parsing an XML with an undeclared namespace prefix: + +Input: + +```
+ Book-Signing Event + + + '. + 02 PIC X(19) VALUE ''. + 02 PIC X(20) VALUE ''. + 02 PIC X(40) VALUE ''. + 02 PIC X(02) VALUE 'C1'. + 02 PIC X(41) VALUE ''. + 02 PIC X(24) VALUE 'C2C3'. + 02 PIC X(32) VALUE ''. + PROCEDURE DIVISION. + MAIN. + DISPLAY 'XML DOCUMENT: ' WS-DATA + DISPLAY ' ' + XML PARSE WS-DATA PROCESSING PROCEDURE H + GOBACK. + IF XML-EVENT = 'EXCEPTION' + DISPLAY ' ' + END-IF + DISPLAY XML-EVENT XML-CODE '|' XML-TEXT '|' + XML-NAMESPACE-PREFIX '|' + XML-NAMESPACE '|' + IF XML-EVENT = 'EXCEPTION' AND XML-CODE = 264192 OR 264193 + MOVE 0 TO XML-CODE + END-IF. + End program XML1. +``` + +Now let’s take an example of parsing an XML document one segment at a time: + +Input: + +``` + +I Love COBOL + +``` +COBOL Program: +```IDENTIFICATION DIVISION. + PROGRAM-ID. XML2. + + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + + FILE-CONTROL. + SELECT INPUT-XML + ASSIGN TO INPUT-FILE + FILE STATUS IS IN-FILE-STAT. + DATA DIVISION. + FILE SECTION. + + FD INPUT-XML + RECORD IS VARYING FROM 1 TO 255 DEPENDING ON REC-LENGTH + RECORDING MODE V. + 01 WS-FDREC. + 02 PIC X OCCURS 1 TO 255 DEPENDING ON REC-LENGTH. + + WORKING-STORAGE SECTION. + + 01 EVENT-NUMBER COMP PIC 99. + 01 REC-LENGTH COMP-5 PIC 9(4). + 01 IN-FILE-STAT PIC 99. + + PROCEDURE DIVISION. + OPEN INPUT INPUT-XML + + IF IN-FILE-STAT NOT = 0 + DISPLAY 'OPEN FAILED, FILE STATUS: ' IN-FILE-STAT + GOBACK + END-IF + + READ INPUT-XML + + IF IN-FILE-STAT NOT = 0 + DISPLAY 'READ FAILED, FILE STATUS: ' IN-FILE-STAT + GOBACK + END-IF + + MOVE 0 TO EVENT-NUMBER + DISPLAY 'STARTING WITH: ' WS-FDREC + DISPLAY 'EVENT NUMBER AND NAME CONTENT OF XML-TEXT' + XML PARSE FDREC PROCESSING PROCEDURE HANDLE-PARSE-EVENTS + CLOSE INPUT-XML + GOBACK. + HANDLE-PARSE-EVENTS. + ADD 1 TO EVENT-NUMBER + DISPLAY ' ' EVENT-NUMBER ': ' XML-EVENT '{' XML-TEXT '}' + EVALUATE XML-EVENT + WHEN 'END-OF-INPUT' + READ INPUT-XML + EVALUATE IN-FILE-STAT + WHEN 0 + MOVE 1 TO XML-CODE + DISPLAY 'CONTINUING WITH: ' FDREC + WHEN 10 + DISPLAY 'AT EOF; NO MORE INPUT.' + WHEN OTHER + DISPLAY 'READ FAILED, FILE STATUS:' IN-FILE-STAT + GOBACK + END-EVALUATE + WHEN OTHER + CONTINUE + END-EVALUATE. + END PROGRAM XML2. + ``` + +Output: +```Starting with: +Event number and name Content of XML-TEXT + 01: START-OF-DOCUMENT {} + 02: VERSION-INFORMATION {1.0} + 03: END-OF-INPUT {} +Continuing with: + 04: START-OF-ELEMENT {Tagline} + 05: END-OF-INPUT {} +Continuing with: I Love COBOL + 06: CONTENT-CHARACTERS { I Love COBOL} + 07: END-OF-INPUT {} +Continuing with: + 08: CONTENT-CHARACTERS {} + 09: END-OF-ELEMENT {Tagline} + 10: END-OF-DOCUMENT {} + ``` + +The XML PARSE statement is used by this program to pass a record from the XML document that it has read from file INPUT-FILE to the parser. Each XML event's processing procedure is given control by the parser after it has processed the XML text. Once each event has been handled, the processing procedure passes control back to the parser. +The parser changes XML-CODE to zero, sets XML-EVENT to END-OF-INPUT, and hands control to the processing procedure at the end of the segment. After setting XML-CODE to 1, the processing procedure exits the parser and reads the following XML record into the parse data item. Up until the READ statement returns the end-of-file status code, the processing procedure and the parser continue to communicate. The processing procedure returns to the parser with XML-CODE still set to zero to indicate +the end of segment processing. + +#### Transforming XML text to COBOL data items +When transferring XML data to a COBOL data item, special techniques must be used because XML data has neither a fixed length nor a fixed format. +Choose whether the XML data belongs at the right end of the COBOL data item or the left end (the default) for alphanumeric items. In the item's definition, include the JUSTIFIED RIGHT clause if the data should go at the right end. +Pay special attention to numerical XML values, especially "decorated" dollar amounts like "$1,234.00" or "$1234". If used as COBOL sending fields, these two strings, which may have the same meaning in XML, require entirely different definitions. +When converting XML data to COBOL data items, use one of the following methods: + Code a MOVE to an alphanumeric item that you redefine appropriately as a numeric-edited item if the format is reasonably regular. Then, make the last move to a numeric (operational) item by moving away from the numeric-edited item and subsequently de-editing it. (In a standard format, + + The number of digits after the decimal point would be the same, there would be a comma to separate values greater than 999, and so on.) + Use the following intrinsic functions for alphanumeric XML data for simplicity and significantly increased flexibility: + XML data that contains plain numbers can be extracted and decoded using NUMVAL. + To extract and decode numerical values from XML data that depicts monetary amounts, use NUMVAL-C. +Utilizing these features, though, degrades performance. + +Encoding of XML documents: +A supported code page must be used to encrypt XML documents. +XML documents must be encoded in Unicode UTF-16 big-endian format, CCSID 1200, when created in or parsed from national data items. +A single-byte EBCDIC encoding, such as Unicode UTF-8 (CCSID 1208), or one of the single- byte EBCDIC encodings listed in the table below, must be used to encode documents created from alphanumeric data items for XML GENERATE statements. Any CCSID from that table may be used in the XML GENERATE statement's ENCODING phrase. +Documents in alphanumeric data items must be encoded as follows for XML PARSE statements: + When XMLPARSE(XMLSS) is active: + If the XML PARSE statement specifies the RETURNING NATIONAL phrase, it should be in any EBCDIC or ASCII encoding that z/OS® Unicode Services supports for conversion to UTF-16. + If the XML PARSE statement does not specify the RETURNING NATIONAL phrase, use UTF-8 (CCSID 1208) or one of the single-byte EBCDIC encodings shown in the table below. + When XMLPARSE(COMPAT) is active: the table below lists the single-byte EBCDIC encodings.If XMLPARSE(COMPAT) is in effect: in one of the single-byte EBCDIC encodings listed in the table below +You can use any supported CCSID (as described above for XML PARSE) in the ENCODING phrase of the XML PARSE statement if XMLPARSE(XMLSS) is active. + +For coded character sets for XML documents table, please visit: https://www.ibm.com/docs/en/cobol-zos/6.4?topic=input-encoding-xml- documents#:~:text=Table%201.%20Coded%20character%20sets%20for%20XML%20document s + +### Handling XML PARSE exceptions + +When an anomaly or error is encountered by the XML parser while parsing, it signals an XML exception event and sets an exception code in the XML-CODE special register. Depending on how the XMLPARSE compiler option is set, different exception codes can occur and different actions can be taken in response to them. +For XMLPARSE(XMLSS): +Return code and reason code: The return code and reason code produced by the parser are combined to create the exception code. Both the return code and the reason code are binary values that are half a word long. These two values are concatenated to create the value in XML-CODE. +If you parse the document without performing validation, the return code is hexadecimal 000C (XRC NOT WELL FORMED), and the reason code is hexadecimal 3035 (XRSN ENDTAG NAME MISMATCH). +In the XML-CODE special register, the processing procedure receives the concatenation of these two values, which is represented by the hexadecimal value 000C3035. +The values returned in XML-CODE for any well-formedness errors when parsing a document with validation are different from the values returned for the same errors when parsing a document without validation. For any validation error, the z/OS XML System Services parser generates the return code 24. (hexadecimal 0018). +See the related reference about exceptions with XMLPARSE(XMLSS) in effect for more details regarding the return codes and reason codes that may be generated. +Processing procedures cannot manage exception events or make parsing resume if XMLPARSE(XMLSS) is active. The parser does not signal any additional events once a processing procedure has returned to it from an exception event. The XML PARSE statement's ON EXCEPTION phrase specifies the statement to which the parser passes control. Control is transferred to the end of the XML PARSE statement if you did not code an ON EXCEPTION phrase. The initial exception code set by the parser is contained in XML-CODE. +Control is transferred to the statement specified in the NOT ON EXCEPTION phrase if no exceptions are encountered while parsing. Control is passed to the end of the XML PARSE statement if you did not code a NOT ON EXCEPTION phrase. XML-CODE has no content. + +### Terminating XML parsing +By setting XML-CODE to -1 in your processing procedure before the procedure returns to the parser from any normal XML event, you can immediately stop parsing without processing any remaining XML text (that is, any event other than EXCEPTION). This technique can be used when the processing procedure has examined enough of the document or has discovered an irregularity in the document that prevents further meaningful processing. When you stop parsing in this manner, the parser does not signal any additional XML events, including the exception event. If the ON EXCEPTION phrase of the XML PARSE statement was specified, control is transferred to that phrase. By testing whether XML-CODE contains -1 in the ON EXCEPTION phrase's imperative statement, you can determine whether parsing was intentionally terminated. If the ON EXCEPTION phrase is not specified, control is transferred to the end of the XML PARSE statement. If the XMLPARSE(COMPAT) compiler option is enabled, you can also stop parsing after any XML EXCEPTION event by returning to the parser without changing the value in XML-CODE. The result is similar to that of intentional termination, except that the parser returns to the XML PARSE statement with the original exception code in XML-CODE. If the XMLPARSE(XMLSS) option is enabled, parsing always ends when an exception occurs. + +## Producing XML output +Using the XML GENERATE statement, a COBOL program can generate XML output. The source and the output data items are specified in the XML GENERATE statement. +Optionally, we can create an XML declaration for the document and force the expression of eligible source data items as attributes rather than as elements in the output. +The XML-CODE special register can be used to check on the progress of XML generation. +Following the conversion of COBOL data items to XML, the output XML can be used in a variety of ways, including deployment in a web service, transmission as a message to MQ(Pipeline), and conversion to a CICS(frontend) communication area. + +The XML generation example is shown below: + +There are several COBOL programs because we are calling one another within the program. +```IDENTIFICATION DIVISION. + PROGRAM-ID. OPXML. + +DATA DIVISION. + WORKING-STORAGE SECTION. + + 01 WS-NUMBERS PIC 99 GLOBAL. + 01 PURCHASEORDER GLOBAL. + 05 ORDERDATE PIC X(10). + 05 SHIPTO. + 10 COUNTRY PIC X(5) VALUE 'INDIA'. + 10 NAME PIC X(30). + 10 STREET PIC X(30). + 10 CITY PIC X(30). + 10 STATE PIC XX. + 10 ZIP PIC X(10). + 05 BILLTO. + 10 COUNTRY PIC X(5) VALUE 'INDIA'. + 10 NAME PIC X(30). + 10 STREET PIC X(30). + 10 CITY PIC X(30). + 10 STATE PIC XX. + 10 ZIP PIC X(10). + 05 ORDERCOMMENT PIC X(80). + 05 ITEMS OCCURS 0 TO 20 TIMES DEPENDING ON WS-NUMBERS. + 10 ITEM. + 15 PARTNUM PIC X(6). + 15 PRODUCTNAME PIC X(50). + 15 QUANTITY PIC 9(2). + 15 PRICE PIC 9(3)V99. + 15 SHIPDATE PIC X(10). + 15 ITEMCOMMENT PIC X(40). + 01 NUMCHARS COMP PIC 9(3). + 01 XMLPO PIC X(999). + +PROCEDURE DIVISION. + + MOVE 20 TO WS-NUMBERS + MOVE SPACES TO PURCHASEORDER + + MOVE '2022-11-30' TO ORDERDATE + + MOVE 'US' TO COUNTRY OF SHIPTO + MOVE 'JENNY' TO NAME OF SHIPTO + MOVE '123 STREET ' TO STREET OF SHIPTO + MOVE 'BOSTON' TO CITY OF SHIPTO + MOVE ‘STATE A' TO STATE OF SHIPTO + MOVE '12345' TO ZIP OF SHIPTO + + MOVE 'INDIA' TO COUNTRY OF BILLTO + MOVE 'SAI' TO NAME OF BILLTO + MOVE '123 STREET ' TO STREET OF BILLTO + MOVE 'Delhi' TO CITY OF BILLTO + MOVE ‘UK' TO STATE OF BILLTO + MOVE '12346' TO ZIP OF BILLTO + MOVE ‘PLEASE SHIP ASAP' TO ORDERCOMMENT + + MOVE 0 TO WS-NUMBERS + + CALL 'ADDITEMONE' + CALL 'ADDITEMSECOND' + + MOVE SPACE TO XMLPO + XML GENERATE XMLPO FROM PURCHASEORDER COUNT IN NUMCHARS + WITH XML-DECLARATION WITH ATTRIBUTES + NAMESPACE 'HTTP://WWW.SAMPLE.COM' NAMESPACE-PREFIX 'PO' + CALL 'SECONDP' USING XMLPO VALUE NUMCHARS + GOBACK. + +IDENTIFICATION DIVISION. + PROGRAM-ID. 'ADDITEMONE'. + +PROCEDURE DIVISION. + ADD 1 TO WS-NUMBERS + MOVE '123-DD' TO PARTNUM(WS-NUMBERS) + MOVE 'TSHIRT' TO PRODUCTNAME(WS-NUMBERS) + MOVE 1 TO QUANTITY(WS-NUMBERS) + MOVE 148.95 TO PRICE(WS-NUMBERS) + MOVE 'CONFIRM’ TO ITEMCOMMENT(WS-NUMBERS) + GOBACK. +END PROGRAM 'ADDITEMONE'. + + + + +IDENTIFICATION DIVISION. + PROGRAM-ID. 'ADDITEMSECOND'. + +PROCEDURE DIVISION. + ADD 1 TO WS-NUMBERS + MOVE '926-AA' TO PARTNUM(WS-NUMBERS) + MOVE 'PANT' TO PRODUCTNAME(WS-NUMBERS) + MOVE 1 TO QUANTITY(WS-NUMBERS) + MOVE 39.98 TO PRICE(WS-NUMBERS) + MOVE '2022-11-30' TO SHIPDATE(WS-NUMBERS) + GOBACK. +END PROGRAM 'ADDITEMSECOND'. + +END PROGRAM OPXML. + +PROCESS XMLPARSE(XMLSS), CODEPAGE(37) +IDENTIFICATION DIVISION. + PROGRAM-ID. SECONDP. +DATA DIVISION. + WORKING-STORAGE SECTION. + 01 PRETTYPRINT. + 05 POSE PIC 999. + 05 POSD PIC 999. + 05 DEPTH PIC 99. + 05 INX PIC 999. + 05 ELEMENTNAME PIC X(30). + 05 INDENT PIC X(40). + 05 BUFFER PIC X(998). + 05 LASTITEM PIC 9. + 88 UNKNOWN VALUE 0. + 88 XML-DECLARATION VALUE 1. + 88 ELEMENT VALUE 2. + 88 ATTRIBUTE VALUE 3. + 88 CHARCONTENT VALUE 4. + LINKAGE SECTION. + 1 DOC. + 2 PIC X OCCURS 16384 TIMES DEPENDING ON LEN. + 1 LEN COMP-5 PIC 9(9). +PROCEDURE DIVISION USING DOC VALUE LEN. + M. + MOVE SPACE TO PRETTYPRINT + MOVE 0 TO DEPTH + MOVE 1 TO POSD POSE + XML PARSE DOC PROCESSING PROCEDURE P + GOBACK + . + P. + EVALUATE XML-EVENT + WHEN 'VERSION-INFORMATION' + STRING '' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + SET UNKNOWN TO TRUE + PERFORM PRINTLINE + MOVE 1 TO POSD + WHEN ELEMENT + STRING '>' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + WHEN ATTRIBUTE + STRING '">' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + END-EVALUATE + IF ELEMENTNAME NOT = SPACE + PERFORM PRINTLINE + END-IF + MOVE XML-TEXT TO ELEMENTNAME + ADD 1 TO DEPTH + MOVE 1 TO POSE + SET ELEMENT TO TRUE + IF XML-NAMESPACE-PREFIX = SPACE + STRING '<' XML-TEXT DELIMITED BY SIZE + INTO BUFFER WITH POINTER POSE + ELSE + STRING '<' XML-NAMESPACE-PREFIX ':' XML-TEXT + DELIMITED BY SIZE INTO BUFFER WITH POINTER POSE + END-IF + MOVE POSE TO POSD + WHEN 'ATTRIBUTE-NAME' + IF ELEMENT + STRING ' ' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + ELSE + STRING '" ' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + END-IF + IF XML-NAMESPACE-PREFIX = SPACE + STRING XML-TEXT '="' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + ELSE + STRING XML-NAMESPACE-PREFIX ':' XML-TEXT '="' + DELIMITED BY SIZE INTO BUFFER WITH POINTER POSD + END-IF + SET ATTRIBUTE TO TRUE + WHEN 'NAMESPACE-DECLARATION' + IF ELEMENT + STRING ' ' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + ELSE + STRING '" ' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + END-IF + IF XML-NAMESPACE-PREFIX = SPACE + STRING 'XMLNS="' XML-NAMESPACE DELIMITED BY SIZE + INTO BUFFER WITH POINTER POSD + ELSE + STRING 'XMLNS:' XML-NAMESPACE-PREFIX '="' XML-NAMESPACE + DELIMITED BY SIZE INTO BUFFER WITH POINTER POSD + END-IF + SET ATTRIBUTE TO TRUE + WHEN 'ATTRIBUTE-CHARACTERS' + STRING XML-TEXT DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + WHEN 'ATTRIBUTE-CHARACTER' + STRING XML-TEXT DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + WHEN 'CONTENT-CHARACTERS' + EVALUATE TRUE + WHEN ELEMENT + STRING '>' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + WHEN ATTRIBUTE + STRING '">' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + END-EVALUATE + STRING XML-TEXT DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + SET CHARCONTENT TO TRUE + WHEN 'CONTENT-CHARACTER' + EVALUATE TRUE + WHEN ELEMENT + STRING '>' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + WHEN ATTRIBUTE + STRING '">' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + END-EVALUATE + STRING XML-TEXT DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + SET CHARCONTENT TO TRUE + WHEN 'END-OF-ELEMENT' + MOVE SPACE TO ELEMENTNAME + EVALUATE TRUE + WHEN ELEMENT + STRING '/>' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + WHEN ATTRIBUTE + STRING '"/>' DELIMITED BY SIZE INTO BUFFER + WITH POINTER POSD + WHEN OTHER + IF XML-NAMESPACE-PREFIX = SPACE + STRING '' DELIMITED BY SIZE + INTO BUFFER WITH POINTER POSD + ELSE + STRING '' + DELIMITED BY SIZE INTO BUFFER WITH POINTER POSD + END-IF + END-EVALUATE + SET UNKNOWN TO TRUE + PERFORM PRINTLINE + SUBTRACT 1 FROM DEPTH + MOVE 1 TO POSD + WHEN OTHER + CONTINUE + END-EVALUATE + . + PRINTLINE. + COMPUTE INX = FUNCTION MAX(0 2 * DEPTH - 2) + POSD - 1 + IF INX > 120 + COMPUTE INX = 117 - FUNCTION MAX(0 2 * DEPTH - 2) + IF DEPTH > 1 + DISPLAY INDENT(1:2 * DEPTH - 2) BUFFER(1:INX) '...' + ELSE + DISPLAY BUFFER(1:INX) '...' + END-IF + ELSE + IF DEPTH > 1 + DISPLAY INDENT(1:2 * DEPTH - 2) BUFFER(1:POSD - 1) + ELSE + DISPLAY BUFFER(1:POSD - 1) + END-IF + END-IF + . +END PROGRAM PROGRAMP. +``` + + +Output: + +``` + + + + + +``` \newpage # COBOL Program Compilation diff --git a/COBOL Programming Course #3 - Advanced Topics/Images/xml_flow.png b/COBOL Programming Course #3 - Advanced Topics/Images/xml_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..f3ff8fcadf8ef2e5c23b353b3f06a99ce5a67944 GIT binary patch literal 51111 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 literal 0 HcmV?d00001 From ac837e9a4ae182aace5e60bb7fddd089916691bb Mon Sep 17 00:00:00 2001 From: Janos Varga <113785741+vargajb@users.noreply.github.com> Date: Thu, 3 Nov 2022 21:59:06 +0100 Subject: [PATCH 3/5] Fix: length and Range at S9(9) is wrong Signed-off-by: Janos Varga <113785741+vargajb@users.noreply.github.com> Signed-off-by: pathange-s --- .../Images/binary-ranges-1.png | Bin 29037 -> 52181 bytes .../Images/binary-ranges-2.png | Bin 17935 -> 31722 bytes .../Images/binary-ranges-3.png | Bin 28383 -> 29129 bytes .../Images/binary-ranges.xlsx | Bin 0 -> 17251 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges.xlsx diff --git a/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-1.png b/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-1.png index 97b6e78ab9c902c73b4a634f55e4c75300ca4ec2..2bd944dbf2e9105b2d482cdf8649c3ad193eca68 100644 GIT binary patch literal 52181 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 bE`FxfI2PQ;T0po$13&U7l#VCM>AC$oQ*J0{ literal 29037 zcmeFac~q0xw(gBulvSdlB@h$=wJbrTEmXQd$_5b;P(bO4hzf}GZ3rY)DxyS)hyn^E z3IZZcr0)|IA+!mN5+INW0YVHAlK>&4`+~Ul+54RHoqNam?!DvO@AwCUK^NYvcdfbR zT=Vxl@4a(&R$Dgh+9V?*v&H)KNe3AjSyvgE^)f&GDE&_6@f!l^r*+{DR>x(^2)h~5 zFMjYnW_wIVrW`3J^p=%={d34^*KipbrQcRR)>%93{~{w3y59QaF{c=>xiRyHUI6ah z0NGS^Eqk5JzNC_E`j9(MVaMbr5B5F{{ZZzwX2tP0lRK}k$eKSW{3D=kr_7$*_D$>3 zd|xsE3xA;2m+thH`Sb3+LqGig_=PC_lYBfK&K2;#@Nr+*zuHsFi11Bn;1!W@krRuC zokDW0L@Q$9-Yp~QIH2UNTJWsSBEp%SNX`;8H3DV5a#jcOg~`o*hf1olfD)eYU}VFu zj>jUkI9DVVa8b1drCc3dNJncbC}N^twXZO79*;y{LbbbfH5L{$zAs#2Q zE(L+89EcphGsB!#_k% z!dZr{5X}CR+-8)~dTuVe>r`B4ZNNh$4nZtXi*jf^)O>;6RZ-_!)lpM=b0!({cr?}B zpXz7UY|Jwmrm9CSXT8{czh;9B%N;KqvH^<-(E@Sm>PC{PoJEUEm1Ee~H)GHmx#jK=&8+GIkF)=@Y!2tmV zrm)56Sn;B9;rzCdL&p>3#&g2KdL_=_jjD2|YjK!x#Frg`Peu*~f)yW6lZG492Z&nT zcs1L=i%KtQC*zBk)Hps^Lwymjr9QmbIW}kYPFAGxklDVB6tSbyRSap4#~r{hB}lnG z6?$db#%SE2YW?G-2kRnOl}~z03QUMUV>lKtsT5SSh>K zfF!V;e&-pY+Gdu8Z_L8k&7H5|)$T)X@+I)R7|VT8bDr45c00jnB&wP$un)C>g1q%{ zxH@&Zfwt(!*;mHZKuTBBV13O+;qsyGdi_Q6c`X+^NKJQ|^(fA&m{@(yr~6}3d5Ug6 zQ#o*>45b!Ga=em|AC*RLmi_d?<)Sd;<(U%G7Y~2QX=6cKepGKQ155-SKtpMtr1$Sg0epEGML{I7p zh-9MD=OmhQzv^FRt?8}nx%mK8p`4*n)z#4M62ID+07BPMHNY^CG#o1E8Ki_iJL;O`F{F(hZ9?=Re{a= z9&Lt6OG>?rMt%Em2m{UCCv+`eaFC}5Le(Lq zW(1u%mB2!E(#>ltvuEzUnF1*YdGrVma+Eo^>0sAQ z>+(N66)P*eQ$5ABy@{>q^~qc3l^XJOqElQIN0Z_Uc@5&730FeZTA@$46Qo{UMs_i6 zF!0OKq>>S{swcc#?u76GbCIv>ZZ~ntXO7WDE)7xsc_nsH`C?NBKOXeO&1|mnH`QN9 z>_F+3gH?0SdQExdDi)+52DBAh*p_*DR(bAzWW+&FlAoE(7wl9$S{go%%S4A&f zNhYyL6X*$hnff8{i#^+0RM=~ZdAm}%LcgSYbg@6XL!}GOM_UpRq9hD@`CXeyi!lB-b z!q6GTwoF4G)%Y_c!;!5rO~DXCVf!WV8mLH z$6;;C>HSBLYdf*Zx8J@8#|1xxm!sxC|RW0jK7slUbUW8tC;-H87PD9XZc1Hk&i38lIk5p=XQ(Gv@SvCi}$9$)hEW zHB16GO&u+Ph`-F$EZJao1kxju6P~bY0oTH)D^R(M@J{zxfQi)|_MX@hKs247V^{6E zlC4t4L%^1r9B_wW8@|?Lr^{T;J*1J$2Mm%3gnLzICtB!NL)ixb?{r(=dAw+x6|ilZ zKXnR%0AkMi(DP0Ii)Pg=68O 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 XS6is*9=hxzXnTmKtDnm{r-UW|wk5AO diff --git a/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-2.png b/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-2.png index 170fff033bb363449594bd9cb282814bb48e53d7..aaa9361dc63535d9e5479de7eaa9179fd6cba37e 100644 GIT binary patch literal 31722 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 DPG*T7 literal 17935 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 a#l<7vx_>EazWn|>?2kAdt~qq^+W!GG6Uuu4 diff --git a/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-3.png b/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-3.png index 87f53457ec024f0713f64f153f894f6ede85b092..f8c07b1f5db6886d1a153e070adb673d29ea6579 100644 GIT binary patch literal 29129 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 literal 28383 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 diff --git a/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges.xlsx b/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f7dc904d6552b17165b1af06161c33ea0a40126b GIT binary patch literal 17251 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 Date: Thu, 3 Nov 2022 22:06:25 +0100 Subject: [PATCH 4/5] Fix: length and range at S9(9) is wrong Signed-off-by: Janos Varga <113785741+vargajb@users.noreply.github.com> Signed-off-by: pathange-s --- .../Images/binary-ranges-3.png | Bin 29129 -> 34929 bytes .../Images/binary-ranges.xlsx | Bin 17251 -> 17277 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-3.png b/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges-3.png index f8c07b1f5db6886d1a153e070adb673d29ea6579..eed1c22b9a702d20c374f561a9b9d4f4736834ea 100644 GIT binary patch literal 34929 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 diff --git a/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges.xlsx b/COBOL Programming Course #3 - Advanced Topics/Images/binary-ranges.xlsx index f7dc904d6552b17165b1af06161c33ea0a40126b..325542746fa05b0860e0434c03bc58cfe33120c0 100644 GIT binary patch delta 7249 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 From f6dcc777a8b228db04cdc405f7fd1c5be50ebaf5 Mon Sep 17 00:00:00 2001 From: pathange-s Date: Mon, 5 Dec 2022 18:36:20 +0530 Subject: [PATCH 5/5] updated formatting Signed-off-by: pathange-s --- ...Programming Course #3 - Advanced Topics.md | 244 +++++++++--------- 1 file changed, 126 insertions(+), 118 deletions(-) diff --git a/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md b/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md index 849ec90c..1731ed37 100644 --- a/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md +++ b/COBOL Programming Course #3 - Advanced Topics/COBOL Programming Course #3 - Advanced Topics.md @@ -559,11 +559,11 @@ The result is execution of COBOL program CBLDB21 to read the Db2 table and write There are numerous scenarios in which we can parse JSON. ### Scenario 1: Parsing JSON documents in normal conditions. -Input: +**Input:** ``` {"data":{"ver":1,"uid":1234,"txt":"I love learning"}} ``` -COBOL Code: +**COBOL Code:** ``` IDENTIFICATION DIVISION. PROGRAM-ID. SCENE1. @@ -585,7 +585,7 @@ DATA DIVISION. END PROGRAM SCENE1. ``` -Output: +**Output:** ``` Message ID is 1234 Message text is ‘I love learning @@ -593,12 +593,12 @@ Message text is ‘I love learning ### Scenario 2: When JSON names are not valid COBOL data names JSON names can contain more characters and character types than COBOL data names. To help match JSON names with COBOL data names, we can use the NAME phrase in the JSON PARSE statement. -Input: +**Input:** ``` {“num+”: 9978} ``` -COBOL Code: +**COBOL Code:** ``` IDENTIFICATION DIVISION. PROGRAM-ID. Scene2. @@ -616,22 +616,23 @@ PROCEDURE DIVISION using LK-INP-JSON. End program Scene2. ``` -The output of the above code will be shown below. -Output: -Input Data is 9978 +The output of the above code will be shown below.
+**Output:** +```Input Data is 9978```
When processing the example above, the following issues require attention: -The CCSID of the active CODEPAGE compiler option is assumed to have been used to encode characters that appear in literal-1 on the NAME phrase. -In contrast to the case-insensitive matching of COBOL data names, characters appearing in literal-1 will be matched to the JSON names. -The NAME phrase as a whole cannot produce an unclear name specification. + * The CCSID of the active CODEPAGE compiler option is assumed to have been used to encode characters that appear in literal-1 on the NAME phrase. + * In contrast to the case-insensitive matching of COBOL data names, characters appearing in literal-1 will be matched to the JSON names. + * The NAME phrase as a whole cannot produce an unclear name specification. ### Scenario 3: When we want to override the value parsed by JSON. We may not always require specific data items related to the receiver to be populated by the JSON PARSE statement. To avoid this, we usually use the SUPPRESS phrase of the JSON PARSE statement to tell the parser to ignore the item and thus override the input value. -Input: + +**Input:** ``` {"data":{"sno":5,"rollnum":10,"name":"Sam"}} ``` -COBOL Code: +**COBOL Code:** ``` IDENTIFICATION DIVISION. PROGRAM-ID. Scene3. @@ -655,7 +656,7 @@ PROCEDURE DIVISION using LK-INP-JSON. End program Scene3. ``` -Output: +**Output:** ``` Roll Number is 1122 Name is Sam’ @@ -665,11 +666,12 @@ The data item Rollnum was assigned to the value 1122 in the programme, and its a ### Scenario 4: When we want to handle the input data in an array. JSON arrays can be parsed to generate COBOL data description entries with the OCCURS or OCCURS DEPENDING ON clause. Consider the following example, in which a JSON array named "data" is broken down into a COBOL data item of the same name. -Input: + +**Input:** ``` {"emp-data":{"data":[{"sno":10,"id":100,"txt":"Jenny"},{"sno":11,"id":101,"txt":"Sai"},{"sno":12,"id":102,"txt":"Kevin"}]}} ``` -COBOL Code: +**COBOL Code:** ``` IDENTIFICATION DIVISION. PROGRAM-ID. Scene4. @@ -700,7 +702,7 @@ DATA DIVISION. -Output: +**Output:** ``` EMP ID is 0100 Name is ‘Jenny’ @@ -720,7 +722,7 @@ The OCCURS DEPENDING ON object is not set or updated by the JSON PARSE statement To express COBOL data items as JSON text, use the JSON GENERATE statement, which identifies the source and output data items. JSON text can also be used to represent a resource for a web service interface, and it is encoded in UTF-8 for alphanumeric output data items and UTF-16 for national output data items. -COBOL Code: +**COBOL Code:** ``` IDENTIFICATION DIVISION. PROGRAM-ID. prodj. @@ -745,73 +747,70 @@ Output: ## Processing XML input -The XML PARSE statement can be used in a COBOL program to handle XML input. The COBOL language interface to either of two fast XML parsers is the XML PARSE statement. You choose the best parser for your application using the XMLPARSE compiler option: -The z/OS XML System Services parser is selected by XMLPARSE(XMLSS). -This option offers improved features like namespace processing, XML document validation in accordance with an XML schema, and text fragment conversion to national character representation (Unicode UTF-16). - The COBOL library's integrated XML parser is chosen by XMLPARSE(COMPAT). The XML parser and a processing procedure where you handle parser events exchange control as you process XML input. -To process XML input, use the COBOL facilities listed below: -the XML PARSE statement, which identifies the source XML document, the processing method, and the start of XML parsing. -The XML PARSE statement's additional optional clauses can be used as well: - ENCODING to define the XML document's encoding - VALIDATING to specify the XML schema that the XML document should be validated against - Receiving and processing XML events and any associated document fragments before returning them to the parser for further processing is the processing procedure used to control parsing. - Unique registers for information exchange between the parser and the processing method: - XML-CODE to learn how well the XML parsing is going and, in some cases, to return data to the parser - XML-EVENT to ask the parser for the names of each XML event - A method for quickly determining whether an XML event is complete is provided by XML-INFORMATION. - For XML document fragments that are returned as national +* The XML PARSE statement can be used in a COBOL program to handle XML input. The COBOL language interface to either of two fast XML parsers is the XML PARSE statement. You choose the best parser for your application using the XMLPARSE compiler option: +* The z/OS XML System Services parser is selected by XMLPARSE(XMLSS). +* This option offers improved features like namespace processing, XML document validation in accordance with an XML schema, and text fragment conversion to national character representation (Unicode UTF-16). + * The COBOL library's integrated XML parser is chosen by XMLPARSE(COMPAT). The XML parser and a processing procedure where you handle parser events exchange control as you process XML input. +* To process XML input, use the COBOL facilities listed below: + * The XML PARSE statement, which identifies the source XML document, the processing method, and the start of XML parsing. + * The XML PARSE statement's additional optional clauses can be used as well: + * ENCODING to define the XML document's encoding + * VALIDATING to specify the XML schema that the XML document should be validated against + * Receiving and processing XML events and any associated document fragments before returning them to the parser for further processing is the processing procedure used to control parsing. + * Unique registers for information exchange between the parser and the processing method: + * XML-CODE to learn how well the XML parsing is going and, in some cases, to return data to the parser + * XML-EVENT to ask the parser for the names of each XML event + * A method for quickly determining whether an XML event is complete is provided by XML-INFORMATION. + * For XML document fragments that are returned as national character data, use XML-NTEXT. - Receiving document fragments as alphanumeric data via XML-TEXT - To receive a namespace identifier for an element name or attribute name that is in a namespace, use the tags XML-NAMESPACE or XML-NNAMESPACE. - Use the tags XML-NAMESPACE-PREFIX or XML-NNAMESPACE-PREFIX to + * Receiving document fragments as alphanumeric data via XML-TEXT + * To receive a namespace identifier for an element name or attribute name that is in a namespace, use the tags XML-NAMESPACE or XML-NNAMESPACE. + * Use the tags XML-NAMESPACE-PREFIX or XML-NNAMESPACE-PREFIX to request a namespace prefix for an NAMESPACE-DECLARATION XML event, an element name, or an attribute name. - The XML PARSE statement's optional RETURNING NATIONAL clause can be used to + * The XML PARSE statement's optional RETURNING NATIONAL clause can be used to specify that alphanumeric data items containing XML document fragments should be converted to UTF-16 and then processed using the national special registers XML- NTEXT, XML-NNAMESPACE, and XML-NNAMESPACE-PREFIX. -Only when XMLPARSE(XMLSS) is active can you use the XML PARSE statement's ENCODING, VALIDATING, and RETURNING NATIONAL phrases. +* Only when XMLPARSE(XMLSS) is active can you use the XML PARSE statement's ENCODING, VALIDATING, and RETURNING NATIONAL phrases. ### XML parser in COBOL -With the help of COBOL's event-based interface, you can parse XML files and convert them into COBOL data structures. -The processing procedure acts on the fragments that the XML parser finds in the source XML document. The fragments are linked to specific XML events, and you must program the processing method to address each individual XML event. -The parsing process is started and the parser's processing protocol is established upon execution of the XML PARSE statement. For each XML event it encounters while analysing the document, the parser hands off control to the processing procedure. -The processing procedure automatically hands back control to the parser after processing the event. The parser continues to examine the XML document after each typical return from the processing procedure in order to report the subsequent event. During this operation, control alternates between the parser and the processing method. -A high-level view of the fundamental control transfer between the parser and your COBOL program is provided in the following figure. +* With the help of COBOL's event-based interface, you can parse XML files and convert them into COBOL data structures. +* The processing procedure acts on the fragments that the XML parser finds in the source XML document. The fragments are linked to specific XML events, and you must program the processing method to address each individual XML event. +* The parsing process is started and the parser's processing protocol is established upon execution of the XML PARSE statement. For each XML event it encounters while analysing the document, the parser hands off control to the processing procedure. +* The processing procedure automatically hands back control to the parser after processing the event. The parser continues to examine the XML document after each typical return from the processing procedure in order to report the subsequent event. During this operation, control alternates between the parser and the processing method. +* A high-level view of the fundamental control transfer between the parser and your COBOL program is provided in the following figure. // ![](Images/xml_flow.png) -Parsing typically goes on until the entire XML document has been processed. +* Parsing typically goes on until the entire XML document has been processed. ### Accessing XML documents -You must first make the XML document accessible to your program in order to parse it using an XML PARSE statement. An XML document can typically be obtained by reading it from a file, a WebSphere® MQ message, a CICS® transient queue or communication area, an IMS message processing queue, or a transient queue or communication area. +* You must first make the XML document accessible to your program in order to parse it using an XML PARSE statement. An XML document can typically be obtained by reading it from a file, a WebSphere® MQ message, a CICS® transient queue or communication area, an IMS message processing queue, or a transient queue or communication area. Use standard COBOL facilities to insert the XML file into a data item in your program if the XML document you want to parse is stored in a file: - a FILE-CONTROL entry for your program's definition of the file. - a file-opening OPEN statement. - To read every record from the file into a data item, use READ statements (either an elementary item of category alphanumeric or national, or an alphanumeric or national group). Either the LOCAL-STORAGE SECTION or the WORKING-STORAGE SECTION can define the data item. - Optionally, use the STRING statement to handle variable-length records, remove extraneous blanks, and string together all of the individual records into a single continuous stream. -You can parse an XML document that is stored in a file if the XMLPARSE(XMLSS) option is enabled by sending the parser one record (or text segment) from the file at a time. The ability to parse very large XML documents is helpful. + * A FILE-CONTROL entry for your program's definition of the file. + * A file-opening OPEN statement. + * To read every record from the file into a data item, use READ statements (either an elementary item of category alphanumeric or national, or an alphanumeric or national group). Either the LOCAL-STORAGE SECTION or the WORKING-STORAGE SECTION can define the data item. + * Optionally, use the STRING statement to handle variable-length records, remove extraneous blanks, and string together all of the individual records into a single continuous stream. +* You can parse an XML document that is stored in a file if the XMLPARSE(XMLSS) option is enabled by sending the parser one record (or text segment) from the file at a time. The ability to parse very large XML documents is helpful. ### Parsing XML documents #### Writing procedures to process XML -Include code statements to handle XML events in your processing procedure. -The parser sends data to the processing procedure in a number of specialised registers for each event it encounters. Utilize the information in those unique registers to control and populate COBOL data structures. -To find out which event the parser sent to the processing procedure, look in the XML-EVENT special register. -An event name, like "START-OF-ELEMENT," is contained in the XML-EVENT tag. -From the XML-TEXT or XML-NTEXT special register, retrieve the text related to the event. -If the XMLPARSE(XMLSS) option is enabled, you can check the special registers XML- NAMESPACE or XML-NNAMESPACE to see if there is a namespace identifier, if any, associated with the XML event, and XML-NAMESPACE-PREFIX or XML-NNAMESPACE- PREFIX to see if there is a prefix. -The XML special registers are implicitly defined as GLOBAL in the outermost program when used in nested programs. -By following this following link you can check table containing more information about the XML special registers: - -https://www.ibm.com/docs/en/cobol-zos/6.4?topic=documents-writing-procedures-process- xml#:~:text=Table%201.%20Special%20registers%20used%20by%20the%20XML%20parser - -Restrictions: - An XML PARSE statement may not be executed by a processing function directly. However, if a processing procedure uses an INVOKE or CALL statement to transfer control to a method or outermost program, the target method or program can choose to execute the same or a different XML PARSE statement. Using a program with several threads, you can also run the same XML statement or several different XML statements at once. - Any GOBACK or EXIT PROGRAM statement cannot be executed within the scope of the processing procedure, with the exception of returning control from a method or program to which control was transferred by an INVOKE or CALL statement, respectively, that is executed within the scope of the prfocessing procedure. - To stop a run unit, code a STOP RUN statement in a processing routine. - -Taking an Example of parsing an XML with an undeclared namespace prefix: - -Input: +* Include code statements to handle XML events in your processing procedure. +* The parser sends data to the processing procedure in a number of specialised registers for each event it encounters. Utilize the information in those unique registers to control and populate COBOL data structures. +* To find out which event the parser sent to the processing procedure, look in the XML-EVENT special register. +* An event name, like "START-OF-ELEMENT," is contained in the XML-EVENT tag. +* From the XML-TEXT or XML-NTEXT special register, retrieve the text related to the event. +* If the XMLPARSE(XMLSS) option is enabled, you can check the special registers XML- NAMESPACE or XML-NNAMESPACE to see if there is a namespace identifier, if any, associated with the XML event, and XML-NAMESPACE-PREFIX or XML-NNAMESPACE- PREFIX to see if there is a prefix. +* The XML special registers are implicitly defined as GLOBAL in the outermost program when used in nested programs. +* By following this following link you can check table containing more information about the XML special registers: https://www.ibm.com/docs/en/cobol-zos/6.4?topic=documents-writing-procedures-process- xml#:~:text=Table%201.%20Special%20registers%20used%20by%20the%20XML%20parser + +* Restrictions: + * An XML PARSE statement may not be executed by a processing function directly. However, if a processing procedure uses an INVOKE or CALL statement to transfer control to a method or outermost program, the target method or program can choose to execute the same or a different XML PARSE statement. Using a program with several threads, you can also run the same XML statement or several different XML statements at once. + * Any GOBACK or EXIT PROGRAM statement cannot be executed within the scope of the processing procedure, with the exception of returning control from a method or program to which control was transferred by an INVOKE or CALL statement, respectively, that is executed within the scope of the prfocessing procedure. + * To stop a run unit, code a STOP RUN statement in a processing routine. + +**Taking an Example of parsing an XML with an undeclared namespace prefix:** +**Input:** ```

``` -Output: +**Output:** ``` IDENTIFICATION DIVISION. @@ -861,16 +860,16 @@ DATA DIVISION. End program XML1. ``` -Now let’s take an example of parsing an XML document one segment at a time: +**Now let’s take an example of parsing an XML document one segment at a time:** -Input: +**Input:** ``` I Love COBOL ``` -COBOL Program: +**COBOL Program:** ```IDENTIFICATION DIVISION. PROGRAM-ID. XML2. @@ -939,7 +938,7 @@ COBOL Program: END PROGRAM XML2. ``` -Output: +**Output:** ```Starting with: Event number and name Content of XML-TEXT 01: START-OF-DOCUMENT {} @@ -957,60 +956,69 @@ Continuing with: 10: END-OF-DOCUMENT {} ``` -The XML PARSE statement is used by this program to pass a record from the XML document that it has read from file INPUT-FILE to the parser. Each XML event's processing procedure is given control by the parser after it has processed the XML text. Once each event has been handled, the processing procedure passes control back to the parser. -The parser changes XML-CODE to zero, sets XML-EVENT to END-OF-INPUT, and hands control to the processing procedure at the end of the segment. After setting XML-CODE to 1, the processing procedure exits the parser and reads the following XML record into the parse data item. Up until the READ statement returns the end-of-file status code, the processing procedure and the parser continue to communicate. The processing procedure returns to the parser with XML-CODE still set to zero to indicate -the end of segment processing. +* The XML PARSE statement is used by this program to pass a record from the XML document that it has read from file INPUT-FILE to the parser. Each XML event's processing procedure is given control by the parser after it has processed the XML text. Once each event has been handled, the processing procedure passes control back to the parser. +* The parser changes XML-CODE to zero, sets XML-EVENT to END-OF-INPUT, and hands control to the processing procedure at the end of the segment. * * After setting XML-CODE to 1, the processing procedure exits the parser and reads the following XML record into the parse data item. Up until the READ statement returns the end-of-file status code, the processing procedure and the parser continue to communicate. The processing procedure returns to the parser with XML-CODE still set to zero to indicate the end of segment processing. #### Transforming XML text to COBOL data items -When transferring XML data to a COBOL data item, special techniques must be used because XML data has neither a fixed length nor a fixed format. -Choose whether the XML data belongs at the right end of the COBOL data item or the left end (the default) for alphanumeric items. In the item's definition, include the JUSTIFIED RIGHT clause if the data should go at the right end. -Pay special attention to numerical XML values, especially "decorated" dollar amounts like "$1,234.00" or "$1234". If used as COBOL sending fields, these two strings, which may have the same meaning in XML, require entirely different definitions. -When converting XML data to COBOL data items, use one of the following methods: - Code a MOVE to an alphanumeric item that you redefine appropriately as a numeric-edited item if the format is reasonably regular. Then, make the last move to a numeric (operational) item by moving away from the numeric-edited item and subsequently de-editing it. (In a standard format, - - The number of digits after the decimal point would be the same, there would be a comma to separate values greater than 999, and so on.) - Use the following intrinsic functions for alphanumeric XML data for simplicity and significantly increased flexibility: - XML data that contains plain numbers can be extracted and decoded using NUMVAL. - To extract and decode numerical values from XML data that depicts monetary amounts, use NUMVAL-C. -Utilizing these features, though, degrades performance. - -Encoding of XML documents: -A supported code page must be used to encrypt XML documents. -XML documents must be encoded in Unicode UTF-16 big-endian format, CCSID 1200, when created in or parsed from national data items. -A single-byte EBCDIC encoding, such as Unicode UTF-8 (CCSID 1208), or one of the single- byte EBCDIC encodings listed in the table below, must be used to encode documents created from alphanumeric data items for XML GENERATE statements. Any CCSID from that table may be used in the XML GENERATE statement's ENCODING phrase. -Documents in alphanumeric data items must be encoded as follows for XML PARSE statements: - When XMLPARSE(XMLSS) is active: - If the XML PARSE statement specifies the RETURNING NATIONAL phrase, it should be in any EBCDIC or ASCII encoding that z/OS® Unicode Services supports for conversion to UTF-16. - If the XML PARSE statement does not specify the RETURNING NATIONAL phrase, use UTF-8 (CCSID 1208) or one of the single-byte EBCDIC encodings shown in the table below. - When XMLPARSE(COMPAT) is active: the table below lists the single-byte EBCDIC encodings.If XMLPARSE(COMPAT) is in effect: in one of the single-byte EBCDIC encodings listed in the table below -You can use any supported CCSID (as described above for XML PARSE) in the ENCODING phrase of the XML PARSE statement if XMLPARSE(XMLSS) is active. - -For coded character sets for XML documents table, please visit: https://www.ibm.com/docs/en/cobol-zos/6.4?topic=input-encoding-xml- documents#:~:text=Table%201.%20Coded%20character%20sets%20for%20XML%20document s +* When transferring XML data to a COBOL data item, special techniques must be used because XML data has neither a fixed length nor a fixed format. +* Choose whether the XML data belongs at the right end of the COBOL data item or the left end (the default) for alphanumeric items. In the item's definition, include the JUSTIFIED RIGHT clause if the data should go at the right end. +* Pay special attention to numerical XML values, especially "decorated" dollar amounts like "$1,234.00" or "$1234". If used as COBOL sending fields, these two strings, which may have the same meaning in XML, require entirely different definitions. +* When converting XML data to COBOL data items, use one of the following methods: + * Code a MOVE to an alphanumeric item that you redefine appropriately as a numeric-edited item if the format is reasonably regular. Then, make the last move to a numeric (operational) item by moving away from the numeric-edited item and subsequently de-editing it. (In a standard format, + + * The number of digits after the decimal point would be the same, there would be a comma to separate values greater than 999, and so on.) + * Use the following intrinsic functions for alphanumeric XML data for simplicity and significantly increased flexibility: + * XML data that contains plain numbers can be extracted and decoded using NUMVAL. + * To extract and decode numerical values from XML data that depicts monetary amounts, use NUMVAL-C. +* Utilizing these features, though, degrades performance. + +#### Encoding of XML documents: +* A supported code page must be used to encrypt XML documents. +* XML documents must be encoded in Unicode UTF-16 big-endian format, CCSID 1200, when created in or parsed from national data items. +* A single-byte EBCDIC encoding, such as Unicode UTF-8 (CCSID 1208), or one of the single- byte EBCDIC encodings listed in the table below, must be used to encode documents created from alphanumeric data items for XML GENERATE statements. Any CCSID from that table may be used in the XML +* GENERATE statement's ENCODING phrase. +* Documents in alphanumeric data items must be encoded as follows for XML PARSE statements: + * When XMLPARSE(XMLSS) is active: + * If the XML PARSE statement specifies the RETURNING NATIONAL phrase, it should be in any EBCDIC or ASCII encoding that z/OS® Unicode Services supports for conversion to UTF-16. + * If the XML PARSE statement does not specify the RETURNING NATIONAL phrase, use UTF-8 (CCSID 1208) or one of the single-byte EBCDIC encodings shown in the table below. + * When XMLPARSE(COMPAT) is active: the table below lists the single-byte EBCDIC encodings.If XMLPARSE(COMPAT) is in effect: in one of the single-byte EBCDIC encodings listed in the table below +* You can use any supported CCSID (as described above for XML PARSE) in the ENCODING phrase of the XML PARSE statement if XMLPARSE(XMLSS) is active. + +* For coded character sets for XML documents table, please visit: https://www.ibm.com/docs/en/cobol-zos/6.4?topic=input-encoding-xml ### Handling XML PARSE exceptions -When an anomaly or error is encountered by the XML parser while parsing, it signals an XML exception event and sets an exception code in the XML-CODE special register. Depending on how the XMLPARSE compiler option is set, different exception codes can occur and different actions can be taken in response to them. -For XMLPARSE(XMLSS): -Return code and reason code: The return code and reason code produced by the parser are combined to create the exception code. Both the return code and the reason code are binary values that are half a word long. These two values are concatenated to create the value in XML-CODE. -If you parse the document without performing validation, the return code is hexadecimal 000C (XRC NOT WELL FORMED), and the reason code is hexadecimal 3035 (XRSN ENDTAG NAME MISMATCH). -In the XML-CODE special register, the processing procedure receives the concatenation of these two values, which is represented by the hexadecimal value 000C3035. -The values returned in XML-CODE for any well-formedness errors when parsing a document with validation are different from the values returned for the same errors when parsing a document without validation. For any validation error, the z/OS XML System Services parser generates the return code 24. (hexadecimal 0018). -See the related reference about exceptions with XMLPARSE(XMLSS) in effect for more details regarding the return codes and reason codes that may be generated. -Processing procedures cannot manage exception events or make parsing resume if XMLPARSE(XMLSS) is active. The parser does not signal any additional events once a processing procedure has returned to it from an exception event. The XML PARSE statement's ON EXCEPTION phrase specifies the statement to which the parser passes control. Control is transferred to the end of the XML PARSE statement if you did not code an ON EXCEPTION phrase. The initial exception code set by the parser is contained in XML-CODE. -Control is transferred to the statement specified in the NOT ON EXCEPTION phrase if no exceptions are encountered while parsing. Control is passed to the end of the XML PARSE statement if you did not code a NOT ON EXCEPTION phrase. XML-CODE has no content. +* When an anomaly or error is encountered by the XML parser while parsing, it signals an XML exception event and sets an exception code in the XML-CODE special register. Depending on how the XMLPARSE compiler option is set, different exception codes can occur and different actions can be taken in response to them. + **For XMLPARSE(XMLSS):**
+ **Return code and reason code:** + * The return code and reason code produced by the parser are combined to create the exception code. Both the return code and the reason code are binary values that are half a word long. These two values are concatenated to create the value in XML-CODE. + * If you parse the document without performing validation, the return code is hexadecimal 000C (XRC NOT WELL FORMED), and the reason code is hexadecimal 3035 (XRSN ENDTAG NAME MISMATCH). + * In the XML-CODE special register, the processing procedure receives the concatenation of these two values, which is represented by the hexadecimal value 000C3035. + * The values returned in XML-CODE for any well-formedness errors when parsing a document with validation are different from the values returned for the same errors when parsing a document without validation. For any validation error, the z/OS XML System Services parser generates the return code 24. (hexadecimal 0018). + * See the related reference about exceptions with XMLPARSE(XMLSS) in effect for more details regarding the return codes and reason codes that may be generated. + * Processing procedures cannot manage exception events or make parsing resume if XMLPARSE(XMLSS) is active. The parser does not signal any additional events once a processing procedure has returned to it from an exception event. The XML PARSE statement's ON EXCEPTION phrase specifies the statement to which the parser passes control. Control is transferred to the end of the XML PARSE statement if you did not code an ON EXCEPTION phrase. The initial exception code set by the parser is contained in XML-CODE. + * Control is transferred to the statement specified in the NOT ON EXCEPTION phrase if no exceptions are encountered while parsing. Control is passed to the end of the XML PARSE statement if you did not code a NOT ON EXCEPTION phrase. XML-CODE has no content. ### Terminating XML parsing -By setting XML-CODE to -1 in your processing procedure before the procedure returns to the parser from any normal XML event, you can immediately stop parsing without processing any remaining XML text (that is, any event other than EXCEPTION). This technique can be used when the processing procedure has examined enough of the document or has discovered an irregularity in the document that prevents further meaningful processing. When you stop parsing in this manner, the parser does not signal any additional XML events, including the exception event. If the ON EXCEPTION phrase of the XML PARSE statement was specified, control is transferred to that phrase. By testing whether XML-CODE contains -1 in the ON EXCEPTION phrase's imperative statement, you can determine whether parsing was intentionally terminated. If the ON EXCEPTION phrase is not specified, control is transferred to the end of the XML PARSE statement. If the XMLPARSE(COMPAT) compiler option is enabled, you can also stop parsing after any XML EXCEPTION event by returning to the parser without changing the value in XML-CODE. The result is similar to that of intentional termination, except that the parser returns to the XML PARSE statement with the original exception code in XML-CODE. If the XMLPARSE(XMLSS) option is enabled, parsing always ends when an exception occurs. +* By setting XML-CODE to -1 in your processing procedure before the procedure returns to the parser from any normal XML event, you can immediately stop parsing without processing any remaining XML text (that is, any event other than EXCEPTION). +* This technique can be used when the processing procedure has examined enough of the document or has discovered an irregularity in the document that prevents further meaningful processing. +* When you stop parsing in this manner, the parser does not signal any additional XML events, including the exception event. +* If the ON EXCEPTION phrase of the XML PARSE statement was specified, control is transferred to that phrase. +* By testing whether XML-CODE contains -1 in the ON EXCEPTION phrase's imperative statement, you can determine whether parsing was intentionally terminated. +* If the ON EXCEPTION phrase is not specified, control is transferred to the end of the XML PARSE statement. +* If the XMLPARSE(COMPAT) compiler option is enabled, you can also stop parsing after any XML EXCEPTION event by returning to the parser without changing the value in XML-CODE. +* The result is similar to that of intentional termination, except that the parser returns to the XML PARSE statement with the original exception code in XML-CODE. +* If the XMLPARSE(XMLSS) option is enabled, parsing always ends when an exception occurs. ## Producing XML output -Using the XML GENERATE statement, a COBOL program can generate XML output. The source and the output data items are specified in the XML GENERATE statement. -Optionally, we can create an XML declaration for the document and force the expression of eligible source data items as attributes rather than as elements in the output. -The XML-CODE special register can be used to check on the progress of XML generation. -Following the conversion of COBOL data items to XML, the output XML can be used in a variety of ways, including deployment in a web service, transmission as a message to MQ(Pipeline), and conversion to a CICS(frontend) communication area. - -The XML generation example is shown below: +* Using the XML GENERATE statement, a COBOL program can generate XML output. The source and the output data items are specified in the XML GENERATE statement. +* Optionally, we can create an XML declaration for the document and force the expression of eligible source data items as attributes rather than as elements in the output. +* The XML-CODE special register can be used to check on the progress of XML generation. +* Following the conversion of COBOL data items to XML, the output XML can be used in a variety of ways, including deployment in a web service, transmission as a message to MQ(Pipeline), and conversion to a CICS(frontend) communication area. +**The XML generation example is shown below:** There are several COBOL programs because we are calling one another within the program. + ```IDENTIFICATION DIVISION. PROGRAM-ID. OPXML. @@ -1293,7 +1301,7 @@ END PROGRAM PROGRAMP. ``` -Output: +**Output:** ```