• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • XMLReader::setRelaxNGSchemaSource()

    (PHP 5 >= 5.1.0, PHP 7)

    Set the data containing a RelaxNG Schema

    说明

    publicXMLReader::setRelaxNGSchemaSource(string $source): bool

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