Я пытался использовать XStreamMarshaller для генерации вывода XML в моем проекте Java Spring. XML, который я генерирую, имеет значения CDATA в тексте элемента. Я вручную создаю этот текст CDATA в объекте команды так:
f.setText("<![CDATA[cdata-text]]>");
XStreamMarshaller сгенерировал элемент (текстовые данные ниже - псевдоним):
<text-data><![CDATA[cdata-text]]></text-data>
Вышеуказанное отображение XML соответствует ожидаемому (игнорируйте обратную косую черту в названии элемента выше: форматирование форума ). Но когда я делаю Просмотр источника в сгенерированном XML-выводе, я вижу это для элемента: <text-data><![CDATA[cdata-text]]></text-data>
.
Выпуск:
Как вы можете видеть, символы меньше и больше были заменены на <
и >
в View Source. Мне нужно, чтобы мой клиент прочитал исходный код и идентифицировал раздел CDATA из вывода XML, чего не будет в приведенном выше сценарии.
Есть ли способ заставить XStreamMarshaller экранировать специальные символы в предоставленном мною тексте?
Я установил кодировку Marshaller на ISO-8859-1, но это тоже не работает. Если XStreamMarshaller не может выполнить вышеизложенное, можете ли вы предложить альтернативные маршаллеры / демаршаллеры, которые могут сделать это для меня?
// Отображение моего XML и View Source в соответствии с предложением Paŭlo Ebermann ниже:
Просмотр XML (как показано в IE):
An invalid character was found in text content. Error processing resource 'http://localhost:8080/file-service-framework/fil...
Los t
Источник:
<service id="file-text"><text-data><![CDATA[
Los túneles a través de las montañas hacen más fácil viajar por carretera.
]]></text-data></service>
Большое спасибо.