XMLReader::setRelaxNGSchemaSource
(PHP 5 >= 5.1.2)
XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema
Описание
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::close() - Закрыть ввод XMLReader
- Функция XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM
- Функция XMLReader::getAttribute() - Получить значение атрибута с определённым именем
- Функция XMLReader::getAttributeNo() - Получить значение атрибута по индексу
- Функция XMLReader::getAttributeNs() - Получить значение атрибута по localname и URI
- Функция XMLReader::getParserProperty() - Указывает, было ли определенное свойство установлено
- Функция XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным
- Функция XMLReader::lookupNamespace() - Найти пространство имён для префикса
- Функция XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
- Функция XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
- Функция XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
- Функция XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
- Функция XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут
- Функция XMLReader::moveToNextAttribute() - Переместить позицию курсора на следующий атрибут
- Функция XMLReader::next() - Переместить курсор на следующий узел, пропуская все поддеревья
- Функция XMLReader::open() - Установить URI, содержащий XML-документ для разобора
- Функция XMLReader::read() - Переместиться к следующему узлу в документе
- Функция XMLReader::readInnerXML() - Извлечь XML из текущего узла
- Функция XMLReader::readOuterXML() - Получить XML из текущего узла, включая сам узел
- Функция XMLReader::readString() - Прочитать содержимое текущего узла как строку
- Функция XMLReader::setParserProperty() - Устанавливает опцию парсера
- Функция XMLReader::setRelaxNGSchema() - Устанавить имя файла или URI для схемы RelaxNG
- Функция XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
- Функция XMLReader::setSchema() - Проверить документ, используя XSD
- Функция XMLReader::XML() - Установить данные, содержащие XML для разбора
Коментарии
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();
?>
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.