Нотация
Формальная грамматика языка 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.