Sitemap, который не читает поисковик
В адресе страницы есть параметры через &, а в XML этот знак пишется как &. Поисковик не сможет прочитать такой файл, а проверка покажет строку и колонку: замените &page=2 на &page=2.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.ru/catalog?sort=price&page=2</loc>
<lastmod>2026-11-03</lastmod>
</url>
</urlset>
Фид после ручной правки
В фид вписали товар руками и дважды ошиблись: значение атрибута без кавычек и перепутанный закрывающий тег. Проверка покажет обе ошибки сразу, а не по одной за попытку загрузки.
<offers>
<offer id=A-117 available="true">
<name>Автомат С25</name>
<price>348</prise>
</offer>
</offers>
Два документа в одном файле
Две выгрузки склеили в один файл. У XML может быть только один корневой элемент, поэтому второй <Файл> — ошибка, а второе объявление <?xml … ?> в середине — ещё одна.
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="NO_1"><Документ/></Файл>
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="NO_2"><Документ/></Файл>
Знаки & и < в тексте и в значениях атрибутов пишутся как & и <. Чаще всего это ломается на названиях вроде «Рога & Копыта» и на ссылках с параметрами. Кавычку внутри значения в двойных кавычках пишут как ". Другой путь для текста — CDATA: внутри <![CDATA[ … ]]> & и < можно писать как есть.
Каждый открытый тег закрывается, и в том же порядке: <a><b></b></a>, а не <a><b></a></b>. Имена чувствительны к регистру: <Цена> не закрывается тегом </цена>. Значение атрибута всегда в кавычках, двойных или одинарных, а один атрибут не может повторяться в теге.
Корневой элемент один, текст вне его не допускается. Имя тега начинается с буквы или подчёркивания: <1С> — ошибка, а кириллица в именах разрешена.
Многие программы, в том числе 1С, PHP и xmllint, разбирают XML библиотекой libxml2 и сообщают об ошибках её словами, по-английски. В 1С сообщение начинается с «Ошибка разбора XML», место указано в квадратных скобках — строка и колонка, а дальше идёт текст libxml2. «Opening and ending tag mismatch» — закрывающий тег не совпадает с открытым, «EntityRef: expecting ';'» — голый знак & в тексте, «Premature end of data in tag» — файл оборвался, а тег так и не закрыт, «Extra content at the end of the document» — после корневого элемента есть что-то ещё, например второй корень.
«XML declaration allowed only at the start of the document» значит, что перед <?xml … ?> что-то есть: пустая строка, пробел, вывод отладки на сервере или второе объявление в склеенном файле. Объявление должно стоять первым символом файла. Невидимый BOM перед ним допустим, но о нём мы предупредим.
Вставьте файл сюда: проверка назовёт причину по-русски и покажет место, а щелчок по ошибке переведёт к ней курсор.
Здесь проверяется, что XML составлен по правилам языка, то есть корректен: теги закрыты, корень один, спецсимволы экранированы. Такой файл прочитает любая программа.
Соответствие схеме XSD — другой уровень: есть ли обязательные элементы, верны ли форматы дат и ИНН. Именно его проверяют операторы ЭДО и налоговая, а схемы публикуются вместе с форматами документов. Проверку по XSD мы скоро добавим; синтаксис стоит проверить в любом случае — схему не проверить, пока файл не разбирается.
Как проверить XML на ошибки онлайн
Вставьте его в поле слева или перетащите файл. Если справа «Корректный XML» — синтаксис в порядке. Если нет, справа будет список ошибок, до 100 за раз: у каждой строка, колонка, фрагмент с подчёркнутым местом и подсказка.
Проверяете ли вы XML по схеме XSD
Пока нет, только синтаксис. Проверку по XSD добавим в одном из ближайших обновлений. До тех пор файл для ФНС или ЭДО можно проверить в программе подготовки отчётности или у оператора ЭДО.
Что значат предупреждения
Это не ошибки: XML разберётся, но может повести себя неожиданно. BOM в начале файла, кодировка в объявлении, которая не совпадает с настоящей, ссылка на сущность из DTD, которую мы оставили как есть.
Почему кириллица в файле выглядит кракозябрами
Скорее всего, в объявлении написано encoding="UTF-8", а файл сохранён в windows-1251, или наоборот. Мы читаем файл по объявлению и предупредим, если байты ему не соответствуют.
Загружаются ли DTD и внешние файлы
Нет, никогда. Объявление DOCTYPE остаётся в документе как текст, а сущности из него не раскрываются. Это заодно защищает от атак через внешние сущности.
Куда уходят мои файлы
Никуда. Проверка работает в браузере, запросы на чужие адреса запрещены заголовком безопасности. УПД, отчёты и выгрузки с реквизитами остаются на вашем компьютере.