%XML (xmlDocument {:options })

%XML は、構文解析する XML 文書、および文書の構文解析方法を制御す るオプションを指定する XML-SAX および XML-INTO 命令コードの第 2 オペランドとして使用します。%XML は値を戻しません。 また、XML-SAX および XML-INTO 命令コード以外の場所に指定できません。

第 1 オペランドは、構文解析する文書を指定します。 このオペランドは、定数あるいは変数文字、または XML 文書あるいは XML 文書を含むファイル名のいずれかを持つ UCS-2 表記の場合があります。

第 2 オペランドは、XML 文書が解釈され、構文解析される方法を制御するオプションを指定します。 このオペランドは、定数または変数文字式の場合があります。 文字式の値は、次の形式で指定されたゼロ個以上のオプションのリストです。
    optionname1=value1 optionname2=value2
オプション名および等号の間、または等号および値の間には、スペースは許可されていません。 ただし、オプションの前後、および間には、任意の数のスペースを指定できます。 オプションは、大/小文字で指定できます。 以下は、XML-INTO の「doc=file」および「allowextra=yes」オプションを指定する有効なすべての方法です。
   'doc=file allowextra=yes'
   '        doc=file     allowextra=yes     '
   'ALLOWEXTRA=YES DOC=FILE     '
   'AllowExtra=Yes Doc=File     '
以下は無効なオプション・ストリングです。
オプション・ストリング オプション・ストリングの問題
'doc = file' 等号の周辺のスペースは許可されていません。
'allowextra' それぞれのオプションには、等号および値が必要です。
'badopt=yes' 有効なオプションのみ許可されています。
'allowextra=ok' 「allowextra」値は「yes」または「no」のみです。

有効なオプションおよび値は、%XML 組み込み関数の内容によって異なります。 有効なオプションおよび値の完全なリストについては、XML-SAX (XML 文書の構文解析)および XML-INTO (XML 文書の変数への構文解析)を参照してください。

1 つのオプションが複数回指定されていた場合は、最後に指定されている値が使用されます。 例えば、オプション・パラメーターの値が
'doc=file doc=string'
の場合、構文解析プログラムは「doc」オプションに値「string」を使用します。

構文解析プログラムが無効なオプションまたは無効な値を発見した場合は、操作は状況コード 00352 で失敗します。

図 1. %XML の例
// The "options" parameter 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
// parameter contains an XML document.
xmldocument = '<myfld>new value</myfld>';
XML-INTO myfld %XML(xmldocument);

// The "options" parameter is specified as a literal with two options.
XML-INTO myds %XML(xmldocument : 'allowmissing=yes allowextra=yes');

// The "options" parameter is specified as a variable expression
// with two options.
ccsidOpt = 'ccsid=' + %char(ccsid);
XML-SAX %HANDLER(mySaxHandler : myCommArea)
        %XML('myinfo.xml' : 'doc=file ' + ccsidOpt);

その他の %XML の例については、XML-SAX (XML 文書の構文解析)および XML-INTO (XML 文書の変数への構文解析)を参照してください。

詳細については、XML 命令または 組み込み関数を参照してください。