#xml #input #character-encoding
#xml #ввод #кодировка символов
Вопрос:
У меня есть веб-сервис, который предположительно принимает:
<tag1>amp;<datadatdata></tag1>
Может ли синтаксический анализатор XML пережить непредвиденное >
?
Я запрашиваю среду Java на стороне клиента, я не знаю, что работает на сервере…
Ответ №1:
В отличие от символа меньше, чем char, <
который должен быть экранирован как amp;<
, символ больше, чем char >
может быть использован сразу в элементе или значении атрибута и необязательно может быть экранирован как amp;>
.
Это объясняется здесь, в Liquid Technologies:
Данные элемента
Символ ‘<‘ должен быть экранирован внутри текстовых данных элемента, чтобы его не перепутали с открывающей фигурной скобкой следующего элемента.
Символ ‘amp;’ всегда должен быть экранирован.
Другие замены (даже закрывающая фигурная скобка ‘>’) необязательны, но рекомендуется всегда избегать их.
Комментарии:
1. хммм .. не понимаю .. сначала вы говорите «нет», затем желтый текст говорит, что > необязательно..
2. Я надеюсь, что я прояснил свой ответ.
>
может использоваться, экранирование asamp;>
необязательно.3. Я рад, что это решает вашу проблему. Причина этого может стать ясна, если вы попытаетесь написать анализатор XML.
4. Утверждение, что
>
«не должно быть экранировано как >», является ложным. При необходимости его можно экранировать какamp;>
.5. @MichaelKay: Спасибо. Я исправил неправильную формулировку. Я запутался в переводе.