XML-CODE 特殊レジスターは、以下の目的に使用されます。
XML パーサーが XML-CODE を設定してから、パーサーの終了時に、各イベントごとに 制御が処理プロシージャーに転送されます。 XML-CODE をリセットしてから、制御 を処理プロシージャーから XML パーサーへ戻すことができます。
XML-CODE 特殊レジスターには、次の暗黙定義があります。
01 XML-CODE PICTURE S9(9) USAGE BINARY VALUE 0.
ネストされたプログラムの中で使用される際には、この特殊レジスタ ーは、最外部のプログラム内で、グローバル属性によって暗黙に定義されます。
XML パーサーは XML イベントを検出すると、XML-CODE を設定して から制御を処理プロシージャーに渡します。 EXCEPTION イベントを除くすべてのイベントに対して、処理 プロシージャーが制御を受け取った場合、XML-CODE はゼロを含んでいます。
EXCEPTION イベントに対して、パーサーは、XML-CODE を例外の性 質を示す例外コードに設定します。 例外コードについては、「ILE COBOL プログラマーの手引き」で詳しく説明しています。
以下のように、パーサーに戻る前に、XML-CODE を設定することがで きます。
XML-CODE をその他の値に設定してからパーサーに戻る場合、結果は 未定義です。
パーサーが制御を XML PARSE ステートメントに戻すと、XML-CODE は、 パーサーまたは処理プロシージャーのいずれかによって設定された最も 新しい値を含みます。
XML GENERATE ステートメントの終了時に、XML-CODE には、 XML 生成の正常完了を示す 0、または XML 生成時に例外が発生したことを示すゼロ以外のエラー・コードが含まれます。XML GENERATE 例外コードは、「ILE COBOL プログラマーズ・ガイド」で説明されています。
XML-EVENT 特殊レジスターは、XML パーサーから XML PARSE ステー トメントで識別された処理プロシージャーへ、イベント情報を通信するために使用されます。制御が処理プロシージ ャーへ渡される前に、XML パーサーは、XML-EVENT 特殊レジスターを、 表 36 にあるような XML イベントの名前に設定します。
XML-CODE 特殊レジスターには、次の暗黙定義があります。
01 XML-EVENT USAGE DISPLAY PICTURE X(30) VALUE SPACE.
ネストされたプログラムの中で使用される際には、この特殊レジスタ ーは、最外部のプログラム内で、グローバル属性によって暗黙に定義されます。
XML-EVENT を、受信データ項目として使用することはできません。
表 36. XML-EVENT および XML-TEXT ま たは XML-NTEXT 特殊レジスターの内容
XML イベント (XML-EVENT の 内容) | XML-TEXT または XML-NTEXT の内容 |
ATTRIBUTE-CHARACTER | 属性値にある定義済みエンティティー参照に相当する 単一の文字。 |
ATTRIBUTE-CHARACTERS | 引用符またはアポストロフィーで囲まれた値。 値がエンティティー参照を含む場合、これは属性値のサブストリングと することができます。 |
ATTRIBUTE-NAME | 属性名、= の左側にあるストリング |
ATTRIBUTE-NATIONAL-CHARACTER | XML PARSE ステートメントの ID-1 によって 指定された XML 文書のタイプにかかわらず、XML-TEXT は空であり、 XML-NTEXT は、(数値) 文字参照に相当する単一の国別文字を含む。 |
COMMENT | 開始文字シーケンス「<!--」と終了文字 シーケンス「-->」の間にあるコメントのテキスト |
CONTENT-CHARACTER | 要素コンテントにある定義済みエン ティティー参照に相当する単一の文字。 |
CONTENT-CHARACTERS | 開始タグと終了タグの間にある要素コンテント。 コンテントがエンティティー参照または別の要素を含む場合、これを要 素コンテントのサブストリングとすることができます。 |
CONTENT-NATIONAL-CHARACTER | XML PARSE ステートメントの ID-1 によって 指定された XML 文書のタイプにかかわらず、XML-TEXT は空であり、 XML-NTEXT は、(数値) 文字参照に相当する単一の国別文字を含む。 |
DOCUMENT-TYPE-DECLARATION | 開始文字シーケンス「<!DOCTYPE」および終 了文字シーケンス「>」を含む、すべての文書タイプ宣言。 |
ENCODING-DECLARATION | 引用符またはアポストロフィーで囲まれた、 XML 宣言内のエンコード宣言の値。 |
END-OF-CDATA-SECTION | 常時、ストリング「]]>」を 含む。 |
END-OF-DOCUMENT | Null、長さゼロ |
END-OF-ELEMENT | 終了要素タグまたは空の要素タグの名前。 |
EXCEPTION | 例外が検出されたポイントまでを含む、正常にスキャンされた文書の部分。1 |
PROCESSING-INSTRUCTION-DATA | 処理命令の残り、終了シーケンス「?>」は含ま ないが、末尾の空白文字は含み、先頭の空白文字は含まない。 |
PROCESSING-INSTRUCTION-TARGET | 処理命令ターゲット名、処理命令である開始シ ーケンス「<?」の直後にある。. |
STANDALONE-DECLARATION | 引用符またはアポストロフィーで囲まれた、 XML 宣言内のスタンドアロン宣言の値。 |
START-OF-CDATA-SECTION | 常時、ストリング「<![CDATA[」を含む。 |
START-OF-DOCUMENT | 文書全体。 |
START-OF-ELEMENT | 開始要素タグまたは空の要素タグの名前、エレ メント・タイプとも言う。 |
UNKNOWN-REFERENCE-IN-CONTENT | エンティティー参照名で、「&」および「;」区切り文字を含まない。 |
UNKNOWN-REFERENCE-IN-ATTRIBUTE | エンティティー参照名で、「&」および「;」区切り文字を含まない。 |
VERSION-INFORMATION | 引用符またはアポストロフィーで囲まれた、XML 宣言内のバージョン宣言の値。 これは、現行では常時「1.0」です。 |
注:
XML-NTEXT 特殊レジスターは、USAGE NATIONAL である文書フラグメ ントを含むように、XML 解析中に定義されます。
XML-NTEXT は、含まれている XML 文書フラグメントの長さの基本国別データ項目です。 XML-NTEXT の長さは、ゼロから 8,000,000 までの国別文字 位置をとることができます。 最大バイト長は 16,000,000 です。
ネストされたプログラムの中で使用される際には、この特殊レジスタ ーは、最外部のプログラム内で、グローバル属性によって暗黙に定義されます。
以下のケースでは、パーサーは、XML-NTEXT を、イベントに関連する文書フ ラグメントに設定してから、制御を処理プロシージャーに転送します。
XML-NTEXT が設定されている場合、 XML-TEXT 特殊レジスターの長さはゼロです。 いつでも、2 つの特殊レジスター XML-NTEXT および XML-TEXT の うち 1 つだけが、ゼロ以外の長さとなります。
LENGTH 関数を使用して、XML-NTEXT が含む国別文字の数を決 定してください。XML-NTEXT に対する LENGTH OF 特殊レジスターには、国 別文字の数ではなく、XML-NTEXT に含まれているバイト数があります。
XML-NTEXT を、受け入れ項目として使用することはできません。
XML-TEXT 特殊レジスターは、クラス英数字である文書フラグメ ントを含むように、XML 解析中に定義されます。
XML-TEXT は、含まれている XML 文書フラグメントの長さの基本英数字データ項目です。 XML-TEXT の 長さは、ゼロから 16,000,000 バイトまでをとることができます。
ネストされたプログラムの中で使用される際には、この特殊レジスタ ーは、最外部のプログラム内で、グローバル属性によって暗黙に定義されます。
XML PARSE ステートメントのオペランドが、 ATTRIBUTE-NATIONAL-CHARACTER イベントおよび CONTENT-NATIONAL-CHARACTER イベント を除く英数字データ項目の場合、パーサーは、XML-TEXT を、イベントに関連する文書フ ラグメントに設定してから、制御を処理プロシージャーに転送します。
XML-TEXT が設定されている場合、 XML-NTEXT 特殊レジスターの長さはゼロです。 いつでも、2 つの特殊レジスター XML-NTEXT および XML-TEXT の うち 1 つだけが、ゼロ以外の長さとなります。
LENGTH 関数または XML-TEXT に対する LENGTH OF 特殊レジスターを 使用して、XML-TEXT が含むバイト数を決定します。
XML-TEXT を、受け入れ項目として使用することはできません。
+------------------------------End of IBM 拡張-------------------------------+