Spec-Zone.ru › Nokogiri

class Nokogiri::XML::RelaxNG

Родитель:
Nokogiri::XML::Schema

Nokogiri::XML::RelaxNG используется для проверки XML на соответствие определению схемы RELAX NG.

🛡 Не используйте этот класс для недоверенных документов схем. Входные данные RELAX NG всегда считаются доверенными, а это означает, что базовые библиотеки разбора будут обращаться к сетевым ресурсам. Это противоречит политике безопасности Nokogiri «по умолчанию считать данные недоверенными», но является досадным ограничением базовых библиотек.

Пример: Определение того, является ли XML-документ допустимым.

schema = Nokogiri::XML::RelaxNG.new(File.read(RELAX_NG_FILE))
doc = Nokogiri::XML::Document.parse(File.read(XML_FILE))
schema.valid?(doc) # Boolean

Пример: Проверка XML-документа на соответствие схеме RelaxNG с сохранением обнаруженных ошибок.

schema = Nokogiri::XML::RelaxNG.new(File.open(RELAX_NG_FILE))
doc = Nokogiri::XML::Document.parse(File.open(XML_FILE))
errors = schema.validate(doc) # Array<SyntaxError>

Пример: Проверка XML-документа с помощью Document, содержащего определение схемы RELAX NG.

schema_doc = Nokogiri::XML::Document.parse(File.read(RELAX_NG_FILE))
schema = Nokogiri::XML::RelaxNG.from_document(schema_doc)
doc = Nokogiri::XML::Document.parse(File.open(XML_FILE))
schema.valid?(doc) # Boolean

Общедоступные методы класса

from_document(document) → Nokogiri::XML::RelaxNG Показать исходный код
from_document(document, parse_options) → Nokogiri::XML::RelaxNG
static VALUE
noko_xml_relax_ng_s_from_document(int argc, VALUE *argv, VALUE rb_class)
{
  /* TODO: deprecate this method and put file-or-string logic into .new so that becomes the
   * preferred entry point, and this can become a private method */
  VALUE rb_document;
  VALUE rb_parse_options;
  xmlDocPtr c_document;
  xmlRelaxNGParserCtxtPtr c_parser_context;

  rb_scan_args(argc, argv, "11", &rb_document, &rb_parse_options);

  c_document = noko_xml_document_unwrap(rb_document);
  c_document = c_document->doc; /* In case someone passes us a node. ugh. */

  c_parser_context = xmlRelaxNGNewDocParserCtxt(c_document);

  return _noko_xml_relax_ng_parse_schema(rb_class, c_parser_context, rb_parse_options);
}

Разбор определения схемы RELAX NG из Document для создания нового объекта Nokogiri::XML::RelaxNG.

Параметры
  • document (XML::Document) Документ, содержащий определение схемы RELAX NG

  • parse_options (Nokogiri::XML::ParseOptions) По умолчанию — ParseOptions::DEFAULT_SCHEMA ⚠ Не используется

Возвращает

Nokogiri::XML::RelaxNG

⚠ В настоящее время метод не использует parse_options; этот параметр присутствует только как заглушка для будущей функциональности.

new(input) → Nokogiri::XML::RelaxNG Показать исходный код
new(input, options:) → Nokogiri::XML::RelaxNG
# File lib/nokogiri/xml/relax_ng.rb, line 60
def self.new(input, parse_options_ = ParseOptions::DEFAULT_SCHEMA, options: parse_options_)
  from_document(Nokogiri::XML::Document.parse(input), options)
end

Разбор определения схемы RELAX NG из строки или IO для создания нового объекта Nokogiri::XML::RelaxNG.

Параметры
  • input (String | IO) Определение схемы RELAX NG

  • options: (Nokogiri::XML::ParseOptions) По умолчанию — Nokogiri::XML::ParseOptions::DEFAULT_SCHEMA ⚠ Не используется

Возвращает

Nokogiri::XML::RelaxNG

⚠ В настоящее время метод не использует parse_options; этот параметр присутствует только как заглушка для будущей функциональности.

Также см. вспомогательный метод Nokogiri::XML::RelaxNG()

read_memory(input) → Nokogiri::XML::RelaxNG Показать исходный код
read_memory(input, options:) → Nokogiri::XML::RelaxNG
# File lib/nokogiri/xml/relax_ng.rb, line 69
def self.read_memory(...)
  # TODO deprecate this method
  new(...)
end

Вспомогательный метод для Nokogiri::XML::RelaxNG.new.

© 2008–2026 by Mike Dalessio, Aaron Patterson, Yoko Harada, Akinori MUSHA, John Shahid,
Karol Bucek, Sam Ruby, Craig Barnes, Stephen Checkoway, Lars Kanis, Sergio Arbeo,
Timothy Elliott, Nobuyoshi Nakada, Charles Nutter, Patrick MahoneyLicensed under the MIT License.
https://nokogiri.org/rdoc/Nokogiri/XML/RelaxNG.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API