downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

DOMDocument::save> <DOMDocument::relaxNGValidate
[edit] Last updated: Fri, 14 Jun 2013

view this page in

DOMDocument::relaxNGValidateSource

(PHP 5)

DOMDocument::relaxNGValidateSourceEffectue une validation relaxNG sur le document

Description

bool DOMDocument::relaxNGValidateSource ( string $source )

Effectue une validation » relaxNG sur le document selon le schéma RNG défini dans la chaîne source.

Liste de paramètres

source

Une chaîne contenant le schéma RNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Voir aussi



add a note add a note User Contributed Notes DOMDocument::relaxNGValidateSource - [1 notes]
up
0
gem at rellim dot com
8 years ago
Took me a while to get a working example.  Here it is:

<?php

# enable warnings
ini_set( 'track_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);

# this is a sample relaxNG definition
$rng = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0"
  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <start>
    <element name="apple">
      <element name="pear">
        <data type="NCName"/>
      </element>
    </element>
  </start>
</grammar>
EOT;

# well formed xml, but invalid per schema
# too many pears
$bad_xml =<<<EOT
<?xml version="1.0"?>
<apple>
  <pear>Pear</pear>
  <pear>Pear</pear>
</apple>
EOT;

# well formed xml and valid per schema
$good_xml =<<<EOT
<?xml version="1.0"?>
<apple>
  <pear>Pear</pear>
</apple>
EOT;

# this function does the work, it tests the relaxNG in the string $rng
# against the xml in string $xml
Function relaxNG ( $xml, $rng ) {
       
$dom_xml = new DomDocument;
       
$dom_xml->loadXML($xml);
                       
        if (
$dom_xml->relaxNGValidateSource ( $rng ) ) {
                echo
"Good\n";
        } else {
                echo
$php_errormsg . "\n";
        }
}      

# test the good xml, will echo:
#    Good
relaxNG ($good_xml, $rng);
                       
# test the bad xml, will echo:
#    Did not expect element pear there
relaxNG ($bad_xml, $rng);

?>

results:

Good
Did not expect element pear there

 
show source | credits | sitemap | contact | advertising | mirror sites