PHP | DOMDocument relaxNGValidate() Function

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
<element name="college"<zeroOrMore><element name="rollno"><element name="name"><text/></element><element name="subject"><text/></element></element></zeroOrMore></element>
- File name: index.php
<?php// Create a new DOMDocument$doc=newDOMDocument;// 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 ruleif($doc->relaxNGValidate('rule.rng')) {echo"This document is valid!\n";}?>
- Output:
This document is valid! 
Program 2:
- File name: rule.rng
<element name="company"<zeroOrMore><element name="employee"><element name="name"><text/></element><element name="salary"><text/></element></element></zeroOrMore></element>
- File name: index.php
<?php// Create a new DOMDocument$doc=newDOMDocument;// 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 ruleif(!$doc->relaxNGValidate('rule.rng')) {echo"This document is not valid!\n";}?>
- Output:
This document is not valid! 
Reference: https://www.php.net/manual/en/domdocument.relaxngvalidate.php
 
				 
					


