[an error occurred while processing this directive]

6 Нотация

Формальная грамматика языка XML строится в данной спецификации с помощью простой нотации Extended Backus-Naur Form (EBNF). Каждое правило в грамматике определяет один символ (symbol) в следующем формате:
symbol ::= expression

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

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

#xN

где N - шестнадцатеричное целое число. Данное выражение соответствует символу в кодировке ISO/IEC 10646, каноническое значение кода (UCS-4) которого как беззнаковое целое число, имеет указанное значение. Количество ведущих нулей в формате #xN значения не имеет. Количество ведущих нулей в соответствующем значении кода определяется используемой кодировкой символов и для XML значения не имеет.

[a-zA-Z], [#xN-#xN]

соответствует любому Char, чье значение попадает в указанный диапазон(ы) (включительно).

[abc], [#xN#xN#xN]

соответствует любому Char, чье значение имеется среди перечисленных символов. В пределах одного набора скобок перечисления и диапазоны могут сочетаться.

[^a-z], [^#xN-#xN]

соответствует любому Char, чье значение не входит в указанный диапазон.

[^abc], [^#xN#xN#xN]

соответствует любому Char, чьего значение нет среди указанных символов. В пределах одного набора скобок перечисления и диапазоны запрещенных значений могут сочетаться.

"string"

соответствует строке символов, совпадающей со строкой, представленной в двойных кавычках.

'string'

соответствует строке символов, совпадающей со строкой, представленной в одинарных кавычках.

Представленные символы могут комбинироваться в более сложные шаблоны следующим образом (где A и B представляют собой простые выражения):

(выражение)

данное выражение обрабатывается как единое целое и может комбинироваться с другими выражениями в соответствии с дальнейшим перечнем.

A?

соответствует A или ничему. Необязательная единица A.

A B

соответствует A, за которым следует B. Данный оператор имеет более высокий приоритет, чем оператор альтернативы. Таким образом, A B | C D эквивалентно (A B) | (C D).

A | B

соответствует A или B, но не обоим сразу.

A - B

любая строка, которая соответствует шаблону A, но не соответствует B.

A+

соответствует одному или нескольким экземплярам A. Конкатенация имеет более высокий приоритет, чем оператор альтернативы. Таким образом, A+ | B+ эквивалентно (A+) | (B+).

A*

соответствует нулю, одному или нескольким экземплярам A. Конкатенация имеет более высокий приоритет, чем оператор альтернативы. Таким образом, A* | B* эквивалентно (A*) | (B*).

Остальные нотации, используемые в сценариях:

/* ... */

комментарий.

[ wfc: ... ]

ограничение корректности. Идентифицирует по имени ограничение для корректных документов, связанное с неком сценарием.

[ vc: ... ]

ограничение действительности. Идентифицирует по имени ограничение для действительных документов, связанное с неким сценарием.

Назад | Содержание | Вперед

  [an error occurred while processing this directive]