Описание тега relaxng-compact

Компактный синтаксис RELAX NG - это не-XML-формат, основанный на расширенной форме Бэкуса-Наура и регулярных выражениях, разработанный таким образом, чтобы его можно было однозначно перевести на его XML-аналог и обратно, с однозначным соответствием по структуре и значению, во многом так же, как Simple Outline XML (SOX) относится к XML. Он имеет много общих функций с синтаксисом DTD.

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

Предположим, мы хотим определить чрезвычайно простую схему разметки для книги: книга определяется как последовательность из одной или нескольких страниц; каждая страница содержит только текст.
Вот компактная форма приведенного выше сценария:

element book
{
    element page { text }+
}

С именованными шаблонами это может быть сведено к:

start = element book { page+ }
page = element page { text }

Компактный синтаксический анализатор RELAX NG будет обрабатывать эти два кода как один и тот же шаблон.

Смотрите также: