PHP | Función DOMDocument schemaValidateSource()

La función DOMDocument::schemaValidateSource() es una función incorporada en PHP que se usa para validar un documento basado en un esquema definido en la string dada. La diferencia entre schemaValidate() y schemaValidateSource() es que el primero acepta un nombre de archivo de esquema mientras que el segundo puede aceptar un esquema como string.

Sintaxis:

bool DOMDocument::schemaValidateSource( string $source, int $flags = 0 )

Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:

  • $fuente: Especifica la string que contiene el esquema.
  • $flags (Opcional): Especifica las banderas de validación.

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::schemaValidateSource() en PHP:

Programa 1:

<?php
  
// Create a new DOMDocument
$doc = new DOMDocument;
  
// XSD schema
$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>";
  
// Load the XML
$doc->loadXML("<?xml version=\"1.0\"?>
<body>
    <h1> Hello </h1>
    <strong> 22 </strong>
</body>");
  
// Check if XML follows the schema rule
if ($doc->schemaValidateSource($XSD)) {
    echo "This document is valid!\n";
}
?>

Producción:

This document is valid!

Programa 2:

<?php
  
// Create a new DOMDocument
$doc = new DOMDocument;
  
// RNG schema
$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>";
  
// Load the XML
$doc->loadXML("<?xml version=\"1.0\"?>
<student> 
    <!-- rollnow element is missing here -->
    <name> XYZ </name>
</student>
");
  
// Check if XML follows the relaxNG rule
if (!$doc->schemaValidateSource($XSD)) {
    echo "This document is not valid!\n";
}
?>

Producción:

This document is not valid!

Referencia: https://www.php.net/manual/en/domdocument.schemavalidatesource.php

Publicación traducida automáticamente

Artículo escrito por gurrrung y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *