соответственно.
Для документов, в которых использовались только нижние 127 символов ASCII, то есть, символы с кодами, не превышающими >#x7F
, псевдоатрибут >encoding
указывать необязательно. В этой области символов кодировка UTF-8 совпадает с ASCII.
Псевдоатрибут >standalone
говорит о том, использует ли этот документ какие-либо внешние объявления или нет. Как мы узнаем чуть позже, XML-документы могут использовать информацию, которая находится во внешних документах. Опция >standalone
, имеющая значение >"yes"
, означает, что документ не содержит таких объявлений, и, значит, может быть обработан без обращения к внешним источникам.
Декларации XML соответствует продукция >XMLDecl
, которая, в свою очередь, использует несколько дочерних правил:
>[23] XMLDecl ::= '
> SDDecl? S? '?>'
Продукция >VersionInfo
определяет синтаксис псевдоатрибута >version
:
>[24] VersionInfo ::= S? 'version' Eq
> ("'" VersionNum "'"
> | "" VersionNum "")
Значение версии документа может состоять из латинских букв и цифр, а также символов ">_
", ">.
", ">:
" и ">-
":
>[26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
Кодировка объявляется продукцией >EncodingDecl
, которая синтаксически похожа на >VersionInfo
:
>[80] EncodingDecl ::= S? 'encoding' Eq
> ("'" EncName "'"
> | '"' EncName '"')
Имя кодировки, >EncName
, может состоять только из латинских букв, цифр и символов ">.
", ">_
" и ">-
", причем первым символом названия кодировки всегда должна быть буква:
>[81] EncName [A-Za-z] ([A-Za-z0-9.-] | '-')*
Используемое в документе название кодировки должно быть известно программному обеспечению, которое этот документ обрабатывает. В противном случае могут возникнуть ошибки и несоответствия. В спецификации рекомендуется использовать названия кодировок, одобренные IANA (Internet Assigned Numbers Authority — Комитет присвоенных кодов Интернет). Кириллице, которая используется в русском языке, в списках IANA присваивается около десятка кодировок. Самыми распространенными из них являются следующие:
□ Windows-1251;
□ KOI8-R;
□ Cp866;
□ ISO-8859-5.
Техническая рекомендация XML оговаривает, что. в тех случаях, когда имя использованной кодировки не является стандартным, оно должно указываться с префиксом ">x-
", например:
>
Псевдоатрибуту >standalone
соответствует EBNF-правило >SDDecl
:
>[32] SDDecl ::= S 'standalone' Eq
> (("'" ('yes' | 'no') "'")
> | ( '"' ('yes' | 'no') '"' ) )
Расшифровывается это правило очень просто: псевдоатрибут