在WCF中发送XML数据的互操作方式?

时间:2010-08-17 17:58:59

标签: xml wcf parameters interop wsdl

我正在使用System.Xml.XmlElement作为在WCF中发送XML数据的参数。这通常是在WCF中发送XML数据的可互操作方式,因此,例如,如果我将从WCF客户端发送它,PHP或Java Web服务将理解它吗?我已经读过,我永远不应该在WCF中直接将XML作为字符串发送。

在WCF生成的WSDL中,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:任何可以完成互操作性的工作吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您不是将XML作为字符串发送。您正在发送XML。 XML作为字符串意味着编码(如&amp; lt; element /&amp; gt;)XML,其中XSD定义了string类型的单个元素。您应该始终尝试定义服务接受的XML,以便消息定义是服务描述的一部分。如果你接受任何XML,你可以使用xsd:any或编码的XML作为参数,但总是检查XML是否存在可能的影响,并限制进入消息的大小,以免你遭受DoS攻击。