当验证规则的一部分在WSDL中时,如何使用XSD验证XML

Ka *_*ius 6 .net c# xml xsd wsdl

我使用C#,.NET 4.5,控制台应用程序.我在服务引用中添加了WSDL文件.内部WSDL是验证规则,如:

<xs:complexType name="xRequest">
  <xs:sequence>
    <xs:element name="SenderDateTime" type="ip:grDateTime"/>
    <xs:element name="SenderId" type="ip:grIdentifier"/>
  </xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

还有XSD文件,验证规则的详细信息如下:

<xs:simpleType name="grDateTime">
    <xs:restriction base="xs:dateTime">
        <xs:pattern value="[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}[T][0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2}(\.[0-9]{1,6}){0,1}"/>
    </xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

我在Reference.cs中自动生成了WSDL的属性,如:

public partial class xRequest
{
    private string senderIdField;
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
    public string SenderId {
        get {
            return this.senderIdField;
        }
        set {
            this.senderIdField = value;
            this.RaisePropertyChanged("SenderId");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我将xRequest对象序列化为XML,我想验证它.当部分验证规则在WSDL中时,如何使用XSD验证XML?

Leo*_*cia 3

它并不像应有的那么简单...看看这篇文章(步骤 4、5 和 11),我认为这本质上是您想要做的(客户端),但它也展示了如何进行验证服务器端。