If you get the following warning message when calling ->setRelaxNGSchemaSource(): "Warning: XMLReader::setRelaxNGSchemaSource()[xmlreader.setrelaxngschemasource]: Unable to set schema. This must beset 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.