Как очистить поле формы для XML-атрибута, который будет содержать допустимые символы UTF8?

Я некоторое время боролся с этим. У меня есть многоязычное веб-приложение, которое в какой-то момент выводит XML. Этот XML может содержать любой язык, поэтому мой подход к санации заключался в том, чтобы запретить вставку определенных символов, которые нарушают работу XML. Это и все, что я могу обернуть в CDATA, но у меня есть тонна контента в атрибутах. Я не хочу запрещать специальные символы, потому что полностью допустимые символы, такие как круглые скобки, точки, тире, галочки и апострофы, используются все время, и они работают.

Как лучше всего удалить все символы, которые нарушают XML-атрибут, но оставить языки нетронутыми?

ОБНОВЛЕНИЕ:
Я нашел: http://en.wikipedia.org/wiki/CDATA#CDATA-type_attribute_value, что указало мне, что я могу описать атрибут как раздел CDATA, используя ДТД; однако, похоже, это неправда.

 

  
]>
 

Любой валидатор будет жаловаться на то, что бык не является сущностью в атрибуте. Если вы удалите атрибут, он будет действительным. Также я слышал, что схемы - это то, что нужно, поэтому, если что-то вроде вышеприведенного возможно, но вместо этого используется схема XML, это было бы здорово.

Спасибо!

6
задан Parris 9 June 2012 в 17:45
поделиться