【PHP8.x】schemaValidateSourceメソッドの使い方

schemaValidateSourceメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

schemaValidateSourceメソッドは、XMLドキュメントを指定されたXML Schema定義(XSD)に対して検証を実行するメソッドです。このメソッドはDOMDocumentクラスに属しており、現在DOMDocumentオブジェクトにロードされているXMLドキュメントの内容が検証の対象となります。

引数として、検証に使用するXML Schema定義の内容を文字列形式で受け取ります。提供されたXSD文字列に基づいて、ロードされているXMLドキュメントが構造、要素、属性、データ型などの規則に準拠しているかを確認します。

検証が正常に完了し、XMLドキュメントがスキーマに適合している場合はtrueを返します。一方で、XMLドキュメントがスキーマの規則に違反している場合や、提供されたXSD文字列自体が無効である場合はfalseを返します。検証中に発生した詳細なエラー情報は、PHPのlibxmlエラー処理関数(例えばlibxml_get_errors())を用いて取得することが可能です。

このメソッドは、外部から受け取ったXMLデータが期待されるフォーマットや要件を満たしているかをプログラム的に確認する際に非常に役立ちます。例えば、設定ファイルやデータ連携で利用されるXMLの整合性を保証し、不正なデータ入力によるアプリケーションの誤動作を防ぐために活用できます。これにより、データの品質を向上させ、システム全体の安定性を確保することができます。

構文(syntax)

1<?php
2
3$dom = new DOMDocument();
4
5// 検証対象のXMLドキュメントをロード
6$xmlString = '<root><element>value</element></root>';
7$dom->loadXML($xmlString);
8
9// XMLスキーマ定義の文字列を準備
10$xsdString = <<<XSD
11<?xml version="1.0" encoding="UTF-8"?>
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="element" type="xs:string" />
17            </xs:sequence>
18        </xs:complexType>
19    </xs:element>
20</xs:schema>
21XSD;
22
23// DOMDocument::schemaValidateSource メソッドを呼び出し、XMLスキーマ定義の文字列を使って検証を実行
24$isValid = $dom->schemaValidateSource($xsdString);
25
26?>

引数(parameters)

string $source, int $flags = 0

  • string $source: 検証に使用するXMLスキーマのソースを指定する文字列
  • int $flags = 0: 検証の動作を制御するフラグを指定する整数(デフォルトは0)

戻り値(return)

bool

DOMDocument::schemaValidateSourceメソッドは、指定されたXMLドキュメントが、指定されたXMLスキーマ定義(XSD)に準拠しているかどうかを検証します。検証が成功した場合はtrueを、失敗した場合はfalseを返します。

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