Каков наилучший способ отправки данных XML в веб-службу, а не с использованием CDATA? - PullRequest
1 голос
/ 29 июня 2011

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

В моем случае мне нужно отправить строку, представляющую собой документ XML, где один из его элементов содержит фрагмент XML (который я буду использовать для создания файла).

Так, например, я отправляю:

<people>
  <person>
     <name>J Smith</name>
     <value><![CDATA[<content>rest of xml document here</content>]]></value>
  </person>
</people>

Я использовал .. для создания XML-файла.

Мне было интересно, есть ли лучший способ сделать это, чем использовать CDATA ?. Файлы CDATA очень малы (менее 20 КБ).

JD

Ответы [ 3 ]

2 голосов
/ 29 июня 2011

Нет необходимости использовать CDATA. Вы можете передать фрагмент XML напрямую как есть.

См., Например, http://msdn.microsoft.com/en-us/library/aa480498.aspx

UPDATE:

Стив указал, что у вас есть строковый параметр, а не параметр XmlElement. Я не уверен, что это все равно будет работать (хотя я чувствую, что могло бы:).

Другим вариантом, помимо CDATA и Base64, будет кодирование XML, например

var xml = new XmlDocument();
var node = xml.CreateElement("root");
node.InnerText = "<content>Anything</content>";

var xmlString = node.InnerXml; /// &lt;content&gt;Anything&lt;/content&gt;
2 голосов
/ 29 июня 2011

Я бы предложил Base64-кодирование фрагмента XML.

1 голос
/ 29 июня 2011

Как насчет стандартного HTTP POST с использованием Mutipart / Form-Data?Сделайте один параметр частью URL-адреса или строки запроса.

Это более «RESTful» способ выполнения действий.

Это просто стандартная загрузка файлов.

...