PHP | Función DOMDocument relaxNGValidate()

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

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 *