XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchemaSource — RelaxNG ă‚čă‚­ăƒŒăƒžă‚’ć«ă‚€ăƒ‡ăƒŒă‚żă‚’èš­ćźšă™ă‚‹

èȘŹæ˜Ž

public function XMLReader::setRelaxNGSchemaSource(?string $source): bool

æ€œèšŒăźéš›ă«äœżç”šă™ă‚‹ RelaxNG ă‚čă‚­ăƒŒăƒžă‚’ć«ă‚€ăƒ‡ăƒŒă‚żă‚’èš­ćźšă—ăŸă™ă€‚

ăƒ‘ăƒ©ăƒĄăƒŒă‚ż

source

RelaxNG ă‚čă‚­ăƒŒăƒžă‚’ć«ă‚€æ–‡ć­—ćˆ—ă€‚

æˆ»ă‚Šć€€

æˆćŠŸă—ăŸć Žćˆă« true ă‚’ă€ć€±æ•—ă—ăŸć Žćˆă« false ă‚’èż”ă—ăŸă™ă€‚

ć‚è€ƒ

  • XMLReader::setRelaxNGSchema() - RelaxNG ă‚čă‚­ăƒŒăƒžăźăƒ•ă‚Ąă‚€ăƒ«ćă‚ă‚‹ă„ăŻ URI ă‚’èš­ćźšă™ă‚‹
  • XMLReader::setSchema() - ăƒ‰ă‚­ăƒ„ăƒĄăƒłăƒˆă‚’ XSD ă§æ€œèšŒă™ă‚‹
  • XMLReader::isValid() - ăƒ‘ăƒŒă‚čă—ăŠă„ă‚‹ăƒ‰ă‚­ăƒ„ăƒĄăƒłăƒˆăźćŠ„ćœ“æ€§ă‚’ç€șす
add a note

User Contributed Notes 2 notes

up
1
remy dot damour at laposte dot net ¶
17 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.
up
-1
anzenews at volja dot net ¶
18 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();
?>