PHP 7.0.6 Released

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setRelaxNGSchemaSourceSet the data containing a RelaxNG Schema

Description

public bool XMLReader::setRelaxNGSchemaSource ( string $source )

Set the data containing a RelaxNG Schema to use for validation.

Parameters

source

String containing the RelaxNG Schema.

Return Values

Returns TRUE on success or FALSE on failure.

See Also

User Contributed Notes

remy dot damour at laposte dot net
7 years ago
If you get the following warning message when calling ->setRelaxNGSchemaSource(): "Warning: XMLReader::setRelaxNGSchemaSource()
[xmlreader.setrelaxngschemasource]: Unable to set schema. This must be
set prior to reading or schema contains errors."

Make sure to load data using XMLReader::open() or XMLReader::xml() prior to calling XMLReader::setRelaxNGSchemaSource().

Cf. comment on XMLReader::setRelaxNGSchema for more details.
anzenews at volja dot net
8 years ago
This function and setRelaxNGSchema() seem picky about when they are called - right after the call to open(). For example:

<?php
  $schema
="/path/to/schema.rng";
 
$xmlfile="/path/to/xml.xml";

 
$xml = new XMLReader();
 
$xml->open($xmlfile);
 
$xml->setRelaxNGSchemaSource(file_get_contents($schema));

  while (
$xml->read()) {
  
// ...
 
}

 
$xml->close();
?>
To Top