Я использую JAXB для генерации XML, который загружается в наш канал Google. При тестировании и сравнении вывода этого нового метода с выводом старого способа, которым мы это делали (с использованием JSP), я заметил, что символы одинарных кавычек обрабатываются неправильно.
Содержание поля:
& ' " > <
Старый правильный вывод:
<title> & ' " > < </title>
Новый неверный вывод:
<title> & ' " > < </title>
Я попытался заменить все одинарные кавычки в поле на
'
до того, как я произвожу маршал XML, но в итоге я заменяю амперсанд его символьным кодом, а также оставляю меня с бесполезной # 39, сидящей там после маршаллинга.
В какой момент я должен попытаться решить эту проблему? Могу ли я получить правильное поведение, изменив строку каким-либо образом, прежде чем передать ее в класс JAXB, или я должен что-то сделать, чтобы изменить способ, которым маршаллинг обрабатывает одинарные кавычки?
Спасибо за чтение!
EDIT:
Извините, что раньше я не был более ясен, документация Google требует, чтобы эти 5 символов были представлены их кодами сущностей или символов.
Из их документации:
Значения данных, отсутствующие в разделах CDATA, включая URL-адреса, должны использовать escape-коды для символов, перечисленных в
следующая таблица Вы можете использовать либо код объекта, либо код символа для представления этих специальных символов.
Ampersand & & &
Single Quote ' ' '
Double Quote " " "
Greater Than > > >
Less Than < < <
Я бы хотел избежать маршрута CDATA, если это возможно.