PHP | DOMDocument relaxNGValidate() Function
Last Updated :
12 Jul, 2025
Improve
The DOMDocument::relaxNGValidate() function is an inbuilt function in PHP which is used to performs relaxNG validation on the document. The relaxNG is an alternative to DDT and defines a structure which needs to be followed by the XML document.
Syntax:
bool DOMDocument::relaxNGValidate( string $filename )Parameters: This function accepts a single parameter $filename which holds the RNG file. Return Value: This function returns TRUE on success or FALSE on failure. Below given programs illustrate the DOMDocument::relaxNGValidate() function in PHP: Program 1:
- File name: rule.rng
php <element name="college" xmlns="https://relaxng.org/ns/structure/1.0"> <zeroOrMore> <element name="rollno"> <element name="name"> <text/> </element> <element name="subject"> <text/> </element> </element> </zeroOrMore> </element>
- File name: index.php
php <?php // Create a new DOMDocument $doc = new DOMDocument; // Load the XML $doc->loadXML("<?xml version=\"1.0\"?> <college> <rollno> <name>John Smith</name> <subject>Web</subject> </rollno> <rollno> <name>John Doe</name> <subject>CSE</subject> </rollno> </college>"); // Check if XML follows the relaxNG rule if ($doc->relaxNGValidate('rule.rng')) { echo "This document is valid!\n"; } ?>
- Output:
This document is valid!
- File name: rule.rng
php <element name="company" xmlns="https://relaxng.org/ns/structure/1.0"> <zeroOrMore> <element name="employee"> <element name="name"> <text/> </element> <element name="salary"> <text/> </element> </element> </zeroOrMore> </element>
- File name: index.php
php <?php // Create a new DOMDocument $doc = new DOMDocument; // Load the XML $doc->loadXML("<?xml version=\"1.0\"?> <company> <employee> <name>John Smith</name> <salary>Web</salary> </employee> <employee> <!-- Do not add salary to voilate rule --> <name>John Doe</name> </employee> </company>"); // Check if XML doesn't follows the relaxNG rule if (!$doc->relaxNGValidate('rule.rng')) { echo "This document is not valid!\n"; } ?>
- Output:
This document is not valid!