код символа в xml

Сущности знаков XML и XAML

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

Сущности символов и проблемы экранирования, уникальные для XAML

Разметка XAML обычно использует же сущности символов и escape-последовательности, которые определены в XML.

Главной особенностью является то, фигурные скобки (< и >) в XAML имеют значение, так как эти они информируют обработчика XAML о том, что последовательность символов, заключенных в фигурные скобки, должна интерпретироваться как расширение разметки. Дополнительные сведения о расширениях разметки см. в разделе Markup Extensions for XAML Overview.

Однако можно по-прежнему отобразить фигурные скобки как литеральные символы, используя escape-последовательности, определенные в языке XAML, а не в XML. Дополнительные сведения см. в разделе <> escape-разметка.

Обратите внимание, что обратная косая черта ( \ ) не требует escape-последовательности, если она обрабатывается как строка.

Сущности символов XML

Как упоминалось ранее, большинство сущностей символов и escape-последовательностей, которые обычно используются для написания разметки XAML, определяются XML. Этот раздел не содержит полного списка этих сущностей. Подробные сведения о них можно найти во внешней документации, например в спецификациях XML. Однако для удобства в этом разделе перечислены некоторые из определенных сущностей символов XML, которые обычно используются в разметке XAML.

Формат комментариев XML

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

Источник

I. Коротко об XML¶

Введение в XML¶

XML ( англ. eXtensible Markup Language) — расширяемый язык разметки, предназначенный для хранения и передачи данных.

Простейший XML-документ выглядит следующим образом:

Документ XML состоит из элементов (elements). Элемент начинается открывающим тегом (start-tag) в угловых скобках, затем идет содержимое (content) элемента, после него записывается закрывающий тег (end-teg) в угловых скобках.

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

Структура XML¶

XML документ должен содержать корневой элемент. Этот элемент является «родительским» для всех других элементов.

Все элементы в XML документе формируют иерархическое дерево. Это дерево начинается с корневого элемента и разветвляется на более низкие уровни элементов.

Все элементы могут иметь подэлементы (дочерние элементы):

Правила синтаксиса (Валидность)¶

Основные правила синтаксиса XML:

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

Сущности¶

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

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

Чтобы ошибки не возникали, нужно заменить символ на его сущность. В XML существует 5 предопределенных сущностей:

Таблица I.1 — Сущности ¶

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

Только символы и & строго запрещены в XML. Символ > допустим, но лучше его всегда заменять на сущность.

Таким образом, корректными будут следующие формы записей:

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

Поиск информации в XML файлах (XPath)¶

XPath ( англ. XML Path Language) — язык запросов к элементам XML-документа. XPath расширяет возможности работы с XML.

XML имеет древовидную структуру. В документе всегда имеется корневой элемент (инструкция version=”1.0”?> к дереву отношения не имеет). У элемента дерева всегда существуют потомки и предки, кроме корневого элемента, у которого предков нет, а также тупиковых элементов (листьев дерева), у которых нет потомков. Каждый элемент дерева находится на определенном уровне вложенности (далее — «уровень»). У элементов на одном уровне бывают предыдущие и следующие элементы.

Это очень похоже на организацию каталогов в файловой системе, и строки XPath, фактически, — пути к «файлам» — элементам. Рассмотрим пример списка книг:

XPath запрос /bookstore/book/price вернет следующий результат:

Чтобы получить больше информации, необходимо модифицировать запрос //book[title[@lang=»it»]] вернет:

В приведенной ниже таблице представлены некоторые выражения XPath и результат их работы:

Кодировки¶

И еще один важный момент, который стоит рассмотреть — кодировки. Существует множество кодировок, о них подробнее можно прочитать в статье Набор символов.

В XML файле кодировка объявляется в декларации:

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

Таблица I.3 — Смена кодировки в разных программах ¶

ПрограммаКодировка
Notepad++«Документ → Кодировка»
Geany«Документ → Установить кодировку»
Firefox«Вид → Кодировка»
Chrome«Настройка → Дополнительные инструменты → Кодировка»

Если ничего не помогает, вполне возможно, что файл был поврежден.

XSD схема¶

XML Schema — язык описания структуры XML-документа, его также называют XSD. Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.

После проверки документа на соответствие XML Schema читающая программа может создать модель данных документа, которая включает:

Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти объект, соответствующий структуре XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.

Подробнее об XSD смотрите:

Примером использования XSD cхем может служить электронная отчетность:

Источник

Какие символы мне нужно экранировать в документах 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-сущностей:

Источник

Какие символы мне нужно избежать в 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 документ.

Источник

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

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