処理命令 |
    <?target processing-instruction data?>
処理命令は、XML プロセッサへの検証されていない命令を XML アプリケーションが含むことができるようにするための、エスケープメカニズムとなります。処理命令のターゲットは、xml を除き、大文字と小文字を任意に組み合わせた有効な任意の XML 名とすることができます。詳細については、第 2 章 を参照してください。スタイルシートにリンクしてドキュメントのフォーマット命令を指定することは、このメカニズムの一般的な使用方法です。XML の原則では、フォーマット命令はドキュメントの実際のコンテンツとは別にする必要がありますが、何らかのメカニズムによって 2 つを関連付ける必要があります。処理命令は、それを認識するアプリケーションにとってのみ重要です。 表記機能により、どのようなタイプの処理命令を含めるかを完全に指定でき、個別の XML アプリケーションは、追加のデータの処理方法を決定する必要があります。特定の処理命令が宣言された表記に一致すると XML パーサーが認識するときに、XML パーサーによるアクションは不要です。この機能を使用する場合、特定の処理命令ターゲットのパブリック識別子またはシステム識別子を認識しないアプリケーションは、そのデータ部分を正しく解釈できないことを認識する必要があります。 文字エンコードの自動検出 XML 宣言は、Unicode のバイトオーダーマークが先頭に付けられている場合も含めて、ドキュメントの最初のアイテムとし、XML パーサーがドキュメントを保存するために使用された文字エンコードを調べられるようにする必要があります。XML 宣言の encoding="..." 句に関しては、どちらともいえない問題が存在します。つまり、ドキュメントが使用している文字エンコードをパーサーが調べることができない場合、パーサーはその句を解析できません。しかし、ドキュメントの最初の 5 つの文字は文字列 <?xml でなければならないため (XML 宣言を含む場合)、パーサーはドキュメントの最初の何バイトかを読み取ることができ、ほとんどの場合、encoding 宣言を読み取る前に文字エンコードを調べることができます。