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.
XMLReader::setRelaxNGSchemaSource
(PHP 5 >= 5.1.2)
XMLReader::setRelaxNGSchemaSource — Spécifie le schéma RelaxNG
Description
bool
XMLReader::setRelaxNGSchemaSource
( string
$source
)Spécifie le schéma RelaxNG à utiliser pour validation.
Liste de paramètres
-
source -
Chaîne de caractères contenant le schéma RelaxNG.
Valeurs de retour
Cette fonction retourne TRUE en cas de
succès ou FALSE si une erreur survient.
Voir aussi
- XMLReader::setRelaxNGSchema() - Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
- XMLReader::setSchema() - Valide le document avec XSD
- XMLReader::isValid() - Indique si le document analysé est valide
remy dot damour at laposte dot net
30-Dec-2008 09:43
anzenews at volja dot net
21-Jan-2008 05:18
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();
?>
