xml_set_external_entity_ref_handler
外部エンティティリファレンスハンドラを設定する
&reftitle.description;
truexml_set_external_entity_ref_handler
XMLParserparser
callablestringnullhandler
XML パーサー parser の外部エンティティ参照用ハンドラ関数を設定します。
&reftitle.parameters;
&xml.parser.param;
handler
&xml.handler.description;
handler のシグネチャは、以下でなければいけません:
boolhandler
XMLParserparser
stringopen_entity_names
stringfalsebase
stringsystem_id
stringfalsepublic_id
&xml.handler.parser.param;
open_entity_names
エンティティの処理を行うためにオープンされたエンティティの
名前のスペース区切りのリストです
(参照されるエンティティの名前を含みます)。
base
これは外部エンティティのシステム
ID (systemid) のベースとして解決されます。
system_id
エンティティ宣言で指定されたシステム ID です。
public_id
エンティティ宣言で
指定されたパブリック ID または指定されない場合は空の
文字列です。パブリック ID の中の空白文字は、XML 仕様で規定された
正規化を行っています。
ハンドラは、エンティティを処理された場合、&true; を返す必要があります。
そうでない場合、&false; を返すべきです。
ハンドラから返された値が &false; の場合、XML パーサーは処理を中断し、
xml_get_error_code は
XML_ERROR_EXTERNAL_ENTITY_HANDLING
を返します。
&reftitle.returnvalues;
&return.true.always;
&reftitle.changelog;
&Version;
&Description;
&xml.changelog.handler-param;
&xml.changelog.parser-param;
7.3.0
拡張モジュールが libxml を使ってビルドされていた場合、
handler の戻り値は無視されることはなくなりました。
これより前のバージョンでは、戻り値が無視されていた上、パースが止まりませんでした。