XMLReader::setRelaxNGSchemaSource
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema
说明
public XMLReader::setRelaxNGSchemaSource(?string
$source
): boolSet the data containing a RelaxNG Schema to use for validation.
参数
-
source
-
String containing the RelaxNG Schema.
返回值
成功时返回 true
, 或者在失败时返回 false
。
参见
- XMLReader::setRelaxNGSchema() - Set the filename or URI for a RelaxNG Schema
- XMLReader::setSchema() - Validate document against XSD
- XMLReader::isValid() - Indicates if the parsed document is valid

User Contributed Notes 2 notes
remy dot damour at laposte dot net ¶
13 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 ¶
14 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();
?>
备份地址:http://www.lvesu.com/blog/php/xmlreader.setrelaxngschemasource.php