XMLSS における新規、変更、無変更、および中止イベント
- XMLPARSE の設定 XMLSS と COMPAT の違いを理解したら、プログラムで XMLPARSE(XMLSS) を使用するようにマイグレーションできます。 これらの違いは、XMLPARSE(XMLSS) が有効になった時点で、新規、変更、無変更、および中止イベントとして説明されます。
- ATTRIBUTE-CHARACTER イベント (中止)
- XMLSS: ATTRIBUTE-CHARACTER イベントはなくなりました。
定義済みのものを含めてすべてのエンティティー参照は、未解決のエンティティー参照がない限り ATTRIBUTE-CHARACTERS イベントに含まれるようになりました。未解決のものがある場合は、例外イベントがシグナル通知されます。
- COMPAT: ATTRIBUTE-CHARACTER イベントは、定義済みエンティティー参照に対してのみ発生します。5 つの定義済みエンティティー参照を、表 表 1 に示します。
XML-TEXT または XML-NTEXT には、属性値の定義済みエンティティー参照に対応する単一文字が含まれます。定義済みエンティティー参照を、表 表 1 に示します。
文字エンティティー参照は、
ATTRIBUTE-NATIONAL-CHARACTER イベントとしてシグナル通知されます。
- XMLSS へのマイグレーション: ATTRIBUTE-CHARACTER
イベントへの参照を削除し、このイベントに対するアクションを ATTRIBUTE-CHARACTERS
イベント処理に統合します。
- ATTRIBUTE-CHARACTERS イベント (変更)
- XMLSS: XML-TEXT および XML-NTEXT は、ATTRIBUTE-CHARACTERS イベントに対する値のサブストリングを持っていることがあります。 XML-TEXT または XML-NTEXT も、値にエンティティー参照が含まれる場合でもその値の完全なストリングを含むことがあります。
- COMPAT XML-TEXT および XML-NTEXT は、値にエンティティー参照が含まれている場合は、ATTRIBUTE-CHARACTERS イベントに対する値のサブストリングだけを持ちます。
- XMLSS へのマイグレーション: 属性値にエンティティー参照が含まれない場合でも複数のイベントを処理するように、ATTRIBUTE-CHARACTERS イベントを処理するコードを変更しなければなりません。 コードが ATTRIBUTE-CHARACTERS をマルチ・イベントとして処理していた場合、ATTRIBUTE-CHARACTERS を単一イベントとして処理するようにコードを変更しなければなりません。
- ATTRIBUTE-NAME イベント (変更)
- ATTRIBUTE-NATIONAL-CHARACTER イベント (中止)
- XMLSS: ATTRIBUTE-NATIONAL-CHARACTER イベントはなくなりました。
定義済みのものを含めてすべての解決済みエンティティー参照は、未解決のエンティティー参照がない限り ATTRIBUTE-CHARACTERS イベントに含まれるようになりました。未解決のものがある場合は、例外イベントがシグナル通知されます。5 つの定義済みエンティティー参照を、表 表 1 に示します。
- COMPAT: XML PARSE ステートメント内の identifier-1 が指定する XML 文書のタイプに関わらず、XML-TEXT は空で、XML-NTEXT には (数字) 文字参照に対応する単一国別文字が含まれます。
- XMLSS へのマイグレーション: ATTRIBUTE-NATIONAL-CHARACTER
イベントへの参照を削除し、このイベントに対するアクションを ATTRIBUTE-CHARACTERS
イベント処理に統合します。
- COMMENT イベント (変更)
- XMLSS: XML-TEXT および XML-NTEXT は、COMMENT イベントに対する値のサブストリングを持っていることがあります。
- COMPAT XML-TEXT および XML-NTEXT は、COMMENT イベントに対する値の完全なストリングを常に持っていす。
- XMLSS へのマイグレーション: XML-TEXT または XML-NTEXT の COMMENT 値のサブストリングを受け取った場合でも複数のイベントを処理するように、COMMENT イベントを処理するコードを変更しなければなりません。 その場合、2 つ以上の COMMENT イベントを連続して受け取り、ストリングを連結して値の完全なストリングを再作成します。
- CONTENT-CHARACTER イベント (中止)
- XMLSS: CONTENT-CHARACTER イベントはなくなりました。
定義済みのものを含めてすべてのエンティティー参照は、未解決のエンティティー参照がない限り CONTENT-CHARACTERS イベントに含まれるようになりました。未解決のものがある場合は、EXCEPTION または UNRESOLVED-REFERENCE イベントがシグナル通知されます。
- COMPAT: CONTENT-CHARACTER エベントは、定義済みエンティティー参照に対してのみ発生します。5 つの定義済みエンティティー参照を、表 表 1 に示します。
- XMLSS へのマイグレーション: CONTENT-CHARACTER
イベントへの参照を削除し、このイベントに対するアクションを CONTENT-CHARACTERS
イベント処理に統合します。
- CONTENT-CHARACTERS イベント (変更)
- XMLSS: XML-TEXT および XML-NTEXT は、CONTENT-CHARACTERS イベントに対する値のサブストリングを持っていることがあります。 XML-TEXT または XML-NTEXT も、値にエンティティー参照が含まれる場合でもその値の完全なストリングを含むことがあります。
- COMPAT XML-TEXT および XML-NTEXT は、値にエンティティー参照が含まれている場合は、CONTENT-CHARACTERS イベントに対する値のサブストリングだけを持ちます。
- XMLSS へのマイグレーション: 属性値にエンティティー参照が含まれない場合でも複数のイベントを処理するように、CONTENT-CHARACTERS イベントを処理するコードを変更しなければなりません。 コードが CONTENT-CHARACTERS をマルチ・イベントとして処理していた場合、CONTENT-CHARACTERS を単一イベントとして処理するようにコードを変更しなければなりません。
- CONTENT-NATIONAL-CHARACTER イベント (中止)
- XMLSS: CONTENT-NATIONAL-CHARACTER イベントはなくなりました。
文字参照を含めてすべてのエンティティー参照は、未解決のエンティティー参照がない限り CONTENT-CHARACTERS イベントに含まれるようになりました。未解決のものがある場合は、EXCEPTION または UNRESOLVED-REFERENCE イベントがシグナル通知されます。
- COMPAT: XML PARSE ステートメント内の identifier-1 が指定する XML 文書のタイプに関わらず、XML-TEXT は空で、XML-NTEXT には (数字) 文字参照に対応する単一国別文字が含まれます。
- XMLSS へのマイグレーション: CONTENT-NATIONAL-CHARACTER
イベントへの参照を削除し、このイベントに対するアクションを CONTENT-CHARACTERS
イベント処理に統合します。
- DOCUMENT-TYPE-DECLARATION イベント (変更)
- XMLSS: XML-TEXT または XML-NTEXT には、文書タイプ宣言 (DTD) に指定されるように、ルート・エレメントの名前が含まれます。
パーサーは内部 DTD をスキャンしてエンティティー宣言とデフォルトの属性値を探して処理し、セクション内の残りのテキストは無視します。
- COMPAT: XML-TEXT または XML-NTEXT には、宣言全体が含まれます。
- XMLSS へのマイグレーション: XML 文書から直接情報を獲得するように、DOCUMENT-TYPE-DECLARATION イベントを処理するコードを変更しなければなりません。
- ENCODING-DECLARATION イベント (変更)
- XMLSS XML-TEXT または XML-NTEXT には、XML 宣言からの完全なエンコード宣言が含まれます。パーサーはエンコード宣言を使用しないので、不良文字を受け取ることがあります。その場合、パーサーは EXCEPTION イベントをシグナル通知します。これはリカバリー不能です。
- COMPAT XML-TEXT または XML-NTEXT には、XML 宣言からの完全なエンコード宣言が含まれます。エンコードにエラーがあると、EXCEPTION イベントを受け取ります。これはリカバリーおよび継続不能です。
- XMLSS へのマイグレーション: 構文解析の前に資料をチェックするか、または、CODEPAGE コンパイラー・オプションを使用するか、XML PARSE ステートメントで WITH ENCODING 句を使用して、エンコード方式を指定してください。
- END-OF-CDATA-SECTION イベント (変更)
- XMLSS: XML-EVENT および XML-CODE を除くすべての XML 特殊レジスターは空で、長さはゼロです。
- COMPAT: XML-TEXT または XML-NTEXT には、常にストリング "]]>"が含まれます。
- XMLSS へのマイグレーション: END-OF-CDATA-SECTION イベントからストリング "]]>" を獲得した場合は、リテラルまたはデータ項目 (たとえば、VALUE "]]>" 節で) を使用して、手動で返すようにコードを変更してください。
- END-OF-DOCUMENT イベント (無変更)
- XMLSS および COMPAT は、END-OF-DOCUMENT イベントに対して同じ振る舞いをします。
- XMLSS へのマイグレーション: 変更の必要はありません。
- END-OF-ELEMENT イベント (変更)
- XMLSS: XML-TEXT または XML-NTEXT には、エンド・エレメント・タグまたは空のエレメント・タグ名のローカル・パーツが含まれます。
エレメント名が名前空間にある場合、XML-NAMESPACE または XML-NNAMESPACE には名前空間が含まれます。そうでない場合は空で長さはゼロです。エレメント名が名前空間にあり、接頭部 ("prefix:local-part" の形式) がある場合、XML-NAMESPACE-PREFIX または XML-NNAMESPACE-PREFIX には接頭部が含まれます。そうでない場合は空で長さはゼロです。
- COMPAT XML-TEXT または XML-NTEXT には、接頭部を含む完全なエレメント・タグ名が含まれます。エレメント名が名前空間にない場合、END-OF-ELEMENT に対する COMPAT と XMLSS に違いはありません。
- XMLSSへのマイグレーション: エレメント名が名前空間にない場合、変更の必要はありません。エレメント名が名前空間にある場合は、完全なエレメント名を使用しないようにコードを変更するか、NAMESPACE 特殊レジスターから完全なエレメント名を再作成するようにコードを変更して下さい。
- END-OF-INPUT イベント (新規)
- XMLSS: END-OF-INPUT イベントは、XML 文書のセグメントの終わりを示します。
- COMPAT: END-OF-INPUT イベントはなくなりました。
- XMLSS へのマイグレーション: XMLPARSE(COMPAT) では文書は 1 つのセグメントにあります。XMLPARSE(XMLSS) に変更するためには、変更の必要はありません。
- EXCEPTION イベント (変更)
- XMLSS: XML-CODE には、例外を特定する固有のエラー・コードが含まれます。
XML-CODE の違いの説明については、以下のセクション「その他の違い」を参照してください。
XML-TEXT または XML-NTEXT には、EXCEPTION イベントを発生させたエラーまたは異常の発生時点までの文書のフラグメントが含まれます。XML-EVENT 以外のすべての XML 特殊レジスターは空で、長さはゼロです。EXCEPTION イベントからの継続はできません。
- COMPAT XML-TEXT または XML-NTEXT には、EXCEPTION イベント発生時点までに解析された文書全体が含まれます。継続可能な EXCEPTION イベントもあります。
- XMLSS へのマイグレーション: コードまたは文書が、EXCEPTION イベントからリカバリーできるかどうかに依存する場合は、変更しなければなりません。
- NAMESPACE-DECLARATION イベント (新規)
- XMLSS: XML-TEXT および XML-NTEXT はどちらも空で長さはゼロです。
XML-NAMESPACE または XML-NNAMESPACE には、宣言された名前空間が含まれます。
空ストリングを指定することによって、名前空間が「宣言されていない」場合は、
XML-NAMESPACE および XML-NNAMESPACE は空で長さがゼロです。
名前空間の属性名が "xmlns:prefix" の形式の場合は、XML-NAMESPACE-PREFIX または XML-NNAMESPACE-PREFIX には、接頭部が含まれます。そうでない場合は、宣言がデフォルトの名前空間のものであり属性名が "xmlns" であれば、XML-NAMESPACE-PREFIX
および XML-NNAMESPACE-PREFIX はいずれも空で長さがゼロです。
- COMPAT: NAMESPACE-DECLARATION イベントはなくなりました。
- XMLSS へのマイグレーション: XMLSS へのマイグレーション後に NAMESPACE-DECLARATION
イベントを受け取る場合は、この表の ATTRIBUTE-NAME、END-OF-ELEMENT、および START-OF-ELEMENT イベントの変更点を参照してください。
- PROCESSING-INSTRUCTION-DATA イベント (変更)
- XMLSS: XML-TEXT および XML-NTEXT は、PROCESSING-INSTRUCTION-DATA イベントに対する値のサブストリングを持っていることがあります。
- COMPAT XML-TEXT および XML-NTEXT は、PROCESSING-INSTRUCTION-DATA イベントに対する値の完全なストリングを常に持っていす。
- XMLSS へのマイグレーション: XML-TEXT または XML-NTEXT の PROCESSING-INSTRUCTION-DATA 値のサブストリングを受け取った場合でも複数のイベントを処理するように、PROCESSING-INSTRUCTION-DATA イベントを処理するコードを変更しなければなりません。 その場合、2 つ以上の PROCESSING-INSTRUCTION-DATA イベントを連続して受け取り、ストリングを連結して値の完全なストリングを再作成します。
- PROCESSING-INSTRUCTION-TARGET イベント (無変更)
- XMLSS および COMPAT は、PROCESSING-INSTRUCTION-TARGET イベントに対して同じ振る舞いをします。
- XMLSS へのマイグレーション: 変更の必要はありません。
- STANDALONE-DECLARATION イベント (無変更)
- XMLSS および COMPAT は、STANDALONE-DECLARATION イベントに対して同じ振る舞いをします。
- XMLSS へのマイグレーション: 変更の必要はありません。
- START-OF-CDATA-SECTION イベント (変更)
- XMLSS: XML-EVENT および XML-CODE を除くすべての XML 特殊レジスターは空で、長さはゼロです。
- COMPAT: XML-TEXT または XML-NTEXT には、常にストリング "![CDATA["が含まれます。
- XMLSS へのマイグレーション: START-OF-CDATA-SECTION イベントからストリング "![CDATA[" を獲得した場合は、リテラルまたはデータ項目 (たとえば、VALUE "![CDATA[" 節で) を使用して、手動で返すようにコードを変更してください。
- START-OF-DOCUMENT イベント (変更)
- XMLSS: XML-EVENT および XML-CODE を除くすべての XML 特殊レジスターは空で、長さはゼロです。
- COMPAT: XML-TEXT または XML-NTEXT には、文書全体が含まれます。
- XMLSS へのマイグレーション: START-OF-DOCUMENT に対して文書全体が必要でないようにコードを変更してください。
- START-OF-ELEMENT イベント (変更)
- XMLSS: XML-TEXT または XML-NTEXT には、スタート・エレメント名または空のエレメント名のローカル・パーツが含まれます。
エレメント名が名前空間にある場合、XML-NAMESPACE または XML-NNAMESPACE には名前空間が含まれます。そうでない場合は空で長さはゼロです。エレメント名が名前空間にあり、接頭部 ("prefix:local-part" の形式) がある場合、XML-NAMESPACE-PREFIX または XML-NNAMESPACE-PREFIX には接頭部が含まれます。そうでない場合は空で長さはゼロです。
- COMPAT XML-TEXT または XML-NTEXT には、接頭部を含む完全なスタート・エレメント名が含まれます。エレメント名が名前空間にない場合、START-OF-ELEMENT に対する COMPAT と XMLSS に違いはありません。
- XMLSSへのマイグレーション: エレメント名が名前空間にない場合、変更の必要はありません。エレメント名が名前空間にある場合は、完全なエレメント名を使用しないようにコードを変更するか、NAMESPACE 特殊レジスターから完全なエレメント名を再作成するようにコードを変更して下さい。
- UNKNOWN-REFERENCE-IN-ATTRIBUTE イベント (中止)
- UNKNOWN-REFERENCE-IN-CONTENT イベント (中止)
- XMLSS なくなりました。
- COMPAT XML-TEXT または XML-NTEXT には、"&" および ";" 区切り文字を含まない、エンティティー参照名が含まれます。
- XMLSS へのマイグレーション: XML 文書から、属性値内の未解決の参照を除去してください。
- UNRESOLVED-REFERENCE イベント (新規)
- XMLSS XML-TEXT または XML-NTEXT には、"&" および ";" 区切り文字を含まない、エンティティー参照名が含まれます。
- COMPAT: このイベントはなくなりました。代わりに、UNKNOWN-REFERENCE-IN-CONTENT
イベントが発生します。
- XMLSS へのマイグレーション: UNKNOWN-REFERENCE-IN-CONTENT および
UNKNOWN-REFERENCE-IN-ATTRIBUTE を参照してください。
- VERSION-INFORMATION イベント (無変更)
- XMLSS および COMPAT は、VERSION-INFORMATION イベントに対して同じ振る舞いをします。
- XMLSS へのマイグレーション: 変更の必要はありません。
COMPAT と XMLSS のその他の違い
- XML-CODE
- XMLSS: パーサーによって、EXCEPTION イベントに対して XML-CODE がセットされている場合、最初のハーフワードが戻りコード、最後のハーフワードが理由コードです。
値を 16 進数に変換して、戻りコードと理由コードを XMLSS マニュアル z/OS XML System Services Users Guide and Reference から探して下さい。
- COMPAT: XML-CODE 値は、
COBOL Programming Guide では10 進数で記述されています。
- XMLSS へのマイグレーション: プログラムが、EXCEPTION イベントに対して特定の XML-CODE 値をテストする場合、コード内のこれらの値を変更する必要があります。
表 1. 定義済みエンティティー参照| 定義済みエンティティー |
文字 |
| < |
< |
| > |
> |
| & |
& |
| ' |
' |
| " |
" |