【PHP8.x】schemaValidateSourceメソッドの使い方
schemaValidateSourceメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
schemaValidateSourceメソッドは、Dom\XMLDocumentオブジェクトのXMLドキュメントが、与えられたXMLスキーマ定義に準拠しているかを検証します。XMLスキーマは、XMLデータの形式と内容のルールを定義し、整合性を保証する仕組みです。このメソッドは、スキーマ定義をファイルパスではなく、文字列として直接受け取ります。
この機能は、プログラム内で生成したスキーマや、外部から取得したスキーマ文字列を用いてXMLドキュメントを検証したい場合に有効です。これにより、外部からのXMLデータが期待する構造に従っているかを確認し、不正なデータによるエラーを防ぎます。
検証結果はブール値で返され、成功すればtrue、失敗すればfalseです。検証失敗時はPHPの警告が発生しますが、エラーハンドリングで詳細なエラー情報を取得し、適切な処理ができます。
構文(syntax)
1<?php 2 3// Dom\XMLDocument のインスタンスを作成します。 4$document = new Dom\XMLDocument(); 5 6// 検証対象となるXMLドキュメントをロードします。 7// schemaValidateSource メソッドを実行する前に、XMLドキュメントをロードしておく必要があります。 8$document->loadXML('<root><item>Hello PHP</item></root>'); 9 10// 検証に使用するXSDスキーマの内容を文字列として定義します。 11$xsdSchemaContent = <<<EOT 12<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 13 <xs:element name="root"> 14 <xs:complexType> 15 <xs:sequence> 16 <xs:element name="item" type="xs:string"/> 17 </xs:sequence> 18 </xs:complexType> 19 </xs:element> 20</xs:schema> 21EOT; 22 23// Dom\XMLDocument::schemaValidateSource メソッドを呼び出し、 24// ロードされたXMLをXSDスキーマ文字列に対して検証します。 25// 戻り値は検証が成功した場合は true、失敗した場合は false です。 26$isValid = $document->schemaValidateSource($xsdSchemaContent); 27 28?>
引数(parameters)
string $source, int $flags = 0
- string $source: 検証に使用するXMLソースを指定する文字列
- int $flags = 0: 検証の挙動を制御するためのフラグを指定する整数。デフォルトは0 (フラグなし)
戻り値(return)
bool
このメソッドは、XMLドキュメントが指定されたXMLスキーマに準拠しているかどうかを検証し、その結果を真偽値(bool)で返します。検証に成功した場合はtrueを、失敗した場合はfalseを返します。