Секции CDATA выделяют части документа, внутри которых текст не должен восприниматься как разметка. CDATA означает буквально "character data" — символьные данные. Секции CDATA задаются следующим образом:
>содержимое]]>
Поскольку синтаксис разметки документов в XML имеет текстовую форму, часто бывает, что само содержимое документа может быть воспринято как разметка. В том случае, когда этого желательно избежать, самым простым выходом будет поместить такие данные внутрь секции CDATA.
Пример
Следующий текст в документе
>Покупайте наших слонов!
будет воспринят как разметка. Для того чтобы избежать этого, достаточно написать
>Покупайте наших слонов!]]>
Такая конструкция уже будет воспринята как символьные данные. Другим примером может быть использование символов "><
" и ">&
":
>
Секции символьных данных задаются четырьмя довольно простыми правилами:
>[18] CDSect ::= CDStart CData CDEnd
>[19] CDStart ::= '
>[20] CData ::= Char* - (Char* ']]>' Char*))
>[21] CDEnd ::= ']]>'
Содержимое секции символьных данных, отвечающее продукции CData, может состоять из любых символов, в том числе "><
" и ">&
", которые не будут восприниматься как разметка. Единственное, чего секции CDATA не могут включать — это последовательность ">]]>
", которая завершает символьную секцию.
XML-документ может содержать комментарии, которые записываются следующим образом:
>
Текст комментария может состоять из любых символов, кроме двух минусов
подряд (">--
"). Кроме этого, комментарий не должен заканчиваться символом ">-
" .
Пример комментария:
>...
>
>...
Продукция комментария называется в XML >Comment
и имеет следующий вид:
>[15] Comment ::= ''
Выражение >((Char - '-') | ('-' (Char - '-')))*
означает, что содержимое комментария не должно оканчиваться на знак ">-
" или содержать два таких знака последовательно.