XML 文書の構文解析

XML 文書を構文解析するには、XML 文書がデータ項目に入っている場合は、 次の例のように XML PARSE ステートメントを使用します。

XML PARSE XMLDOCUMENT
    ING PROCEDURE XMLEVENT-HANDLER
  ON EXCEPTION
     DISPLAY 'XML document error ' XML-CODE
     STOP RUN
  NOT ON EXCEPTION
     DISPLAY 'XML document was successfully parsed.'
END-XML

XML PARSE ステートメントでは、最初に、 XML 文書の文字ストリームを含むデータ項目 (この例では、XMLDOCUMENT) を識別します。 DATA DIVISION では、ID を英数字データ項目または国別データ項目として宣言できます。 英数字の場合は、その内容は、サポートされている EBCDIC または ASCII の 1 バイト文字セットの 1 つで エンコードされていなければなりません。 国別データ項目の場合は、その内容は Unicode UCS-2 CCSID 13488 でエンコードされていなければなりません。 エンコード宣言を含まない英数字の XML 文書は、COBOL ソース・メンバーの CCSID で構文解析されるか、 COBOL ソースが IFS ストリーム・ファイルにある場合は、ストリーム・ファイルの CCSID が使用されます。

次に、文書からの XML イベントを処理するプロシージャーの名前 (例では、XMLEVENT-HANDLER) を 指定します。

加えて、以下の命令ステートメントの片方または両方が、構文解析の終 わりに制御を受け取るように指定できます。

XML PARSE ステートメントを、END-XML で終了することができます。 XML PARSE ステートメントを条件ステートメントまたは 他の XML PARSE ステートメント内にネストするには、 この範囲終了符号を使用します。

以下のいずれかが発生するまで、XML パーサーと処理プロシージ ャーの間の制御のやり取りは続きます。

関連作業
XML 文書のエンコード方式の理解

関連リファレンス
『XML PARSE ステートメント』(「ILE COBOL 言語解説書」)
『制御フロー』(「ILE COBOL 言語解説書」)