2017-05-04 23 views
6

我使用C#,.NET 4.5,控制台应用程序。 我在服务引用中添加了WSDL文件。里面WSDL是验证规则,如:如何使用XSD验证XML,当验证规则的一部分是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> 

有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> 

而且我喜欢自动生成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"); 
     } 
    } 
} 

我序列xRequest对象到XML,我想验证它。 如果验证规则的一部分位于WSDL中,如何使用XSD验证XML?

回答

2

它不像它应该是那么简单...看看这个article(步骤4,5和11),我认为它本质上是你想要做的(客户端),但它也显示了如何做验证服务器端。