необходимо закодировать значения xml? - PullRequest
0 голосов
/ 22 мая 2011

У меня есть веб-сервис SOAP, написанный на Java, который общается через XML-utf-8.

Значения моих созданных атрибутов xml должны содержать html и / или обычный текст с дополнительными символами, поэтому рекомендуется ли / или необходимо для обеспечения безопасности кодировать мои значения xml до того, как я начну создавать свой xml?

что-то вроде этого для каждого значения в моих классах сущностей? или другое мнение?

String encodedString = URLEncoder.encode(s, "UTF-8");

и для клиента:

ByteArrayInputStream stream = new ByteArrayInputStream(
            response.getBytes("UTF-8"));
    SAXBuilder builder = new SAXBuilder();
    Document doc = builder.build(stream);

Ответы [ 2 ]

1 голос
/ 22 мая 2011

Если вы используете какой-либо пакет фреймворка веб-сервисов, именно этот пакет должен позаботиться обо всем этом, и у вас нет причин делать это. Кроме того, другой конец, скорее всего, , а не , приведет к обратному процессу, что приведет к путанице, если вы не контролируете оба конца.

0 голосов
/ 22 мая 2011

Значения моих созданных атрибутов xml должны содержать html и / или обычный текст с дополнительными символами, поэтому рекомендуется ли / или необходимо для обеспечения безопасности кодировать мои значения xml до того, как я начну создавать свой xml?

Это полностью зависит от того, что вы используете для создания XML:

  • Если вы создаете DOM и сериализуете его, вам не нужно заранее кодировать значения атрибутов.

  • Если вы используете платформу веб-служб или XStream или что-то подобное, тогда вам , вероятно, не нужно заранее кодировать значения атрибутов.

  • Если вы создаете XML путем объединения строк, вам НЕОБХОДИМО закодировать атрибуты.

«Хорошая практика» не входит в это. Если вам нужно сделать это, вы делаете это. В противном случае вы не должны этого делать.

Те же аргументы применяются, когда вы приходите для чтения / анализа XML на другом конце.


Суть в том, что нет общего ответа. Вы должны понимать конкретные требования используемой вами технологии промежуточного программного обеспечения. Javadocs и другая документация / руководства по API - первое место для поиска ответов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...