int xml_set_external_entity_ref_handler
(int parser, string handler);XML パーサ parser の表記宣言用ハンドラ関数 を設定します。 handler は、 parser に関して xml_parse がコールされた際に必要な関数の名前を有する文字列です。
handler という名前の関数は 5つのパラメータをとり、 整数値を返す必要があります。 ハンドラから返された値が FALSE の場合(これは値が返されない場合に 相当します)、XML パーサは処理を中断し、 xml_get_error_code は XML_ERROR_EXTERNAL_ENTITY_HANDLING を返します。
int handler
(int parser, string openEntityNames, string base, string systemId, string publicId);最初のパラメータ、parser は ハンドラをコールする XML パーサへのリファレンスです。
2番目のパラメータ、openEntityNames は、 エンティティの処理を行うためにオープンされたエンティティの 名前のスペース区切りのリストです。 (参照されるエンティティの名前を含みます)
これは外部エンティティのシステム ID (systemid) を有しています。 現在このパラメータは常に空の文字列に設定されています。
4番目のパラメータ、systemId は エンティティ宣言で指定されたシステム ID です。
5番目のパラメータ、publicId は エンティティ宣言で指定されたパブリック IDまたは指定されない場合は 空の文字列です。 パブリック ID の中の空白文字は、XML 仕様で規定された正規化を 行っています。
ハンドラ関数は、空の文字列またはハンドラが無効の場合 false に設定します。
ハンドラが設定されている場合、TRUE が返され、 parser がパーサでない場合に FALSE が 返されます。
オブジェクト/メソッド用ハンドラは現在サポートされていません。