【PHP8.x】C14NFileメソッドの使い方
C14NFileメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Dom\XMLDocumentクラスのC14NFileメソッドは、XMLドキュメントをCanonical XML(C14N)形式でファイルに書き出すメソッドです。C14Nは、XMLドキュメントを標準化された形式に変換するプロセスであり、異なるシステム間でのXMLドキュメントの比較や署名検証を容易にします。
このメソッドを使用すると、指定されたXMLドキュメント全体または一部(ノード)を、C14N形式で指定されたファイルパスに保存できます。C14N形式は、属性の順序、名前空間の宣言、コメントの扱いなど、XMLドキュメントの構造に関するいくつかの側面を標準化します。これにより、意味的に等価なXMLドキュメントでも、異なるシステムで生成された場合に異なる表現を持つ可能性があるという問題を解決できます。
C14NFileメソッドは、書き出すファイルパス、ノード(省略可能)、およびいくつかのオプションフラグを受け取ります。オプションフラグを使用すると、コメントの保持、空のXML名前空間の処理、アルゴリズムの指定など、C14Nプロセスの詳細な動作を制御できます。
システムエンジニアがこのメソッドを使用することで、XMLドキュメントを標準化された形式で保存し、異なるシステム間でのデータの整合性を確保したり、XML署名などのセキュリティ関連の処理を円滑に進めることが可能になります。特に、異なるシステム間でXMLデータを交換するような大規模なシステムや、セキュリティが重要なシステムにおいて、C14NFileメソッドは非常に有用です。
構文(syntax)
1DOMDocument::C14NFile(string $uri, string $exclusive = "", array $withComments = [], string $xpath = "", string $nsPrefixes = ""): int|false
引数(parameters)
string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null
- string $uri: 正規化するXMLファイルを指定するURI
- bool $exclusive = false: 排他正規化を行うかどうかを指定する真偽値。デフォルトはfalse
- bool $withComments = false: コメントを含めて正規化するかどうかを指定する真偽値。デフォルトはfalse
- ?array $xpath = null: 正規化の対象をXPath式で絞り込むための配列。デフォルトはnull(全要素対象)
- ?array $nsPrefixes = null: 名前空間プレフィックスを明示的に指定するための配列。デフォルトはnull
戻り値(return)
int|false
C14NFileメソッドは、XML文書を正規化してファイルに保存します。成功した場合は保存バイト数を整数で返します。失敗した場合はfalseを返します。