m-y*_*m-y 7 c# wsdl enumeration
我尝试在线查看,但是所有的WSDL示例似乎都没有真正解释我是否应该在WSDL或int中将事物标记为基类型字符串...
基本上,我正在尝试创建我的WSDL,以便我可以表示枚举.我有一个C#Enum已经考虑到了我想要匹配它...
public enum MyEnum {
    Item1 = 0,
    Item2 = 1,
    Item3 = 2,
    SpecialItem = 99
}
我不确定我的WSDL应该如何看待......我认为它是两个中的一个,但即便如此,我也不是100%肯定......
<wsdl:types>
    <xsd:schema targetNamespace="http://www.mysite.com/MyApp"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                >
        <xsd:simpleType name="MyEnum">
            <xsd:restriction base="xsd:int">
                <xsd:enumeration value="0" />
                <xsd:enumeration value="1" />
                <xsd:enumeration value="2" />
                <xsd:enumeration value="99" />
            </xsd:restriction>
        </xsd:simpleType>
    </xsd:schema>
</wsdl:types>
要么
<wsdl:types>
    <xsd:schema targetNamespace="http://www.mysite.com/MyApp"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                >
        <xsd:simpleType name="MyEnum">
            <xsd:restriction base="xsd:string">
                <xsd:enumeration value="Item1" />
                <xsd:enumeration value="Item2" />
                <xsd:enumeration value="Item3" />
                <xsd:enumeration value="SpecialItem" />
            </xsd:restriction>
        </xsd:simpleType>
    </xsd:schema>
</wsdl:types>
枚举最终看起来像他们的字符串表示.所以正确的wsdl会将枚举显示为:
<xs:simpleType name="MyEnum">
    <xs:restriction base="xsd:string">
      <xs:enumeration value="Item1" />
      <xs:enumeration value="Item2" />
      <xs:enumeration value="Item3" />
      <xs:enumeration value="SpecialItem" />
    </xs:restriction>
  </xs:simpleType>
以上将为您自动序列化/反序列化为MyEnum枚举类型.如果您将枚举显示为xsd:int,那么您将最终必须来回手动转换它们.
您可以在模式中引用枚举定义,如下所示:
<xsd:complexType name="Class1">
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="1" name="MyEnumProperty" type="MyEnum" />
    </xsd:sequence>
  </xsd:complexType>
| 归档时间: | 
 | 
| 查看次数: | 3892 次 | 
| 最近记录: |