XML 順応

ILE COBOL に含まれた XML パーサーは、 XML 仕様の定義に従った順応 XML プロセッサーではありません。 パーサーは、構文解析する XML 文書を妥当性検査しません。 パーサーは、多くの整形式エラーは検査しますが、 XML 非妥当性検査プロセッサーに必要なすべてのアクションを行うわけで はありません。

特に、内部の文書タイプ定義 (DTD 内部サブセット) を処理しません。 そのため、デフォルトの属性値を提供せず、 属性値を正規化せず、また事前定義エンティティー以外の 内部エンティティーの置換テキストを含みません。 その代わりに、文書タイプ宣言全体を DOCUMENT-TYPE-DESCRIPTOR XML イベント の XML-TEXT または XML-NTEXT の中身として渡し、 それにより、必要ならばアプリケーションがそれらのアクションを行うこ とができます。

パーサーはオプションとして、いくつかのエラー発生後も XML 文書の処理を継続することを許可します。 その目的は、XML 文書および処理プログラムのデバッグを容易にするためです。

XML 仕様の定義を要約すると、テキスト・オブジェクトは、以下の条件 を満たしているなら整形式 XML 文書です。

COBOL XML パーサーは、文書タイプ宣言を除いて、文書が XML の文法に 準拠していることを検査します。 文書タイプ宣言は、未検査のまま、その全体がアプリケーションに渡されます。

以下の内容は、XML 仕様からの注釈です。 W3C は、元の URL (www.w3.org/TR/REC-xml) にないコンテンツに対しては責任を持ちません。 注釈はすべて、標準を定めるものではなく、イタリ ック で示されています。

Copyright (C) 1994-2001 W3C (R) (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University), All Rights Reserved. W3C liability, trademark, document use, and software licensing rules apply. (www.w3.org/Consortium/Legal/ipr-notice-20000612)

XML 仕様は、12 の明示的な整形式制約も含みます。 COBOL XML パーサーが部分的にまたは完全に検査する制約は 、太字で示されています。

  1. 内部サブセットのパラメーター・エンティティー (PE)
    「内部 DTD サブセットでは、 パラメーター・エンティティー参照は、マークアップ宣言を配置できる個所のみに配置でき、 マークアップ宣言の中には配置できない。 (これは、外部パラメーター・エンティティー内に位置する参照や、外部サブセットへの参照にはあてはまりません。) "

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

  2. 外部サブセット
    「外部サブセットが存在する場合は、生成規則 extSubset に適合しなければならない。」

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

  3. 宣言間のパラメーター・エンティティー
    「DeclSep 中のパラメーター・エンティティー参照の置換テキストは、 プロダクション extSubsetDecl に一致しなければならない。」

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

  4. エレメント・タイプ一致
    「エレメントの終了タグ中の Name は、 エレメントの開始タグ中のエレメント・タイプに合致しなければならない。」

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

  5. 固有な属性指定
    「 いかなる属性名も、同じ開始タグまたは空エレメント・タグ中に 2 回以上現れてはならない。 」

    パーサーは、各エレメントにつき、10 個の属性 名まで固有であることを検査することで、この制約を部分的にサポートします。 この限度を越えた属性名は、アプリケーションで検査することが できます。

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

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

  7. 属性値中に「<」なし
    「 属性値の中で直接的または間接的に参照されるどのエンティティーの置換テキストも、「<」を含んではならない。」

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

  8. 有効文字
    「文字参照を使用して参照される文字は、生成規則 Char に適合しなければならない。」

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

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

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

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

  10. 構文解析対象エンティティー
    「エンティティー参照は 、構文解析対象外エンティティーの 名前を含んではならない。構文解析対象外エンティティーは、タイプが ENTITY また は ENTITIES として宣言された属性値の中でのみ 参照することができます。」

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

  11. 再帰なし
    「構文解析対象エンティティーは、 直接的にも間接的にも、自身に対する再帰的参照を含んではならない。 」

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

  12. DTD 中である
    「パラメーター・エンティティー参照は、DTD 中にしか現れてはならない。 」

    このエラーが発生することが不可能なので、パーサーはこの制約を強制しません。

上記の資料は、XML 仕様に含まれる注釈です。 W3C は、元の URL (www.w3.org/TR/REC-xml) にないコンテンツに対しては責任を持ちません。これらの注釈はすべて、 標準を定めるものではありません。 この資料は、W3C メンバーおよび関係者によって検討され、 ディレクターによって W3C 推奨として承認されました。 これは信頼できる資料であり、 参照資料としての利用および、標準を定めるリファレンスとして他の資料からの引用が可能です。 仕様の標準版は、W3C サイトにある英語版であり、 翻訳文書は翻訳による誤りを含む可能性があります。

関連概念
COBOL の XML パーサー

関連リファレンス
XML specification」(www.w3c.org/XML/)
『2.8 Prolog and document type declaration』(www.w3.org/TR/REC-xml#sec-prolog-dtd の「XML specification」)