Введение

Язык схемы XML

В информатике RELAX NG (REgular LAnguage for XML Next Generation) — это язык схемы для XML, определяющий шаблон для структуры и содержимого XML-документа. Схема RELAX NG сама является XML-документом, но RELAX NG также предлагает популярный компактный синтаксис, не основанный на XML. По сравнению с другими языками схем XML, RELAX NG считается относительно простым. Он был определён спецификацией технического комитета OASIS RELAX NG в 2001 и 2002 годах, основанной на RELAX, разработанном Муратой Макото, и TREX, разработанном Джеймсом Кларком, а также частью второй международного стандарта ISO/IEC 19757: Языки определения схемы документов (DSDL). ISO/IEC 19757-2 был разработан ISO/IEC JTC 1/SC 34 и опубликован в первой версии в 2003 году.

Сравнение с XML-схемой W3C

Хотя спецификация RELAX NG разрабатывалась примерно в то же время, что и спецификация XML Schema от W3C, последняя, вероятно, была более известна и шире внедрена как в парсерах и редакторах XML с открытым, так и с проприетарным кодом, когда в 2001 году она получила статус Рекомендации W3C. Однако с тех пор поддержка RELAX NG все чаще появляется в программном обеспечении для работы с XML, а ее распространению способствовало то, что она была принята в качестве основной схемы для популярных языков разметки, ориентированных на документы, таких как DocBook, Руководство TEI, OpenDocument и EPUB. RELAX NG, как и XML Schema от W3C, обладает многими функциями, которые выделяют обе спецификации из традиционных DTD: типизация данных, поддержка регулярных выражений, поддержка пространств имен и возможность ссылаться на сложные определения.

Расширения имен файлов

По неформальной договоренности, схемы RELAX NG в обычном синтаксисе обычно имеют расширение файла ".rng". Для схем в компактном синтаксисе используется расширение ".rnc".

Детерминизм

Схемы Relax NG не обязательно являются "детерминированными" или "однозначными".