xml cdata что это

Что означает в XML?

Я часто нахожу этот странный тег CDATA в файлах XML :

Я заметил, что этот тег CDATA всегда приходит в начале, а затем сопровождается некоторыми вещами.

ОТВЕТЫ

Ответ 1

CDATA означает Персональные данные, и это означает, что данные между этими строками включают данные, которые могут быть интерпретированы как разметка XML, но не должны быть.

Ключевыми отличиями между CDATA и комментариями являются:

Это означает, что эти три фрагмента XML из одного хорошо сформированного документа:

Ответ 2

Синтаксически он ведет себя аналогично комментарию:

. но он все еще является частью документа:

Этот код манипуляции DOM либо генерирует исключение (в Firefox), либо приводит к плохо структурированному XML-документу: http://jsfiddle.net/9NNHA/

Ответ 3

Один большой случай использования: ваш xml включает в себя программу в качестве данных (например, учебник для веб-страниц для Java). В этой ситуации ваши данные содержат большой кусок символов, которые включают «&» и ‘

Ответ 4

Мне когда-то пришлось использовать CDATA, когда мой XML-тег должен был хранить HTML-код. Что-то вроде

Таким образом, CDATA означает, что он игнорирует любой символ, который в противном случае можно было бы интерпретировать как XML-тэг типа и т.д.

Ответ 5

Данные, содержащиеся в нем, не будут анализироваться как XML и, следовательно, не должны быть действительными XML или могут содержать элементы, которые могут казаться XML, но не являются.

Ответ 6

[В] документе XML или внешнем анализируемом объекте, раздел CDATA является раздел содержимого элемента, который помечен для интерпретатора для интерпретации как только символьные данные, а не разметка.

Таким образом: текст внутри CDATA рассматривается синтаксическим анализатором, но только как символы не как узлы XML.

Ответ 7

CDATA обозначает символы. Вы можете использовать это, чтобы избежать некоторых символов, которые иначе будут обрабатываться как обычный XML. Данные внутри этого не будут анализироваться. Например, если вы хотите передать URL-адрес, содержащий & в нем, вы можете использовать CDATA для этого. В противном случае вы получите сообщение об ошибке, поскольку оно будет проанализировано как обычный XML.

Ответ 8

В качестве другого примера использования.

Если у вас есть RSS-канал (XML-документ) и вы хотите включить некоторые основные HTML-кодировки в отображение описания, вы можете использовать CData для его кодирования:

RSS Reader извлекает описание и отображает HTML внутри CDATA.

Примечание. Не все HTML-теги работают. Я думаю, что это зависит от используемого вами читателя RSS.

И как объяснение того, почему в этом примере используются CData (а не соответствующие теги pubData и dc: creator). это для отображения веб-сайта с использованием виджета RSS, для которого у нас нет реального управления форматированием.

Это позволяет нам указать высоту и положение включенного изображения, правильно отформатировать имена и дату автора и т.д., без необходимости в новом виджете. Это также означает, что я могу использовать script и не добавлять их вручную.

Читайте также:  Что такое международный уровень

Ответ 9

Он содержал данные, которые иначе можно было бы рассматривать как xml, поскольку они содержат определенные символы.

Таким образом, данные внутри будут отображаться, но не интерпретироваться.

Ответ 10

Обычно используется для встраивания пользовательских данных, например изображений или звуковых данных в документ XML.

Ответ 11

Источник

Литеральное представление XML-раздела CDATA (Visual Basic)

Литерал, представляющий XCData объект.

Синтаксис

Компоненты

Обязательный элемент. Обозначает начало раздела XML CDATA.

content
Обязательный элемент. Текстовое содержимое, отображаемое в разделе CDATA XML.

]]>
Обязательный элемент. Обозначает конец раздела.

Возвращаемое значение

Комментарии

Разделы XML CDATA содержат необработанный текст, который должен быть добавлен, но не проанализирован, с XML-кодом, содержащим его. Раздел CDATA XML может содержать любой текст. Сюда входят зарезервированные символы XML. Раздел CDATA XML заканчивается последовательностью «]] >». Это подразумевает следующие моменты:

Нельзя использовать внедренное выражение в XML-литерале CDATA, так как разделители внедренных выражений являются допустимыми содержимым XML CDATA.

Разделы CDATA XML не могут быть вложенными, поскольку content не могут содержать значение «]] >».

Можно назначить литерал XML CDATA переменной или включить его в литерал XML-элемента.

XML-литерал может охватывать несколько строк, но не использует символы продолжения строки. это позволяет копировать содержимое из XML-документа и вставлять его непосредственно в Visual Basic программу.

компилятор Visual Basic преобразует литерал CDATA XML в вызов XCData конструктора.

Пример

В следующем примере создается раздел CDATA, содержащий текст «может содержать литеральные теги».

Источник

СОДЕРЖАНИЕ

Разделы CDATA в XML

Синтаксис и интерпретация

Раздел CDATA начинается со следующей последовательности:

и заканчивается следующим появлением последовательности:

Все символы, заключенные между этими двумя последовательностями, интерпретируются как символы, а не как разметка или ссылки на объекты. Каждый символ воспринимается буквально, за исключением ]]> последовательности символов. В:

начальный и конечный теги «отправитель» интерпретируются как разметка. Однако код:

Таким образом, «теги» будут иметь тот же статус, что и «Джон Смит»; они будут рассматриваться как текст.

Точно так же, если числовая ссылка на символ ð появляется в содержимом элемента, она будет интерпретироваться как единственный символ Unicode 00F0 (строчная буква eth ). Но если то же самое появляется в разделе CDATA, он будет проанализирован как шесть символов: амперсанд, решетка, цифра 2, цифра 4, цифра 0, точка с запятой.

Использование разделов CDATA

Гнездование

Это означает, что для кодирования » ]]> » в середине раздела CDATA замените все вхождения » ]]> » следующим:

Это эффективно останавливает и перезапускает раздел CDATA.

Проблемы с кодировкой

Другая проблема заключается в том, что XML- документ можно перекодировать из одной кодировки в другую во время транспортировки. Когда XML- документ преобразуется в более ограниченный набор символов, такой как ASCII, символы, которые больше не могут быть представлены, преобразуются в &#nnn; ссылки на символы для преобразования без потерь. Но в разделе CDATA эти символы вообще не могут быть представлены, и их необходимо удалить или преобразовать в какой-либо эквивалент, изменяя содержимое раздела CDATA.

Читайте также:  байопик что означает слово

Использование CDATA в выводе программы

Разделы CDATA в документах XHTML могут анализироваться веб-браузерами по-разному, если они отображают документ как HTML, поскольку анализаторы HTML не распознают маркеры начала и конца CDATA, а также не распознают ссылки на объекты HTML, такие как & lt; внутри тегов

Источник

что на самом деле такое PCDATA и CDATA?

но потом кто-то сказал мне, что CDATA фактически анализируется или PCDATA фактически не анализируется. так что это немного путаница. Кто-нибудь знает, в чем дело?

обновление: я на самом деле добавил Определение PCDATA в Википедии. поэтому не принимайте этот ответ слишком серьезно, так как это только мое грубое понимание этого.

6 ответов

проще говоря, PCDATA означает проанализированные символьные данные. Это означает, что символы должны быть проанализированы синтаксическим анализатором XML, XHTML или HTML. ( будет заменен на

будет означать тег абзаца и т. д.). Сравните это с CDATA, где символы не должны анализироваться синтаксическим анализатором XML, XHTML или HTML.

в термин CDATA, означающий символьные данные, используется для различных, но связанных целей в языках разметки SGML и XML. Термин указывает, что определенная часть документа является общими символьными данными, а не не символьными данными или символьными данными с более конкретной, ограниченной структурой.

анализируются как PCDATA, так и CDATA. Они оба символ данные.

Они оба должны содержать только допустимые символы. Например, если кодировка документа UTF-8, содержимое разделов CDATA должно по-прежнему быть допустимым UTF-8 символов. Таким образом, случайные двоичные данные, вероятно, не позволят документу быть хорошо сформированным. Также разделы CDATA все еще анализируются, если только найти тег конца раздела. Но другие символы, подобные разметке, такие как и & игнорируются и передаются как-есть парсером.

OTOH в pcdata litteral

Так что да, разделы CDATA действительно проанализированы. Я не уверен, почему вам сказали, что PCDATA не анализируется.

PCDATA-проанализированные символьные данные

по умолчанию все PCDATA. В следующем примере игнорирование корня будет проанализировано, и у него не будет содержимого, кроме одного ребенка.

в следующем примере bar является CDATA, и не анализируется, и имеет содержимое » content!».

есть несколько моделей контента в SGML. Модель содержимого #PCDATA говорит, что элемент может содержать простой текст. «Проанализированная» часть означает, что разметка (включая PiS, комментарии и директивы SGML) в ней анализируется вместо отображения в виде необработанного текста. Это также означает, что ссылки на сущности заменяется.

другой тип модели контента, позволяющий содержание обычного текста является CDATA. В XML модель содержимого элемента не может быть неявно установлена в CDATA, но в SGML это означает, что разметка и сущность ссылки игнорируются в содержимом элемента. Однако в атрибутах типа CDATA ссылки на сущности заменяются.

Читайте также:  system platform приложение что это

в XML #PCDATA является единственной моделью содержимого обычного текста. Вы используете его, если вы вообще хотите разрешить текстовое содержимое в элементе. Модель содержимого CDATA может использоваться явно через разметку блока CDATA в #PCDATA, но содержимое элемента не может быть определено как CDATA по умолчанию.

#PCDATA не подходит для типа атрибута. Он используется для типа «листового» текста.

#PCDATA добавляется хэшем (также известным как «хэштег» или octothorp) просто по историческим причинам.

ваше первое определение является правильным.

pcdata анализируется, что означает, что объекты расширяются и что текст рассматривается как разметка. CDATA-это не парсится XML-парсер.

Если бы только элементы были установлены в CDATA по умолчанию в XHTML DTDs, это сэкономило бы много уродливых ручных переопределений. Почему блоки скриптов содержат другие элементы? Если такие элементы существуют, они обрабатываются интерпретатором JS в действиях манипуляции DOM-в этом случае они должны быть полностью проигнорированы синтаксическим анализатором XML перед вставкой и отрисовкой документа. Я полагаю, что он мог быть разработан для принудительного использования внешних файлов ресурсов скрипта, что в конечном счете хорошая вещь.

Источник

Синтаксис XML

Пустые элементы.

Если в содержимом элемента нет ни одного символа, даже пробела, то закрывающий тег можно не записывать. В этом случае открывающий тег должен заканчиваться символами «/> «.

Таким образом, тег пустого элемента начинается со знака «меньше» ( ):

Символьные данные.

Ссылки на символы.

Для того что бы вставить в текст документа некоторый символ, который, например, не присутствует в раскладке клавиатуры либо может быть неправильно истолкован анализатором, используют ссылки на символы. Ссылка на символ обязательно начинается со знака «амперсанда» и заканчивается точкой с запятой.

Ссылки на символы записываются в следующем виде:

Код символа можно записать и в шестнадцатеричном виде. В этом случае перед ним ставится символ «x»:

Ссылки на сущности.

Ссылки на сущности позволяют включать любые строковые константы в содержание элементов или значение атрибутов. Ссылки на сущности, как и ссылки на символы, начинающиеся с амперсанда, после которого идет имя сущности и заканчивающиеся точкой с запятой:

Ссылки на сущности указывают программе-анализатору подставить вместо них строку символов заранее заданную в определении типа документа.

Комментарии.

Если надо вставить в текст документа комментарий либо сделать какой-то фрагмент «невидимым» для программы-анализатора, то его оформляют следующим образом:

Комментарии могут появляться в любом месте документа вне другой разметки.

Текст комментария это любая строка символов со следующими ограничениями:

Секция CDATA.

Секция CDATA начинается со строки после которой записывается содержимое секции. Завершается секция двумя закрывающими квадратными скобками и знаком «больше»:

Источник

Информ портал о технике и не только