Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

php

xml

cakephp

I'm outputting XML in CakePHP. But I'm getting this error when I put my XML into a validator:

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

I am using correct XML layout with <?php echo $this->Xml->header(); ?> at the top then <?php echo $content_for_layout; ?>

My results are:

<?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>

Is there anything wrong with this?

like image 472
Passionate Engineer Avatar asked Oct 29 '11 14:10

Passionate Engineer


3 Answers

marmalad and El Boletaire Underave are right that you can't start with a space, but that's not the full story. According to the XML spec, you can't have anything at all before the XML prolog.

Since you are using an XML declaration, you must start your file with

<?xml version="1.0" ...

In some cases, non-printing characters like the byte order mark (BOM) can cause trouble by taking up the first few bytes of a file.

For a problem more specific to CakePHP, check to see that you don't have stray blank lines/whitespace at the start or end of your files (i.e. after your ?> or before your <?php).

like image 167
Pops Avatar answered Sep 19 '22 23:09

Pops


As El Boletaire Underave said, check if the XML is generated without any blank space at the beggining. this help me with my xml.

like image 38
Martin Taleski Avatar answered Sep 19 '22 23:09

Martin Taleski


Check Your XML file, it might start with a blank space. If your XML file begins with blank spaces this type of Exception will be thrown.

like image 29
Durga Prasad Davili Avatar answered Sep 18 '22 23:09

Durga Prasad Davili