PHP | Función DOMDocument relaxNGValidateSource()

La función DOMDocument::relaxNGValidateSource() es una función incorporada en PHP que se usa para realizar la validación de relaxNG en el documento usando una string como esquema RNG. La diferencia entre relaxNGValidate() y relaxNGValidateSource() es que el primero acepta un nombre de archivo de esquema rng mientras que el segundo también puede aceptar un esquema rng como string. 

Sintaxis:

bool DOMDocument::relaxNGValidateSource( string $source )

Parámetros: esta función acepta un solo parámetro $fuente que contiene el esquema RNG. 

Valor de retorno: esta función devuelve VERDADERO en caso de éxito o FALSO en caso de error. 

Los siguientes programas ilustran la función DOMDocument::relaxNGValidateSource() en PHP: 

Programa 1: 

php

<?php
 
// Create a new DOMDocument
$doc = new DOMDocument;
 
// RNG schema
$RNG = "<element name=\"body\"
    xmlns=\"http://relaxng.org/ns/structure/1.0\">
<zeroOrMore>
  <element name=\"div\">
    <element name=\"h1\">
      <text/>
    </element>
    <element name=\"h2\">
      <text/>
    </element>
  </element>
</zeroOrMore>
</element>";
 
// Load the XML
$doc->loadXML("<?xml version=\"1.0\"?>
<body>
  <div>
    <h1>Heading 1</h1>
    <h2>Heading 2</h2>
  </div>
  <div>
    <h1>Heading 3</h1>
    <h2>Heading 4</h2>
  </div>
</body>");
 
// Check if XML follows the relaxNG rule
if ($doc->relaxNGValidateSource($RNG)) {
    echo "This document is valid!\n";
}
?>

Producción:

This document is valid!

Programa 2: 

php

<?php
 
// Create a new DOMDocument
$doc = new DOMDocument;
 
// RNG schema
$RNG = "<element name=\"company\"
    xmlns=\"http://relaxng.org/ns/structure/1.0\">
<zeroOrMore>
  <element name=\"employee\">
    <element name=\"name\">
      <text/>
    </element>
    <element name=\"salary\">
      <text/>
    </element>
  </element>
</zeroOrMore>
</element>";
 
// 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 violate rule -->
    <name>John Doe</name>
  </employee>
</company>");
 
// Check if XML doesn't follows the relaxNG rule
if (!$doc->relaxNGValidateSource($RNG)) {
    echo "This document is not valid!\n";
}
?>

Producción:

This document is not valid!

Referencia: https://www.php.net/manual/en/domdocument.relaxngvalidatesource.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 *