%DATA (document {:options})

%DATA is used as the second operand of the DATA-INTO operation code to specify the document to be parsed, and the options to control how the information from the document is placed in the target RPG variable. %DATA does not return a value, and it cannot be specified anywhere other than for the DATA-INTO operation code.

The first operand of %DATA specifies the document to be parsed. It can be a constant or variable character or UCS-2 expression containing either an document or the name of a file containing a document.

The second operand of %DATA specifies options that control how the document is to be interpreted, and how the data from the document is to be placed in the RPG variable. It can be a constant or variable character expression. The value of the character expression is a list of zero or more options specified in the form
optionname1=value1 optionname2=value2
No spaces are allowed between the option name and the equal sign or between the equal sign and the value. However, any number of spaces can appear before, between or following the options. The options can be specified in any case. The following are all valid ways to specify the "doc=file" and "allowextra=yes" options for DATA-INTO:
   'doc=file allowextra=yes'
   '        doc=file     allowextra=yes     '
   'ALLOWEXTRA=YES DOC=FILE     '
   'AllowExtra=Yes Doc=File     '
The following are not valid option strings:
Option string The problem with the option string
'doc = file' Spaces around the equal sign are not allowed
'allowextra' Each option must have an equal sign and a value
'badopt=yes' Only valid options are allowed
'allowextra=ok' The 'allowextra' value can only be 'yes' or 'no'

See %DATA options for the DATA-INTO operation code for a complete list of valid options and values.

When an option is specified more than once, the last value specified is the value that is used. For example, if the "options" operand has the value
   'doc=file doc=string'
then the parser will use the value "string" for the "doc" option.

If the parser discovers an invalid option or invalid value, the operation will fail with status code 00352.

Examples of %DATA

The "options" operand is omitted. Default values are used for all options. Since the default value for the "doc" option is always "string", the parser will correctly assume that the first operand contains the text of a document. The example assumes an imaginary language in the form "itemName=itemValue".

document = 'city=Toronto';
DATA-INTO city %DATA(document) %PARSER(p);
The "options" operand is specified as a literal with two options.

DATA-INTO myds %DATA(document : 'allowmissing=yes allowextra=yes')
          %PARSER(p);
The "options" operand is specified as a variable expression with two options.

ccsidOpt = 'ccsid=ucs2';
DATA-INTO %HANDLER(mySaxHandler : myCommArea)
          %DATA('mydoc.txt' : 'doc=file ' + ccsidOpt)
          %PARSER(p);

For more examples of %DATA, and more information about the DATA-INTO operation, see DATA-INTO (Parse a Document into a Variable).