xml_set_external_entity_ref_handler
外部エンティティリファレンスハンドラを設定する
&reftitle.description;
boolxml_set_external_entity_ref_handler
XMLParserparser
callablehandler
XML パーサ parser の外部エンティティ参照用ハンドラ関数を設定します。
&reftitle.parameters;
parser
外部エンティティリファレンスハンドラ関数を設定する XML パーサへの参照。
handler
handler は、
parser に関して xml_parse
がコールされた際に必要な関数の名前を有する文字列です。
handler という名前の関数は 5 つのパラメータをとり、
整数値を返す必要があります。ハンドラから返された値が &false; の場合
(これは値が返されない場合に相当します)、XML パーサは処理を中断し、
xml_get_error_code は
XML_ERROR_EXTERNAL_ENTITY_HANDLING
を返します。
handler
XMLParserparser
stringopen_entity_names
stringbase
stringsystem_id
stringpublic_id
parser
最初のパラメータ、parser は
ハンドラをコールする XML パーサへのリファレンスです。
open_entity_names
2 番目のパラメータ、open_entity_names は、
エンティティの処理を行うためにオープンされたエンティティの
名前のスペース区切りのリストです
(参照されるエンティティの名前を含みます)。
base
これは外部エンティティのシステム
ID (systemid) を有しています。
現在このパラメータは常に空の文字列に設定されています。
system_id
4 番目のパラメータ、systemId は
エンティティ宣言で指定されたシステム ID です。
public_id
5 番目のパラメータ publicId は、エンティティ宣言で
指定されたパブリック ID または指定されない場合は空の
文字列です。パブリック ID の中の空白文字は、XML 仕様で規定された
正規化を行っています。
ハンドラ関数が空の文字列あるいは &false; に設定されている場合、
そのハンドラは無効となります。
¬e.func-callback;
&reftitle.returnvalues;
&return.success;
&reftitle.changelog;
&Version;
&Description;
&xml.changelog.parser-param;
7.3.0
拡張モジュールが libxml を使ってビルドされた場合には、コールバック
handler
の戻り値が無視されることはなくなりました。
このバージョン以前はコールバックの戻り値が無視され、パースが止まりませんでした。
&reftitle.changelog;
&Version;
&Description;
7.3.0
拡張モジュールが libxml を使ってビルドされていた場合、
handler の戻り値は無視されることはなくなりました。
これより前のバージョンでは、戻り値が無視されていた上、パースが止まりませんでした。