【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を返します。

関連コンテンツ

【PHP8.x】schemaValidateSourceメソッドの使い方 | いっしー@Webエンジニア