В XML может ли CData существовать вместе с другим узлом?
Это действительный XML?
<foo>
<![CDATA[<bar>]]>
<sibling></sibling>
</foo>
Могут ли все парсеры XML разобрать это?
2 ответа
CData вместе с другим узлом в порядке, он не нарушает правильность XML-документа. Учитывая этот факт, все приличные парсер XML должен уметь анализировать такую структуру.
Из спецификации XML 1.0:
[Определение: разделы CDATA могут появляться везде, где могут встречаться символьные данные; они используются для экранирования блоков текста, содержащих символы, которые иначе были бы распознаны как разметка. Разделы CDATA начинаются со строки
" <![CDATA[ "
и заканчивается строкой" ]]> "
:].
Этот фрагмент XML, безусловно, хорошо сформирован. Будь он действительным, зависит от схемы XML (или DTD), которую вы используете для проверки.