xml_set_notation_decl_handler
表記法宣言ハンドラを設定する
説明
true xml_set_notation_decl_handler(XMLParser $parser
, callable $handler
)
表記法の宣言は、ドキュメントの DTD の一部であり、
次のようなフォーマットとなります。
<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
表記法宣言の定義に関しては、
» XML 1.0 仕様の 4.7 節
を参照ください。
パラメータ
-
parser
-
XMLパーサ
-
handler
-
null
が渡されると、ハンドラはデフォルトの状態にリセットされます。
警告
空文字列を渡すことでもハンドラはリセットされますが、これは PHP 8.4.0 以降非推奨となっています。
handler
が callable の場合、その callable がハンドラとして設定されます。
handler
が文字列の場合、xml_set_object で設定されたオブジェクトのメソッド名になります。
警告
PHP 8.4.0 以降、非推奨となっています。
警告
PHP 8.4.0 以降では、実際に呼び出されるときではなく、ハンドラを設定する際に callable であるかがチェックされます。
従って、コールバックとしてメソッド文字列を指定する場合、それより前に、 xml_set_object を呼び出しておく必要があります。
しかし、この動作も PHP 8.4.0 以降非推奨となっているため、メソッドには適切な callable を使用することが推奨されます。
ハンドラのシグネチャは、以下でなければいけません:
void handler(
XMLParser $parser
,
string $notation_name
,
stringfalse $base
,
string $system_id
,
stringfalse $public_id
)
-
parser
-
ハンドラをコールするXMLパーサ
-
notation_name
-
これは、前述の表記用フォーマットに示すように表記法の名前です。
-
base
-
外部エンティティのシステムID(
system_id
)を
取得する際の基本となります。
-
system_id
-
外部表記用宣言のシステム ID
-
public_id
-
外部表記用宣言のパブリック ID