Jump to content

РАССЛАБЬТЕСЬ

РАССЛАБЬТЕСЬ
Расширение имени файла
.rng
Тип интернет-СМИ
приложение/xml, текст/xml
Тип формата язык схемы XML
Расширено с XML

В вычислительной технике RELAX NG ( REgular LAnguage for XML Next Generation ) — это схемы язык XML . Схема RELAX NG определяет шаблон структуры и содержимого XML-документа. Схема RELAX NG сама по себе является XML- документом, но RELAX NG также предлагает популярный компактный синтаксис, отличный от XML. [1] По сравнению с другими языками схем XML RELAX NG считается относительно простым.

Он был определен спецификацией технического комитета OASIS RELAX NG в 2001 и 2002 годах на основе Мураты Макото RELAX и Джеймса Кларка TREX . [2] [3] [4] а также частью второй международного стандарта ISO / IEC 19757: Языки определения схемы документа ( DSDL ). [5] [6] ISO/IEC 19757-2 был разработан ISO/IEC JTC 1/SC 34 и опубликован в своей первой версии в 2003 году. [7]

Примеры схем [ править ]

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

<book>
  <page>This is page one.</page>
  <page>This is page two.</page>
</book>

Синтаксис XML [ править ]

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

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

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

<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 и обратно, с однозначным соответствием по структуре и значению. во многом так же, как Simple Outline XML (SOX) относится к XML . Он имеет много общего с синтаксисом DTD . Вот компактная форма приведенной выше схемы:

element book {
    element page { text }+
}

С помощью именованных шаблонов это можно свести к:

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

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

Сравнение с XML-схемой W3C [ править ]

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

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

Расширения имен файлов [ править ]

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

Детерминизм [ править ]

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

Преобразование Relax NG в DTD [ править ]

Схемы Relax NG можно преобразовать в DTD, применив Trang , который можно найти по адресу: [1] . Руководство по Трангу находится по адресу [2] . Обратите внимание, что Транг не может преобразовать схему OASIS DITA 1.3 в DTD, из-за чего возникают такие сообщения:

 sorry, combining definitions with combine="choice" is not supported

См. также [ править ]

Ссылки [ править ]

  1. ^ РАССЛАБЛЕНИЕ компактного синтаксиса
  2. ^ Джеймс Кларк. «TREX — Регулярные выражения дерева для XML — «TREX был объединен с RELAX для создания RELAX NG». « . Проверено 28 декабря 2009 г.
  3. ^ Мурата Макото (3 апреля 2002 г.). «RELAX (описание XML на обычном языке) — «RELAX NG OASIS. Это язык схем, созданный путем объединения RELAX Core и TREX." " . Проверено 28 декабря 2009 г.
  4. ^ «TREX и RELAX объединены в RELAX NG, облегченную спецификацию проверки языка XML» . Обложки. 05.06.2001 . Проверено 28 декабря 2009 г.
  5. ^ ОСЛАБЛЕНИЕ СПЕЦИФИКАЦИИ
  6. ^ РАССЛАБЛЕНИЕ ТЕХНИЧЕСКОГО КОМИТЕТА
  7. ^ ИСО. «ISO/IEC 19757-2:2008. Информационные технологии. Язык определения схемы документа (DSDL). Часть 2. Проверка на основе регулярной грамматики. RELAX NG» . ИСО . Проверено 28 декабря 2009 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a45493aa2e12a0dba70f6d80c9672747__1680360900
URL1:https://arc.ask3.ru/arc/aa/a4/47/a45493aa2e12a0dba70f6d80c9672747.html
Заголовок, (Title) документа по адресу, URL1:
RELAX NG - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)