Подтвердить что ты не робот

Согласование целевой команды обработки "[xX] [mM] [lL]" не допускается

Я выводил XML в CakePHP. Но я получаю эту ошибку, когда я помещаю свой XML в валидатор:

The processing instruction target matching "[xX][mM][lL]" is not allowed.

Я использую правильный формат XML с <?php echo $this->Xml->header(); ?> вверху, а затем <?php echo $content_for_layout; ?>

Мои результаты:

<?xml version="1.0" encoding="UTF-8" ?><response type='' outcome='true' message='Login successful!'>
    <user id='1234' total_number_of_completed_tasks='0' total_number_of_declined_tasks='0' total_number_of_passed_tasks='1' total_number_of_failed_tasks='1' reputation_points='99' deviant_points='0' />
        <tasks>
            <accepted>
                                <accepted_task id='4' type='Good' time_limit='500' details='Good accepted' />
                                <accepted_task id='5' type='OK' time_limit='660' details='Ok New task' />
                                <accepted_task id='9' type='Excellent' time_limit='2000' details='Great failed task' />
                                <accepted_task id='11' type='Your type' time_limit='222' details='Running and swimming all the way to Japan' />
                                <accepted_task id='7' type='Man' time_limit='744' details='My dirty task' />
                            </accepted>
            <pending>
                                <pending_task id='8' type='Women' time_limit='5151' details='Women new task' sender_id='11111' sent_date='2031-01-01 00:00:00' sender_name='Jae Choi' />
                            </pending>
            <completed>
                            </completed>
            <new>
                                <new_task id='5' type='OK' time_limit='660' details='Ok New task' />
                                <new_task id='8' type='Women' time_limit='5151' details='Women new task' />
                                <new_task id='4' type='Good' time_limit='500' details='Good accepted' />
                                <new_task id='10' type='Hello' time_limit='122' details='What is this?' />
                                <new_task id='3' type='Best' time_limit='880' details='Stop doing work!' />
                                <new_task id='11' type='Your type' time_limit='222' details='Running and swimming all the way to Japan' />
                                <new_task id='6' type='Great' time_limit='553' details='Great accepted task' />
                                <new_task id='7' type='Man' time_limit='744' details='My dirty task' />
                                <new_task id='9' type='Excellent' time_limit='2000' details='Great failed task' />
                            </new>
        </tasks>
</response>

С этим что-то не так?

4b9b3361

Ответ 1

marmalad и El Boletaire Underave правы, что вы не можете начать с места, но это не полная история. Согласно спецификация XML, вы не можете иметь ничего вообще перед прологом XML.

Поскольку вы используете объявление XML, вы должны запустить свой файл с помощью

<?xml version="1.0" ...

В некоторых случаях непечатные символы, такие как отметка порядка байтов (BOM), могут вызывать проблемы, беря первые несколько байтов файл.

Для более конкретной проблемы с CakePHP убедитесь, что у вас нет пустых строк/пробелов в начале или конце ваших файлов (т.е. после вашего ?> или до вашего <?php).

Ответ 2

Как El Boletaire Underave сказал, проверьте, генерируется ли XML без какого-либо пробела в начале. это поможет мне с моим xml.

Ответ 3

Проверьте свой XML файл, он может начинаться с пробела. Если ваш XML файл начинается с пробелов, этот тип Exception будет выгружен.

Ответ 4

перед тегом <?xml ?> у u не должно быть пробела. этот тег должен быть в первой строке. это сработало для меня