Документация / XML
Текст, символы и сущности
Символы и кодировки
XML-документ — это текст в Unicode. Процессоры обязаны понимать UTF-8 и UTF-16; другие кодировки (например,
windows-1251) допускаются, если указаны в объявлении XML. Для обмена данными используйте UTF-8: это кодировка
по умолчанию, и она не требует объявления.
Экранирование и предопределённые сущности
Пять символов имеют в XML особый смысл. Для них есть предопределённые сущности:
| Символ | Сущность | Где экранировать обязательно |
|---|---|---|
< | < | Везде в тексте и значениях атрибутов |
& | & | Везде в тексте и значениях атрибутов |
> | > | В последовательности ]]> в тексте; в остальных местах — по желанию |
" | " | В значении атрибута в двойных кавычках |
' | ' | В значении атрибута в одинарных кавычках |
Ссылки на символы
Любой символ Unicode можно записать по коду: ₽ (десятичный) или ₽ (шестнадцатеричный) — это знак
рубля ₽. Ссылки на символы удобны для невидимых и редких символов: неразрывного пробела  , длинного тире
—.
<?xml version="1.0" encoding="UTF-8"?>
<price>
<amount>3 490</amount>
<currency>₽</currency>
<condition>Если сумма < 1000 & доставка > 0, скидки нет</condition>
</price>
Секции CDATA
Секция <![CDATA[ … ]]> — фрагмент текста, внутри которого разметка не распознаётся: < и & можно писать как есть.
Удобно для вставки кода, HTML или SQL. Внутри CDATA не может встречаться последовательность ]]>.
<?xml version="1.0" encoding="UTF-8"?>
<query>
<sql><![CDATA[SELECT * FROM orders WHERE total > 1000 AND status <> 'cancelled']]></sql>
</query>
Комментарии
<!-- комментарий --> — может стоять где угодно вне тегов. Внутри комментария нельзя писать два дефиса подряд --,
а комментарий не может заканчиваться на --->. Процессоры не обязаны передавать комментарии приложению, поэтому
не храните в них данные.
Инструкции обработки
<?цель данные?> — указание конкретному приложению. Самая известная — подключение таблицы стилей:
<?xml-stylesheet type="text/xsl" href="order.xsl"?>
Объявление <?xml … ?> в начале документа похоже на инструкцию обработки, но ею не является.
Пробелы и переводы строк
- Процессор передаёт приложению все пробельные символы в содержимом элементов; какие из них значимы — решает
приложение (или атрибут
xml:space). - Переводы строк нормализуются:
CR LFи одиночныйCRпревращаются вLF. Поэтому файлы из Windows и Linux читаются одинаково. - Пробелы между элементами, которые нужны только для отступов, называют «незначимыми»; при валидации по DTD процессор может их отбросить.
Похожие инструменты
Обновлено: 30 сентября 2026 г.
