2012-07-24 60 views
0

我已经提供了一个XSD文件,我已经使用XSD.exe生成了代码,但它没有以我期望的方式运行。XSD代码生成器空节点

<xsd:element name="Claims"> 
     <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element maxOccurs="unbounded" name="Claim" minOccurs="0"> 
      <xsd:complexType> 
       <xsd:sequence> 
       <xsd:element name="ClaimDate" type="xsd:dateTime" /> 
       <xsd:element name="ClaimDesc" type="xsd:string" /> 
       .... 
       </xsd:sequence> 
      </xsd:complexType> 
      </xsd:element> 
     </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 

人们期望的是,如果没有要求,那么空的节点通过发送,但是所生成的码出来作为

[System.Xml.Serialization.XmlArrayItemAttribute("Claim", IsNullable=false)] 
public QuoteRequestClaim[] Claims { 
    get { 
     return this.claimsField; 
    } 
    set { 
     this.claimsField = value; 
    } 
} 

意味着我无法通过传递这个空节点。这是XSD.exe中的一个怪癖吗?还是需要修改XSD以使其工作?

回答

1

我已经解决了这个问题。我已提供的XSD需要更改为

<xsd:sequence maxOccurs="unbounded" minOccurs="0"> 
     <xsd:element name="Claim"> 
     </xsd:element> 
</xsd:sequence> 

minOccurs和maxOccurs在错误的地方。