Расширяемый язык разметки



         

Нотация


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

symbol ::= expression

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

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

#xN

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

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

соответствует любому , чье значение имеется среди перечисленных символов. В пределах одного набора скобок перечисления и диапазоны могут сочетаться. [^a-z], [^#xN-#xN]

соответствует любому , чье значение не входит в указанный диапазон. [^abc], [^#xN#xN#xN]

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

"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: ... ]

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




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