GXL4PRS example

The following code parses a buffer of XML text and places the result in an output buffer. For the callable service, see GXL1PRS (GXL4PRS) — parse a buffer of XML text. AMODE 31 callers use GXL1PRS example.
*/*******************************************************            */ 
*/*  DO_PARSE                                                        */ 
*/*******************************************************            */ 
*                                                                  
*DO_PARSE:                                                         
*   PROCEDURE;                                                     
DO_PARSE STM   @14,@12,@SA00004                                    
         STMH  @14,@12,@SH00004                                    
*   CALL GXL4PRS(PIMA,OPTION_FLAGS,INBUF_PTR,INBUF_LEN,OUTBUF_PTR, 
*       OUTBUF_LEN,RC,RSN);                                        
         LG    @02,PARM_PTR(,@03_PARM_PTR_PTR)                     
         LG    @10,PIMA_PTR(,@02)                                  
         STG   @10,@AX00001                                        
         LA    @10,OPTION_FLAGS(,@02)                              
         STG   @10,@AX00001+8                                      
         LA    @10,INBUF_PTR(,@02)                                 
         STG   @10,@AX00001+16                                     
         LA    @10,INBUF_LEN(,@02)                                 
         STG   @10,@AX00001+24                                     
         LA    @10,OUTBUF_PTR(,@02)                                
         STG   @10,@AX00001+32                                     
         LA    @02,OUTBUF_LEN(,@02)                                
         STG   @02,@AX00001+40                                     
         LA    @10,RC                                              
         STG   @10,@AX00001+48                                     
         LA    @02,RSN                                             
         STG   @02,@AX00001+56                                     
         L     @10,CS$CVT                                          
         LLGTR @10,@10                                             
         L     @02,CS$CSRT+544(,@10)                               
         LLGTR @02,@02                                             
         L     @10,CS$CSRFT+72(,@02)                               
         LLGTR @10,@10                                             
         LG    @15,GXLST64+48(,@10)                                
         LA    @01,@AX00001                                        
         BASR  @14,@15                                             
*   PARSE_RC = RC;                                                 
         LG    @02,PARM_PTR(,@03_PARM_PTR_PTR)                     
         L     @10,RC                                              
         ST    @10,PARSE_RC(,@02)                                  
*   PARSE_RSN = RSN;                                               
         L     @10,RSN                                             
         ST    @10,PARSE_RSN(,@02)                                 
*   END DO_PARSE;                                                  
*                                                                  
@EL00004 DS    0H                                                  
@EF00004 DS    0H                                                  
@ER00004 LMH   @14,@12,@SH00004                                    
         LM    @14,@12,@SA00004                                    
         BR    @14