これらの単純な規則は複雑な相互作用をもつ場合がある。するために使うことができる。この目的のために指定されている。数的キャラクタ参照を使ってもよい。エスケープしてもよい。XMLプロセッサはすべて、宣言されているか否かを問わず、これらの実体を認識しなければならない。相互運用性のため、妥当なXML文書は、他のものと同じように、使用前にこれらの実体を宣言するべきである。問題の実体が宣言されるならば、それらは下記に示したように、エスケープされている単一のキャラクタかそのキャラクタへのキャラクタ参照が置換テキストである内部実体として宣言されなければならない。キャラクタは、実体置換が整形式であることという要求に沿うために二重にエスケープされることに注意すること。解析されない実体の書式、表記属性を生み出す要素の書式、処理命令がアドレスされるアプリケーションを、名前によって識別する。XMLプロセッサやそのクライアントアプリケーションが与えられた表記で書かれたデータの処理ができるヘルパーアプリケーションの位置を決定できるようにしてよい表記法に外部識別子を与える。中で宣言され、または参照されているどの表記法であってもその名前と外部識別子を与えなければならない。プロセッサは、さらに、外部識別子をシステム識別子やファイル名、その他、記述されている表記法で書かれたデータのためのプロセッサをアプリケーションが呼べるようにするために必要な情報へと解釈する。(しかしながら、XML文書が、XMLプロセッサやアプリケーションが走っているシステム上で利用可能でない、表記法特有のアプリケーションのための表記法を宣言または参照することは、エラーではない。あり、XMLプロセッサにとっての出発点である。この仕様書は、文書実体がXMLプロセッサによってどのように位置を決定されるかは規定しない。他の実体とは異なり、文書実体は名前をもたず、まったく識別なしにプロセッサの入力ストリーム上に現れてもおかしくないのである。妥当性を検証するプロセッサと検証しないプロセッサ適合的なXMLプロセッサは、2つのクラスに分かれる。妥当性を検証するものと検証しないものとである。文書実体や、プロセッサが読むその他の解析される実体の内容の中にある、この仕様書の整形式性制約の違反を報告しなければならない。DTDの中の宣言によって表わされた制約の違反と、この仕様書の中で与えられている妥当性制約を満たすことの失敗を報告しなければならない。これを達成するために、妥当性を検証するXMLプロセッサは、DTD全体と、文書内で参照されている解析される外部実体のすべてを読んで処理しなければならない。妥当性を検証しないプロセッサは、整形式性について、内部DTDサブセット全体を含めた文書実体をチェックすることだけが要求される。内部DTDサブセットの中や、プロセッサが読んだパラメータ実体の中で、プロセッサが読まないパラメータ実体への最初の参照までにあるあるすべての宣言を処理することが要求される。それらの宣言の中の情報を使わなければならない。プロセッサは、読まれないパラメータ実体への参照の後に遭遇した実体宣言や属性リスト宣言を処理してはならない。実体が上書き宣言を含んでいるかもしれないからである。妥当性を検証するXMLプロセッサの挙動は、高度に予見可能である。プロセッサは、文書のすべての部分を読み、すべての整形式性違反および妥当性違反を報告しなければならない。妥当性を検証しないプロセッサでは更に不要であるが、妥当性を検証するプロセッサも、文書のうち文書実体以外の部分は読む必要がない。このことは、XMLプロセッサのユーザにとって重要な場合がある2つの影響をもつ。一定の整形式性エラー、とくに外部実体を読むことを要求するものは、妥当性を検証しないプロセッサによって探知されない場合がある。されている場合のうちのいくつかがある。プロセッサからアプリケーションに渡される情報は、プロセッサがパラメータや外部実体を読むかどうかにより、異なる場合がある。デフォルト属性値を補わない場合がある。ここで、そのようにすることは、外部実体やパラメータ実体の宣言を読んだか否かによる。異なるXMLプロセッサの間での相互運用において最大の信頼性を得るために、妥当性を検証しないプロセッサを使うアプリケーションは、そうしたプロセッサに要求されない挙動を信頼するべきではない。外部実体内で宣言されたデフォルト属性や内部実体の使用といった能力を要求するアプリケーションは、妥当性を検証するXMLプロセッサを使うべきである。表記法を使って与えられている。文法中の各規則は、次のような形式で、1つのシンボルを定義する。シンボルは、正規表現によって定義されていれば先頭文字を大文字にして書かれ、そうでない場合には先頭文字を小文字にして書かれている。リテラル文字列は、引用符で括られる。規則の右辺の表現の内部では、1つ以上のキャラクタの文字列を照合するために、以下の表現が使われる。キャラクタに合致する。形式内の先頭の0の数は重要ではない。対応するコード値の中の先頭の0の数は、使われているキャラクタエンコーディングによって支配されるのであり、XMLにとっては重要ではない。[#xN-#xN]示された範囲内(両端を含む)にある値をもつ任意のキャラクタと合致する。[^#xN-#xN]示された範囲の外部にある値をもつ任意のキャラクタと合致する。[^#xN#xN#xN]与えられているキャラクタの中にない値をもつ任意のキャラクタに合致する。"string"二重引用符の内側に与えられている文字列に合致するリテラル文字列に合致する。'string'単引用符の内側に与えられている文字列に合致するリテラル文字列に合致する。これらのシンボルは、以下のように、より複雑なパターンを照合するために組み合わせてもよい。1つの単位として扱われ、このリストに記述されているように組み合わされる場合がある。