Я некоторое время боролся с этим. У меня есть многоязычное веб-приложение, которое в какой-то момент выводит XML. Этот XML может содержать любой язык, поэтому мой подход к санации заключался в том, чтобы запретить вставку определенных символов, которые нарушают работу XML. Это и все, что я могу обернуть в CDATA, но у меня есть тонна контента в атрибутах. Я не хочу запрещать специальные символы, потому что полностью допустимые символы, такие как круглые скобки, точки, тире, галочки и апострофы, используются все время, и они работают.
Как лучше всего удалить все символы, которые нарушают XML-атрибут, но оставить языки нетронутыми?
ОБНОВЛЕНИЕ:
Я нашел: http://en.wikipedia.org/wiki/CDATA#CDATA-type_attribute_value, что указало мне, что я могу описать атрибут как раздел CDATA, используя ДТД; однако, похоже, это неправда.
]>
Любой валидатор будет жаловаться на то, что бык не является сущностью в атрибуте. Если вы удалите атрибут, он будет действительным. Также я слышал, что схемы - это то, что нужно, поэтому, если что-то вроде вышеприведенного возможно, но вместо этого используется схема XML, это было бы здорово.
Спасибо!