XMLReader::setRelaxNGSchema()
(PHP 5 >= 5.1.0, PHP 7)
Set the filename or URI for a RelaxNG Schema
说明
public XMLReader::setRelaxNGSchema(string $filename): bool
Set the filename or URI for the RelaxNG Schema to use for validation.
参数
- $filename
filename or URI pointing to a RelaxNG Schema.
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
参见
- XMLReader::setRelaxNGSchemaSource() Set the data containing a RelaxNG Schema
- XMLReader::setSchema() Validate document against XSD
- XMLReader::isValid() Indicates if the parsed document is valid
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