PHP 8.4.6 Released!

XMLReader::setRelaxNGSchema

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchemaSet the filename or URI for a RelaxNG Schema

Description

public XMLReader::setRelaxNGSchema(?string $filename): bool

Set the filename or URI for the RelaxNG Schema to use for validation.

Parameters

filename

filename or URI pointing to a RelaxNG Schema.

Return Values

Returns true on success or false on failure.

See Also

User Contributed Notes

remy dot damour at laposte dot net
16 years ago
Make sure to load your data prior to calling ->setRelaxNGSchema() otherwise you will get an error.

<?php
$xml_reader
= new XMLReader();
$xml_reader->setRelaxNGSchema($rng_schema);
$xml_reader->xml($xml_data);
?>
Above code generates the following warning: "Warning: XMLReader::setRelaxNGSchemaSource()
[xmlreader.setrelaxngschemasource]: Unable to set schema. This must be
set prior to reading or schema contains errors."

whereas the following does not generate a warning:
<?php
$xml_reader
= new XMLReader();
$xml_reader->xml($xml_data); // or $xml_reader->xml($xml_file);
$xml_reader->setRelaxNGSchema($rng_schema);
?>

cf. http://bugs.php.net/bug.php?id=46978
To Top