2012-07-24 138 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在錯誤的地方。