Технология XSLT - страница 12
Псевдоатрибут >version
содержит информацию о версии XML, в соответствии с которой был создан этот документ. Текущей версией языка XML является 1.0, поэтому в большинстве случаев указывается >version="1.0"
.
>
Псевдоатрибут >encoding
сообщает, в какой кодировке создан данный документ. По умолчанию выбрана Unicode-кодировка UTF-8 (подробнее см. "Использование Unicode"), но точно так же может быть использована и любая другая кодировка, лишь бы только ее поддерживало программное обеспечение, обрабатывающее документ.
Большинство документов, созданных на русском языке, используют кириллические кодировки >windows-1251
и >KOI8-R
; XML-декларации для этих документов будут иметь вид:
>
и
>
соответственно.
Для документов, в которых использовались только нижние 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') '"' ) )
Расшифровывается это правило очень просто: псевдоатрибут >standalone
может иметь значение >yes
или >no
, заключенное в одинарные или двойные кавычки.
Секции СDATA
Секции CDATA выделяют части документа, внутри которых текст не должен восприниматься как разметка. CDATA означает буквально "character data" — символьные данные. Секции CDATA задаются следующим образом:
>содержимое]]>
Поскольку синтаксис разметки документов в XML имеет текстовую форму, часто бывает, что само содержимое документа может быть воспринято как разметка. В том случае, когда этого желательно избежать, самым простым выходом будет поместить такие данные внутрь секции CDATA.