6 Нотация
Формальная грамматика языка XML строится в данной спецификации с помощью простой нотации Extended Backus-Naur Form (EBNF). Каждое правило в грамматике определяет один символ (symbol) в следующем формате:
Каждый символ, являющийся оригинальным в языке нормативов, пишется с заглавной буквы. В остальных случаях, первая буква символа прописная. Строки текста помещаются в кавычки.
В правой части правила представлено выражение, использующее следующие конструкции, сопоставляемые строкам из одного или нескольких символов:
#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: ... ]
ограничение действительности. Идентифицирует по имени ограничение для действительных документов, связанное с неким сценарием.
Назад |
Содержание |
Вперед
|
|