文字

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0)

XMLReader::setRelaxNGSchemaSourceSet the data containing a RelaxNG Schema

说明

public bool XMLReader::setRelaxNGSchemaSource ( string $source )

Set 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

用户评论:

[#1] remy dot damour at laposte dot net [2008-12-30 16:43:34]

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.

[#2] anzenews at volja dot net [2008-01-21 12:18:12]

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();
?>

上一篇: 下一篇: