Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


XML 準拠

COBOL for Windows に組み込まれている XML パーサーは、「XML 仕様」の定義に従った規格合致 XML プロセッサーではありません。 XML パーサーは、構文解析する XML 文書の妥当性検査を 行いません。XML パーサーは、各種の整形式性エラーの検査は行いますが、妥当性検証をしない XML プロセッサーに必要とされるアクションのすべてを行うわけではありません。

特に、XML パーサーは、内部文書タイプ定義 (DTD 内部サブセット) を 処理しません。したがって、XML パーサーは、デフォルト属性値の提供、属性値の正規化、および事前定義エンティティーを除く、内部エンティティーの置換テキストの組み込みを行いません。ただし、XML パーサーは、文書タイプ宣言全体を DOCUMENT-TYPE-DESCRIPTOR XML イベントの XML-TEXT または XML-NTEXT の内容として渡します。したがって、アプリケーションは、必要に応じて、これらのアクションを実行することができます。

オプションとして、パーサーを使用すると、プログラムはエラー後に XML 文書の処理を続行することができます。処理の続行を可能にする目的は、XML 文書および処理プロシージャーのデバッグを容易にすることです。

XML 仕様」での定義を要約すると、以下の場合に、 テキスト・オブジェクトは整形式 XML 文書です。

COBOL XML パーサーでは、文書タイプ宣言を除き、文書が XML 文法に準拠しているかを検査します。文書タイプ宣言は、 チェックされない状態でそのままアプリケーションに渡されます。

以下の資料は、 「XML 仕様」からの注釈です。オリジナル URL (www.w3.org/TR/REC-xml) に 存在しない内容については、W3C は責任を負いません。注釈はすべて、仕様には含まれておらず、イタリック体 で記述されています。

Copyright (C) 1994-2002 W3C (R) (マサチューセッツ工科大学、フランス国立情報学自動制御研究所、慶応義塾大学)、All Rights Reserved. W3C の責任、商標、文書使用、およびソフトウェア・ライセンスの規則が適用されます。 (www.w3.org/Consortium/Legal/ipr-notice-20000612)

また、「XML 仕様」には、12 事項の明示的な整形式性制約が記述されています。COBOL XML パーサーが部分的または全面的に検査する制約事項は太字で 記述されています。

  1. 内部サブセット内のパラメーター・エンティティー (PE): 「内部 DTD サブセットの中では、パラメーター・エンティティー参照は、マークアップ宣言の内部ではなく、マークアップ宣言が発生できる場所でしか発生できない。(この制約は、外部パラメーター・エンティティーの中で発生する参照や 外部サブセットには適用されない。)」

    パーサーは内部 DTD サブセットを処理しないので、この制約を強制しません。

  2. 外部サブセット: 「外部サブセットが存在している場合は、そのプロダクションを extSubset に 一致させなくてはならない。」

    パーサーは外部サブセットを処理しないので、この制約を強制しません。

  3. 宣言と宣言の間のパラメーター・エンティティー: 「DeclSep のパラメーター・エンティティー参照のテキストの置換はそのプロダクションを extSubsetDecl に一致させなくてはならない。」

    パーサーは内部 DTD サブセットを処理しないので、この制約を強制しません。

  4. エレメント・タイプの突き合わせ: 「エレメントの終了タグの名前は、開始タグのエレメント・タイプと一致させなければならない。」

    パーサーはこの制約を強制します。

  5. 属性指定の一意性: 「同じ開始タグまたは空エレメント・タグの中に 1 回を超えて現れてよい属性名はない。」

    パーサーで、一意性について、指定したエレメント内の最大 10 までの属性名が検査され、この制約は部分的にサポートされます。アプリケーションは、この限度を超える属性名を検査できます。

  6. 外部エンティティー参照の禁止: 「属性値は、外部エンティティーへの直接的または間接的エンティティー参照を含むことができない。」

    パーサーはこの制約を強制しません。

  7. 属性値内の '<' の禁止: 「属性値の中で直接的または間接的に参照するエンティティーの置換テキストは、'<' を含んではならない。」

    パーサーはこの制約を強制しません。

  8. 正しい文字: 「文字参照の使用に言及する文字は、そのプロダクションを Char に一致させなくてはならない。」

    パーサーはこの制約を強制します。

  9. エンティティーの宣言: 「DTD のない文書、パラメーター・エンティティー参照が含まれない内部 DTD サブセットだけしかない文書、または standalone='yes' の文書においては、外部サブセットまたはパラメーター・エンティティー内で発生しないエンティティー参照に おいて与えられている Name が、外部サブセット、またはパラメーター・エンティティー内で発生しないエンティティー宣言の中の ものと一致しなければならない。ただし、整形式文書は、次のエンティティー amp、lt、gt、apos、quot を宣言する必要はない。一般的エンティティーの宣言は、属性リスト宣言内のデフォルト値に現れる、それに対するどの参照よりも先行しなければならない。」

    エンティティーが外部サブセットまたは外部パラメーター・エンティティーで宣言されている場合、妥当性検査をしないプロセッサーは、それらの宣言を読み取って処理するよう強制されないことに注意してください。そのような文書の場合、エンティティーを宣言しなければならないという規則は、standalone='yes' の場合にのみ 整形式制約です。

    パーサーはこの制約を強制しません。

  10. 解析済みエンティティー: 「エンティティー参照は、解析対象外エンティティーの名前を含んではならない。解析対象外エンティティーを参照してもよいのは、ENTITY 型または ENTITIES 型として宣言した属性値の中だけである。」

    パーサーはこの制約を強制しません。

  11. 再帰の禁止: 「解析されるエンティティーは、直接的または間接的を問わず、それ自身への再帰的参照を含めてはならない。」

    パーサーはこの制約を強制しません。

  12. DTD 内: 「パラメーター・エンティティー参照が出現してよいのは、DTD の中だけである。」

    このエラーは起こらないので、パーサーはこの制約を強制しません。

上記の資料は、 「XML 仕様」からの注釈です。オリジナル URL (www.w3.org/TR/REC-xml) に 存在しない内容については、W3C は責任を負いません。上記の注釈はすべて、仕様には含まれていません。本文書は、W3C メンバーや他の関係者による校閲を受け、ディレクターによって W3C 推奨文書として承認されています。本文書は継続的に提供される文書であり、参照資料として使用されたり、別文書で仕様に含まれる資料として引用される可能性があります。仕様の正規版は英語バージョンで、W3C のサイトで確認することができます。翻訳文書については、翻訳上の誤りが含まれる可能性があります。

関連概念
COBOL での XML パーサー

関連参照
Extensible Markup Language (XML)
2.8 Prolog および文書タイプ宣言 (「XML 仕様」)


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)