Содержание:
Создаю сжатый архив GZIP из своего xml файла и получаю ошибку, при валидации Яндекс.Работа. Как можно решить проблему ?
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
Посмотрите другие вопросы с метками xml или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.10.35756
использую экспорт в яндекс-работу.
Почему-то перестал яндекс принимать xml более 300 мб, поэтому решил добавить сжатие.
При отправке файла в валидатор яндекса постоянно получаю ошибку Content is not allowed in prolog
Я уже убрал все, что можно было убрать из файла, чтобы исключить какие-либо символы или пробелы, и все ровно яндекс ругается.
Что делать ? Спасибо .
У меня есть клиент веб-службы на основе Java, подключенный к веб-службе Java (реализованной на платформе Axis1).
Я получаю следующее исключение в мой лог-файл:
26 ответов:
это часто вызвано пробелом перед объявлением XML, но это может быть любой текст, как прочерк или любой символ. Я говорю, что часто вызвано белым пространством, потому что люди предполагают, что белое пространство всегда игнорируется, но это не так.
еще одна вещь, которая часто случается, это UTF-8 BOM (метка порядка байтов), который и разрешено перед объявлением XML можно рассматривать как пробелы, если документ передается как поток символов для синтаксического анализатора XML, а не как поток байтов.
то же самое может произойти, если файлы схем (.xsd) используются для проверки xml-файла и один из файлов схемы имеет UTF-8 BOM.
попробуйте добавить пробел между encoding="UTF-8" строка в прологе и окончание ?> . В XML пролог обозначает этот элемент с разделителем в виде вопросительного знака в начале документа (в то время как тег пролог в stackoverflow относится к языку программирования).
добавлено: заключается в том, что черточки в глазах ваших Пролог Часть документа? Это было бы ошибкой там, имея данные перед прологом, – .
собственно в дополнение к посту Юрия Зубарева
когда вы передаете несуществующий xml-файл в parser. Например, вы проходите
когда только C:/temp/abc.xml-файл существует в вашей файловой системе
все дают одно и то же сообщение об ошибке.
очень разочаровывает ошибка, потому что следующий след
ничего не говорит о том, что ‘ имя файла неверно " или "такой файл не существует". В моем случае у меня был абсолютно правильный xml-файл, и мне пришлось потратить 2 дня, чтобы определить реальную проблему.
Это означает, что XML искажен или тело ответа вообще не является XML-документом.
У меня была такая же проблема (и я ее решил) при попытке проанализировать XML-документ с помощью freemarker.
У меня не было пробелов перед заголовком XML-файла.
проблема когда и только когда кодировка файла и атрибут кодировки XML отличаются. (например: файл UTF-8 с атрибутом UTF-16 в заголовке).
поэтому у меня было два способа решения проблемы:
- изменение кодировки файла сам
- изменение заголовка UTF-16 на UTF-8
только что провел 4 часа, отслеживая аналогичную проблему в WSDL. Оказывается, WSDL использовал XSD, который импортирует другое пространство имен XSD. Этот импортированный XSD содержал следующее:
обратите внимание на пустой include элемент! В этом был корень моих бед. Я думаю, что это вариация на файл Егора не нашел проблемы выше.
+1 к неутешительным отчетов об ошибках.
в моем случае удаление атрибута ‘encoding=" UTF-8 " полностью сработало.
Это похоже на проблему кодировки набора символов, возможно, потому, что ваш файл на самом деле не находится в UTF-8.
мой ответ не поможет вам, вероятно, но это поможет с этой проблемой в целом.
когда вы видите такое исключение, вы должны попытаться открыть свой xml-файл в любом шестнадцатеричном редакторе, и когда-нибудь вы можете увидеть дополнительные байты в начале файла, который текстовый редактор не показывает.
удалите их, и ваш xml будет проанализирован.
Если все остальное не удается, откройте файл в двоичном формате, чтобы убедиться, что в начале файла нет забавных символов [3 непечатаемых символа в начале файла, которые идентифицируют файл как utf-8] в начале файла. Мы сделали это и нашли. поэтому мы преобразовали файл из utf-8 в ascii, и это сработало.
для тех же проблем, я удалил следующую строку,
Он работает нормально. Не очень уверен, почему это UTF-8 дает проблему. Чтобы держать меня в шоке, он отлично работает и для UTF-8.
С Windows-7 32 бит и IDE Netbeans с Java *jdk1.6.0_13*. Понятия не имею, как это работает.
Как уже отметил Майк Соколов, одной из возможных причин является наличие некоторого символа/S (например, пробела) перед тегом.
Если ваш входной XML читается как строка (в отличие от массива байтов), то вы можно использовать заменить входную строку с приведенным ниже кодом, чтобы убедиться, что все "ненужные" символы перед тегом xml стираются.
вы должны быть уверены, что входной xml начинается с тега xml, хотя.
я следовал инструкциям нашли здесь и я получил ту же ошибку.
Я попробовал несколько вещей, чтобы решить эту проблему (т. е. изменение кодировки, ввод XML-файла, а не копирование-вставка его ect) в блокноте и блокноте XML, но ничего не сработало.
проблема была решена, когда я редактировал и сохранял свой XML-файл в Notepad++ (кодировка — > utf-8 без спецификации)
для всех тех, кто получает эту ошибку: Предупреждение: Каталина.начните использовать conf / server.xml: содержимое не допускается в прологе.
не очень информативно.. но на самом деле это означает, что в вашем conf/сервере есть мусор.XML-файл.
Я видел эту точную ошибку в других XML-файлах.. эта ошибка может быть вызвана внесением изменений с помощью текстового редактора, который вводит мусор.
как можно проверить, есть ли у вас мусор в файл откройте его с помощью "шестнадцатеричного редактора", Если вы видите какой-либо символ перед этой строкой
как это было бы мусор
Это твоя проблема. Решение заключается в использовании хорошего шестнадцатеричного редактора.. Тот, который позволит вам сохранять файлы с различными типами кодировки..
тогда просто сохраните его как UTF-8. Некоторые системы, которые используют XML-файлов может понадобиться сохранена как UTF без Бом Что означает "без знака порядка байтов"
надеюсь, это поможет кому-то там!!
в моем случае web.xml в моем приложении есть дополнительное пространство даже после того, как я удалил не работал, мне пришлось отменить изменения и исправления и да я играл с ведение журнала.свойства и web.xml в моем tomcat, но даже после того, как я вернул ошибку продолжал показывать, так что это исправило его )).
чтобы быть конкретным я попытался сделать добавление орг.апаш.Каталина.фильтры.ExpiresFilter.уровень= Штраф в размере стек над потоком что-то о входе.свойства
просто дополнительная мысль об этом на будущее. Получение этой ошибки может быть так, что один просто нажимает клавишу delete или какой-либо другой ключ случайным образом, когда у них есть окно XML в качестве активного дисплея и не обращают внимания. Это уже случалось со мной раньше с распорками.XML-файл в моем веб-приложения. Неуклюжие локти .
Я тоже получал то же самое
XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,2] Message: Reference is not allowed in prolog.
, когда мое приложение создавало XML-ответ для вызова RestFull Webservice. При создании строки формата XML Я заменил < и > на затем ошибка ушла, и я получал правильный ответ. Не знаю, как это работает, но это сработало.
пример:
У меня была та же проблема.
сначала я загрузил XML-файл на локальный рабочий стол, и я получил Content is not allowed in prolog во время импорта файла на сервер портала. Даже визуально файл выглядел хорошо для меня, но каким-то образом он был поврежден.
поэтому я повторно загрузил тот же файл и попробовал то же самое, и это сработало.
недавно у нас была такая же проблема, и это оказалось в случае плохого URL и, следовательно, стандартного ответа HTTP 403 (который, очевидно, не является допустимым XML, который искал клиент). Я собираюсь поделиться подробностями, если кто-то в том же контексте столкнется с этой проблемой:
Это было веб-приложение на основе Spring, в котором компонент" JaxWsPortProxyFactoryBean " был настроен для предоставления прокси-сервера для удаленного порта.
в END_POINT_BASE_URL "" является ли переменная среды настроена в "setenv.sh" экземпляра Tomcat, на котором размещается веб-приложение. Содержимое файла выглядит примерно так:
отсутствующий "; " после каждой строки вызвал неправильный URL-адрес и, следовательно, плохой ответ. То есть вместо "BusinessAppServices/OurService?wsdl " URL-адрес имел CR перед "/". "Монитор TCP/IP" был довольно удобен при устранении неполадок.
в моем случае я получил эту ошибку, потому что API, который я использовал, мог возвращать данные либо в формате XML, либо в формате JSON. Когда я тестировал его с помощью браузера, он по умолчанию использовал формат XML, но когда я вызвал тот же вызов из приложения Java, API вернул ответ в формате JSON, что, естественно, вызвало ошибку синтаксического анализа.
даже я столкнулся с аналогичной проблемой. Причиной был какой-то мусорный символ в начале файла.
Fix: просто откройте файл в текстовом редакторе (проверено на Sublime text) удалите любой отступ, если он есть в файле, и скопируйте все содержимое файла в новый файл и сохраните его. Вот так!. Когда я запустил новый файл, он работал без каких-либо ошибок синтаксического анализа.
Я взял код Dineshkumar и изменил, чтобы проверить мой XML-файл правильно: