【PHP8.x】Dom\Entity::notationNameプロパティの使い方
notationNameプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
notationNameプロパティは、XMLドキュメントのDTD(Document Type Definition)で定義されるエンティティに関する記法の名前を保持するプロパティです。このプロパティは、Dom\Entityクラスに属しており、XMLツリー内のエンティティノードが持つ情報を扱います。
XMLにおけるエンティティとは、繰り返し使用するテキストや外部ファイルの参照などを簡略化するために定義される構成要素です。notationNameプロパティが値を持つのは、「パースされないエンティティ(Unparsed Entity)」と呼ばれる、XMLパーサ自体がその内容を直接解釈せず、外部のアプリケーションに処理を委ねる種類のエンティティの場合に限られます。例えば、画像ファイルや音声ファイルなど、XML以外のバイナリデータを参照する際に利用されます。
このプロパティが保持する「記法(Notation)」とは、そのようなパースされないエンティティがどのような形式の外部データであるか(例えば、JPEG画像、PNG画像など)をXMLドキュメントのDTD内で宣言するための仕組みです。notationNameプロパティは、この宣言された記法の名前を文字列として提供します。
もし対象のエンティティがパースされるエンティティ(Parsed Entity)である場合や、記法が関連付けられていない場合には、notationNameプロパティはnullを返します。このプロパティを利用することで、XMLドキュメントに組み込まれた非XMLデータの種類をプログラム的に識別し、それに応じた適切な処理を行うための情報を得ることが可能となります。
構文(syntax)
1<?php 2$dom = new DOMDocument(); 3$dom->loadXML('<!DOCTYPE doc [ <!NOTATION note SYSTEM "n"> <!ENTITY ent SYSTEM "u" NDATA note> ]><doc/>'); 4$entity = $dom->doctype->entities->getNamedItem('ent'); 5 6$notationName = $entity->notationName; 7?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
?string
このプロパティは、エンティティの表記名を文字列で返します。エンティティに表記名が設定されていない場合は、nullを返します。