C# WSDL中xsd:decimal的限制

C# WSDL中xsd:decimal的限制,c#,wcf,web-services,soap,wsdl,C#,Wcf,Web Services,Soap,Wsdl,我们正在使用WCF创建一个SOAP Web服务,供SAP使用。 在SAP方面,他们要求我们在WSDL中的XSD类型声明中为十进制值指定限制。问题是WCF生成Web服务时没有限制,我不知道如何告诉WCF生成这些限制(使用属性或类似的东西)。 我们希望xsd类型如下所示: <xsd:simpleType name="LpgPorcType"> <xsd:restriction base="xsd:decimal">

我们正在使用WCF创建一个SOAP Web服务,供SAP使用。
在SAP方面,他们要求我们在WSDL中的XSD类型声明中为十进制值指定限制。问题是WCF生成Web服务时没有限制,我不知道如何告诉WCF生成这些限制(使用属性或类似的东西)。
我们希望xsd类型如下所示:

    <xsd:simpleType name="LpgPorcType">
        <xsd:restriction base="xsd:decimal">
                  <xsd:totalDigits value="5" />
                  <xsd:fractionDigits value="2" />
        </xsd:restriction>
    </xsd:simpleType>

相反,WSDL中的值直接映射到xsd:decimal
是否有任何方式向WCF表明我需要这些限制(无需手动编辑WSDL文件)?

谢谢

WCF不支持发出此类限制。您可以使用将其放入WSDL。

我不确定您是否可以让它生成您想要的WSDL,但您可以在对其进行反序列化之前/之后在代码中对其进行验证。尚未对其进行测试,但System.ComponentModel.DataAnnotations中的属性不会生成您要查找的WSDL吗?@Didaxis否,我也这么认为,但这些属性不会影响生成的WSDL,至少对于小数点是如此。@TimS。我可以验证这些值,没有问题。问题是,如果没有WSDL中明确设置的限制,SAP无法创建web服务客户机。也许您应该使用WSDL优先开发,例如。