Совместимый способ отправки XML-данных в WCF? - PullRequest
0 голосов
/ 17 августа 2010

Я использую System.Xml.XmlElement в качестве параметра для отправки данных XML в WCF.Является ли это, как правило, совместимым способом отправки данных XML в WCF, так что, например, веб-служба PHP или Java поймет это, если я отправлю их с клиента WCF?Я читал, что никогда не должен отправлять XML напрямую как строку в WCF.

В WSDL, сгенерированном WCF, объект XmlElement сопоставляется с элементом xsd: any следующим образом:

<xsd:element name="SendXMLData">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" name="MyXMLParameter" nillable="true">
<xsd:complexType>
<xsd:sequence>
<xsd:any minOccurs="0" processContents="lax" /> 
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

Может ли xsd: any выполнять работу для взаимодействия?

Спасибо!

1 Ответ

0 голосов
/ 18 августа 2010

Вы не отправляете XML в виде строки. Вы отправляете XML. XML как строка означает закодированный (например, & lt; element / & gt;) XML, где ваш XSD определяет один элемент типа string. Вы всегда должны пытаться определить XML, который принят вашим сервисом, чтобы определение сообщения было частью описания сервиса. Если вы принимаете любой XML, вы можете использовать xsd: any или закодированный XML в качестве параметра, но всегда проверяйте входящий XML на наличие возможных атак и ограничивайте размер входящего сообщения, чтобы избежать DoS-атаки.

...