如何使WCF生成的WSDL包含xsd:any元素?

时间:2015-11-16 23:26:18

标签: c# xml wcf wsdl

所以,我有以下数据合同:

[DataContract(Namespace = "http://abc/Services/Data")]
public abstract class AbcObject
{
    [DataMember]
    [XmlAnyElement]
    public XmlElement[] Any { get; set; }
}

我的期望是在生成的wsdl中看到以下相应的xs:complexType元素:

<xs:complexType name="AbcObject">
    <xs:sequence>
        <xsd:any minOccurs="0"/>
    </xs:sequence>
</xs:complexType>

然而,我实际看到的是:

<xs:complexType name="AbcObject">
    <xs:sequence>
        <xs:element name="Any" type="q1:ArrayOfXmlElement" nillable="true" minOccurs="0" xmlns:q1="http://schemas.datacontract.org/2004/07/System.Xml"/>
    </xs:sequence>
</xs:complexType>

所以,这不是我想要的,但我有点困惑如何为我生成xsd:any

有什么想法吗?

编辑1

根据jamiemeyer建议,我已将DFObject.Any属性更改为XmlAttribute[]类型。结果如下:

<xs:complexType name="DFObject">
    <xs:sequence>
        <xs:element name="Any" type="q1:ArrayOfArrayOfanyType" nillable="true" minOccurs="0" xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"/>
    </xs:sequence>
</xs:complexType>

虽然结果不同,但仍然不是xsd:any

0 个答案:

没有答案