Для чего в xml документе используются символы amp lt gt apos

Какие символы мне нужно избежать в XML-документах?

какие символы должны быть экранированы в XML-документах, или где я могу найти такой список?

9 ответов

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

XML escape-символы

экранирование символов зависит от того, где используется специальный символ.

примеры могут быть проверены на служба проверки разметки W3C.

текст

атрибуты

безопасный способ-избежать всех пяти символов в атрибутах, однако, > символ не должен быть экранирован в атрибутах:

на ‘ символ не должен быть экранирован в атрибутах, если кавычки » :

кроме того, » не нужно бежать в атрибуты, если кавычки ‘ :

комментарии

все 5 специальных символов не должен избежать в комментариях:

CDATA

все 5 специальных символов не должен сбежать в CDATA разделы:

инструкции по обработке

все 5 специальных символов не должен быть экранированным в обработке XML инструкции:

в XML и в HTML

в HTML есть собственный набор кодов эвакуации, которые охватывают гораздо больше персонажей.

возможно, это поможет:

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

в этой статье перечислены следующие пять предопределенных объектов XML:

согласно спецификациям Консорциума Всемирной паутины (w3C),есть 5 символов, которые не должны отображаться в их буквальном виде в XML-документе, за исключением случаев использования в качестве разделителей разметки или в комментарии, инструкции по обработке или разделе CDATA. Во всех остальных случаях эти символы должны быть заменены либо с помощью соответствующей сущности, либо с помощью числовой ссылки в соответствии со следующей таблицей:

Оригинал Характер замена сущности XML XML числовая замена

> > >
» » »
& & &
‘ ‘ ‘

обратите внимание, что вышеупомянутые сущности могут использоваться также в HTML, за исключением , который был введен с XHTML 1.0 и не объявлен в HTML 4. По этой причине и для обеспечения ретро-совместимости, спецификация XHTML рекомендует использовать ‘ вместо.

экранирование символов отличается для тегов и атрибутов.

символ амперсанда (&) и левая угловая скобка ( ) может быть представлена с помощью строка » > » и для совместимости должна быть экранирована с помощью либо «>»или ссылка на символ, когда он появляется в строке»]] > «в содержимом, когда эта строка не помечает конец CDATA раздел.

разрешить значения атрибутов содержать как одинарные, так и двойные кавычки, этот Апостроф или символ одинарной кавычки ( ‘ ) может быть представлен как » «и двойные кавычки («) как «» «.

в дополнение к общеизвестным пяти символам [, &, «, ‘] я бы также избежал символа вертикальной вкладки (0x0B). Он действителен UTF-8, но не действителен XML 1.0, и даже многие библиотеки (включая libxml2) пропускают его и молча выводят недопустимый XML.

новый, упрощенный ответ на старый, часто задаваемый вопрос.

упрощенный XML Escaping

существует пять предопределенных сущностей:

«все разрешенные символы Юникода могут быть представлены в числовой ссылки. «Например:

большинство управляющих символов и других диапазонов unicode специально исключены, что означает (Я думаю), что они не могут произойти либо экранированы, либо прямой:

Источник

Правила синтаксиса XML

Правила синтаксиса XML крайне просты и логичны. Их легко запомнить и легко использовать.

Все XML элементы должны иметь закрывающий тег

В HTML некоторые элементы могут не иметь закрывающего тега:

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

Возможно, вы заметили из предыдущих примеров, что XML декларация не имеет закрывающего тега. Это не ошибка. Дело в том, что декларация не относится к XML документу, поэтому у нее и нет закрывающего тега.

Теги XML регистрозависимы

Открывающий и закрывающий теги должны определяться в одном регистре:

Замечание: «Открывающий и закрывающий теги» иногда еще называют «начальный и конечный теги». Используйте то определение, которое вам более симпатично. По сути это одно и то же.

XML элементы должны соблюдать корректную вложенность

В HTML иногда можно наблюдать такую картину:

и иногда это даже работает должным образом.

В XML все элементы обязаны соблюдать корректную вложенность:

Понятие «корректная вложенность» по отношению к приведенным примерам просто означает, что так как элемент открывается внутри элемента , то и закрываться он должен внутри элемента .

У XML документа должен быть корневой элемент

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

XML пролог

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

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

В XML документе могут присутствовать международные символы, вроде русских букв, и чтобы не возникало ошибок необходимо указать кодировку, либо сохранить XML файл в формате UTF-8.

UTF-8 — кодировка XML документов по умолчанию.

Значения XML атрибутов должны заключаться в кавычки

Так же, как и в HTML, у XML элементов могут быть атрибуты в виде пары имя/значение.

В XML значения атрибутов должны заключаться в кавычки.

Посмотрите на следующие два примера XML документа. Первый с ошибкой, второй написан правильно:

Ошибка в первом XML документе заключается в том, что значение атрибута date элемента note не заключено в кавычки.

Сущности

Некоторые символы в XML имеют особые значения.

Если вы поместите, например, символ «>больше, чем&&амперсанд‘‘апостроф««кавычки

Замечание: Только символы » » допустим, но лучше его всегда заменять на сущность.

Комментарии в XML

Синтаксис комментариев в XML такой же, как и в HTML.

Использование двух символов тире в середине комментария не допустимо.

Странно, но так можно:

В XML пробелы сохраняются

В HTML несколько последовательных пробельных символов усекаются до одного. В XML документе все пробельные символы сохраняются.

В XML новая строка сохраняется как LF

В приложениях Windows новая строка хранится в следующем виде: символ перевода каретки и символ новой строки (CR+LF).

Unix и Mac OSX используют LF.

Старые Mac системы используют CR.

XML сохраняет новую строку как LF.

Синтаксически верный XML документ

Если XML документ составлен в соответствии с приведенными синтаксическими правилами, то говорят, что это «синтаксически верный» XML документ.

Источник

Какие символы мне нужно экранировать в документах XML?

Какие символы должны быть экранированы в документах XML, или где я могу найти такой список?

Если вы используете соответствующий класс или библиотеку, они помогут вам. Многие проблемы XML вызваны конкатенацией строк.

Escape-символы XML

Экранирование символов зависит от того, где используется специальный символ.

Текст

Атрибуты

Символ ‘ не должен быть экранирован в атрибутах, если кавычки » :

Аналогично, » нет необходимости экранироваться в атрибутах, если кавычки ‘ :

Комментарии

Все пять специальных символов не должны быть экранированы в комментариях:

CDATA

Все пять специальных символов не должны быть экранированы в разделах CDATA :

Инструкции по обработке

Все пять специальных символов не должны быть экранированы в инструкциях обработки XML:

XML против HTML

HTML имеет свой собственный набор escape-кодов, который охватывает гораздо больше символов.

Возможно, это поможет:

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

В этой статье перечислены следующие пять предопределенных сущностей XML:

Original Character XML entity replacement XML numeric replacement

> > >
» » »
& & &
‘ ‘ ‘

Экранирование символов отличается для тегов и атрибутов.

Символ амперсанда (&) и левая угловая скобка ( ) может быть представлена ​​с помощью строки «& gt;» и для совместимости должна быть экранирована с помощью «& gt;» или ссылки на символ, когда она появляется в строке «]]>» в содержимом, когда эта строка не обозначает конец раздела CDATA.

Упрощенный XML Escapeing (с приоритетом, завершен на 100%)

Источник

Какие символы мне нужно экранировать в документах XML?

Какие символы необходимо экранировать в XML-документах или где найти такой список?

9 ответов

Если вы используете соответствующий класс или библиотеку, они сделают экранирование за вас. Многие проблемы XML вызваны объединением строк.

Escape-символы XML

Экранирование символов зависит от того, где используется специальный символ.

Текст

Атрибуты

Символ ‘ не нужно экранировать в атрибутах, если кавычки имеют вид » :

Аналогично, » не нужно экранировать в атрибутах, если кавычки имеют вид ‘ :

Комментарии

Все пять специальных символов нельзя экранировать в комментариях:

CDATA

Все пять специальных символов нельзя экранировать в разделах CDATA:

Инструкции по обработке

Все пять специальных символов нельзя экранировать в инструкциях по обработке XML:

XML против HTML

HTML имеет собственный набор управляющих кодов, охватывающий гораздо больше символов.

Согласно спецификациям Консорциума World Wide Web (w3C), состоит из 5 символов. которые не должны появляться в своей буквальной форме в XML-документе, за исключением случаев, когда они используются в качестве разделителей разметки или внутри комментария, инструкции обработки или раздела CDATA. Во всех остальных случаях эти символы должны быть заменены либо на соответствующий объект, либо на числовую ссылку в соответствии со следующей таблицей:

Исходный символ Замена объекта XML Числовая замена XML
& lt; & # 60;
> & gt; & # 62;
» & quot; & # 34;
& & amp; & # 38;
‘ & apos; & # 39;

Для тегов и атрибутов экранирующие символы различаются.

Символ амперсанда (&) и левая угловая скобка ( ) может быть представлена ​​с помощью строки «>» и должна, для совместимости, экранироваться с помощью символа «>» или ссылки на символ, когда она появляется в строке «]]>» в содержимом, когда это строка не отмечает конец раздела CDATA.

Чтобы значения атрибутов могли содержать как одинарные, так и двойные кавычки, апостроф или символ одинарной кавычки (‘) можно представить как «‘», а символ двойной кавычки («) как» «».

Есть пять предопределенных сущностей:

«Все разрешенные символы Unicode могут быть представлены с помощью числовой ссылки на символы». Например:

Большинство управляющих символов и других диапазонов Unicode специально исключены, что означает (я думаю), что они не могут появляться ни в экранировании, ни в прямом:

Это зависит от контекста. Для содержания это (хотя строка из трех вместо одного символа).

Принятый ответ неверен. Лучше всего использовать библиотеку для экранирования xml.

Как упоминалось в этом другом вопросе

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

Если вы избежите только пяти символов. У вас могут быть такие проблемы, как ​​Обнаружен недопустимый символ XML (Unicode: 0xc)

Только и & требуется экранировать, если они обрабатываются символьными данными, а не разметкой:

Возможно, это поможет:

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

В этой статье перечислены следующие пять предопределенных XML-сущностей:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *