La función DOMDocument::relaxNGValidate() es una función incorporada en PHP que se utiliza para realizar la validación relaxNG en el documento. El relaxNG es una alternativa a DDT y define una estructura que debe seguir el documento XML.
Sintaxis:
bool DOMDocument::relaxNGValidate( string $filename )
Parámetros: esta función acepta un solo parámetro $filename que contiene el archivo RNG.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito o FALSO en caso de error.
Los programas dados a continuación ilustran la función DOMDocument::relaxNGValidate() en PHP:
Programa 1:
- Nombre del archivo: regla.rng
<element name=
"college"
<zeroOrMore>
<element name=
"rollno"
>
<element name=
"name"
>
<text/>
</element>
<element name=
"subject"
>
<text/>
</element>
</element>
</zeroOrMore>
</element>
- Nombre del archivo: index.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"
;
}
?>
- Producción:
This document is valid!
Programa 2:
- Nombre del archivo: regla.rng
<element name=
"company"
<zeroOrMore>
<element name=
"employee"
>
<element name=
"name"
>
<text/>
</element>
<element name=
"salary"
>
<text/>
</element>
</element>
</zeroOrMore>
</element>
- Nombre del archivo: index.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"
;
}
?>
- Producción:
This document is not valid!
Referencia: https://www.php.net/manual/en/domdocument.relaxngvalidate.php