| #x3F | ? | Вопросительный знак (question mark) | 
| #xA0 | [NBSP] | Неразрываемый пробел (no-break space) | 
Коды многих других символов можно найти на Web-сайте Unicode Consortium в разделе Code Charts: http://www.unicode.org/charts/.
Базовые продукции XML
Теперь, когда мы разобрали модель символов Unicode, которая используется в XML, можно дать EBNF-определения основных базовых конструкций языка — символов, имен, именных токенов и их последовательностей.
В XML можно использовать любые символы Unicode, кроме суррогатных блоков и символов с кодами #xFFFE и #xFFFF:
[2] Char ::= #x9 | #xA | #xD | [#x20 - #xD7FF]
             | [#хЕ000 - #xFFFD) | [#х10000 - #x10FFFF]
Для удобства все множество символов разделено на несколько категорий.
□ Буквы, которые соответствуют продукции Letter, в свою очередь, делятся на основные (BaseChar) и идеографические (Ideographic). Буквы относятся к алфавитам, из которых состоят слова различных языков. Продукции букв чрезвычайно просты, но громоздки, поскольку перечисляют символы различных алфавитов. Читатель может легко найти их в технической рекомендации XML по адресу http://www.w3.org/TR/REC-xml.html под номерами [84] (Letter), [85] (BaseChar) и [86] (Ideographic).
□ Цифры, которые составляют в различных культурах числа. Цифры определяются продукцией Digit с номером [88].
□ Модифицирующие символы (CombiningChar), которые изменяют написание или звучание символов, как, например, #x308 — двойная точка сверху символа, которая используется для обозначения умляута в немецком и для замены e на ё в русском языке. Продукция CombiningChar имеет номер [87].
□ Символы расширения (Extender). Продукция Extender имеет порядковый номер [89].
Следующей простейшей символьной конструкцией является пробельное пространство S. Приведем еще раз его продукцию:
[3] S ::= (#х9 | #хА | #xD | #x20)+
Во многих продукциях XML-языков используются имена. Например, имена даются элементам, атрибутам, переменным XPath и так далее. В основе определения имени лежат именные символы NameChar:
[4] NameChar ::= Letter | Digit | CombiningChar | Extender
                 | '.' | '-' | '_' | ':'
Имя начинается либо буквой, либо символами '_' или ':' и состоит из последовательности именных символов:
[5] Name ::= (Letter | '_' | ' :') (NameChar*)
В некоторых правилах XML используется последовательность имен, соответствующая продукции Names:
[6] Names ::= Name (S Name)*
Кроме того, техническая рекомендация определяет так называемый именной токен NmToken — строку, которая может состоять из одного или более именных символов и последовательности таких токенов, NmTokens.
[7] NmToken  ::= (NameChar)+
[8] NmTokens ::= NmToken (S NmToken)*
Символьные данные могут заключаться в кавычки для того, чтобы формировать литералы. В XML определены следующие литералы: значение сущности (EntityValue), значение атрибута (AttValue), системный литерал (SystemLiteral), а также PubidLiteral — литерал, определяющий публичный идентификатор ресурса (
[9] EntityValue    ::= ''' ([^%&'] | PEReference | Reference)* '''
                       | ''' ([^%&'] | PEReference | Reference)* '''
[10] AttValue      ::= ''' ([^<&'] | Reference)* '''
                       | ([^<&'] | Reference)* '''
[11] SystemLiteral ::= (''' [^']* ''')
                       | (''' [^']* ''')
[12] PubidLiteral  ::= ''' PubidChar* '''
                       | ''' (PubidChar - ''')*
[13] PubidChar     ::= #x20 | #xD | #xA
                       | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
В литералах EntityValue и AttValue допустимо использовать продукции сущностей (PEReference, Reference). Это означает, что при определении значений сущностей и атрибутов можно использовать ссылки на сущности, например, в элементе заданном как:
<song title='Крейсер "Aвpopa" '/>
атрибут title имеет значение крейсер 'Аврора'. Двойные кавычки были определены посредством встроенных сущностей.
Символьные данные, которые задаются продукцией CharData, могут состоять из любых символов, кроме символов '<' и '&', которые используются в XML в качестве управляющих. CharData главным образом используется в секциях CDATA, и, соответственно, не может содержать терминирующую последовательность ']]>'.
[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
XML-документы с точки зрения спецификации
Теперь, когда мы разобрали практически все структурные единицы XML, осталось определить стандартным образом синтаксис для самих XML-документов. Им соответствует продукция document:
[1] document ::= prolog element Misc
Итак, XML-документ состоит из пролога, единственного корневого элемента и дополнительного

 
                