Selhoz-katalog.ru

Сельхоз каталог

Ng химия, ng wild, ауди 80 б4 2.3 ng настройка системы впрыска ke iii jetronic, ng stroy

Перейти к: навигация, поиск

RELAX NG (REgular LAnguage for XML Next Generation) — один из языков описания структуры XML-документа. Являясь сам по себе XML-документом, схема в этом формате может быть записана с использованием альтернативного, более компактного синтаксиса[1]. В сравнении с другими языками схем, RELAX NG относительно прост. RELAX NG был разработан в OASIS и впервые опубликован в 2003[2]. Файлы, содержащие схемы RELAX NG, обычно имеют расширение ".rng", а в компактном синтаксисе — ".rnc".

Пример схемы

Приведенный пример — упрощенный XML, представляющий книгу: книга состоит из одной или более страниц и каждая страница содержит только текст:

<book>
  <page>Страница первая.</page>
  <page>Страница вторая.</page>
</book>

Синтаксис XML

Схема в формате RELAX NG может быть записана иерархической структурой, начиная с корневого элемента, который содержит дальнейшие определения элементов, которые, в свою очередь, тоже могут содержать вложенные определения. Схема в этом стиле для приведенной выше разметки, записывается следующим образом:

<element name="book" xmlns="http://relaxng.org/ns/structure/1.0">
   <oneOrMore>
      <element name="page">
         <text/>
      </element>
   </oneOrMore>
</element>

Вложенная структура может очень сильно разрастаться и с ее помощью невозможно описать рекурсивные элементы. Этот недостаток преодолевается с помощью именованных паттернов, которые располагаются в схеме отдельно:

<grammar xmlns="http://relaxng.org/ns/structure/1.0">
   <start>
      <element name="book">
         <oneOrMore>
            <ref name="page"/>
         </oneOrMore>
      </element>
   </start>
   <define name="page">
      <element name="page">
         <text/>
      </element>
   </define>
</grammar>

Компактный синтаксис

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

element book
{
    element page { text }+
}

Или, с именованными паттернами:

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

Сравнение с другими схемами XML

На данный момент, RELAX NG, разработанный примерно в то же самое время, что и XML Schema, обладает довольно широкой поддержкой в XML-редакторах и парсерах. RELAX NG используется как первичная схема для некоторых документо-центрических языков разметки, таких как DocBook и OpenDocument.

RELAX NG, как и XML Schema, поддерживает много возможностей: типизация данных, регулярные выражения, пространства имен и возможность ссылаться на сложные определения.

См. также

Ссылки

  • Официальный сайт проекта  (англ.)
  • Книга о RELAX NG (англ.) Эрика ван дер Влиста, выпущенная под лицензией GNU Free Documentation License
  • Справочник по Relax NG (англ.) на zvon.org

Примечания

  1. RELAX NG Compact Syntax
  2. ISO/IEC 19757-2:2003 - Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG. ISO. Архивировано из первоисточника 23 апреля 2012.

Ng химия, ng wild, ауди 80 б4 2.3 ng настройка системы впрыска ke iii jetronic, ng stroy.

Кириллова, Евдокия Федотовна, Архитектура Персии, Engstler Motorsport.

© 2021–2023 selhoz-katalog.ru, Россия, Тула, ул. Октябр 53, +7 (4872) 93-16-24