Оказывается, нет ничего плохого в коде выше. Это работает, если мы изменим тип возвращаемых данных с булевского на любой другой. Кажется, логическое значение не поддерживается должным образом.
Также, как справедливо предположил Джим, CDATA не является импом. Работает с этим или без него.