Искаженный XML-ввод для веб-сервиса

#xml #input #character-encoding

#xml #ввод #кодировка символов

Вопрос:

У меня есть веб-сервис, который предположительно принимает:

 <tag1>amp;<datadatdata></tag1>
  

Может ли синтаксический анализатор XML пережить непредвиденное > ?

Я запрашиваю среду Java на стороне клиента, я не знаю, что работает на сервере…

Ответ №1:

В отличие от символа меньше, чем char, < который должен быть экранирован как amp;< , символ больше, чем char > может быть использован сразу в элементе или значении атрибута и необязательно может быть экранирован как amp;> .

Это объясняется здесь, в Liquid Technologies:

Данные элемента

Символ ‘<‘ должен быть экранирован внутри текстовых данных элемента, чтобы его не перепутали с открывающей фигурной скобкой следующего элемента.
Символ ‘amp;’ всегда должен быть экранирован.
Другие замены (даже закрывающая фигурная скобка ‘>’) необязательны, но рекомендуется всегда избегать их.

Комментарии:

1. хммм .. не понимаю .. сначала вы говорите «нет», затем желтый текст говорит, что > необязательно..

2. Я надеюсь, что я прояснил свой ответ. > может использоваться, экранирование as amp;> необязательно.

3. Я рад, что это решает вашу проблему. Причина этого может стать ясна, если вы попытаетесь написать анализатор XML.

4. Утверждение, что > «не должно быть экранировано как >», является ложным. При необходимости его можно экранировать как amp;> .

5. @MichaelKay: Спасибо. Я исправил неправильную формулировку. Я запутался в переводе.