SPX group - разработка программного обеспечения на заказ





написать письмо » spxgroup@inbox.ru





Формат XML - описание

часть 6

6 Нотация

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

symbol ::= expression

Символы записываются с заглавной буквы, если они являются начальным символом языка, в ином случае - с начальной буквы в нижнем регистре. Литерные строки заключены в кавычки.

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

#xN

где N это 16-ричное целое, выражение соответствует символу из 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 обозначают простые выражения:

(expression/выражение)

expression рассматривается как модуль и может комбинироваться так, как описано в этом списке.

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*

соответствует 0 или более вхождений A. Конкатенация имеет более высокий приоритет, чем выбор; таким образом A* | B* идентично (A*) | (B*).

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

/* ... */

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

[ wfc: ... ]

well-formedness constraint- ограничение правильной сформированности; идентифицирует по имени ограничение правильно сформированных документов, ассоциированных с продукцией.

[ vc: ... ]

validity constraint - ограничение правильности; идентифицирует по имени ограничение правильных (верных) документов, ассоциированных с продукцией.


к содержанию
Яндекс цитирования Rambler's Top100 Rambler's Top100
Hosted by uCoz