La función DOMDocument::schemaValidate() es una función incorporada en PHP que se usa para validar un documento basado en el archivo de esquema dado. El archivo de esquema puede estar en formato XSD, que es la recomendación de W3C (World Wide Web Consortium).
Sintaxis:
bool DOMDocument::schemaValidate( string $filename, int $flags = 0 )
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $filename: Especifica la ruta al esquema.
- $flags (Opcional): Especifica las banderas de validación.
Valor devuelto: esta función devuelve VERDADERO en caso de éxito o Falso en caso de error.
Los siguientes programas ilustran la función DOMDocument::schemaValidate() en PHP:
Programa 1:
- Nombre del archivo: regla.xsd
<?xml version=
"1.0"
?>
<xs:schema xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
elementFormDefault=
"qualified"
>
<xs:element name=
"student"
>
<xs:complexType>
<xs:sequence>
<xs:element name=
"name"
type=
"xs:string"
/>
<xs:element name=
"rollno"
type=
"xs:integer"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Nombre del archivo: index.php
<?php
// Create a new DOMDocument
$doc
=
new
DOMDocument;
// Load the XML
$doc
->loadXML("<?xml version=\"1.0\"?>
<student>
<name>Rahul </name>
<rollno>34</rollno>
</student>");
// Check if XML follows the rule
if
(
$doc
->schemaValidate(
'rule.xsd'
)) {
echo
"This document is valid!\n"
;
}
?>
- Producción:
This document is valid!
Programa 2:
- Nombre del archivo: regla.xsd
<?xml version=
"1.0"
?>
<xs:schema xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
elementFormDefault=
"qualified"
>
<xs:element name=
"body"
>
<xs:complexType>
<xs:sequence>
<xs:element name=
"h1"
type=
"xs:string"
/>
<xs:element name=
"strong"
type=
"xs:integer"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Nombre del archivo: index.php
<?php
// Create a new DOMDocument
$doc
=
new
DOMDocument;
// Load the XML
$doc
->loadXML("<?xml version=\"1.0\"?>
<student>
<h1>Rahul </h1>
</student>");
// Check if XML follows the rule
if
(!
$doc
->schemaValidate(
'rule.xsd'
)) {
echo
"This document is not valid!\n"
;
}
?>
- Producción:
This document is not valid!
Referencia: https://www.php.net/manual/en/domdocument.schemavalidate.php