我收到了一个 XSD 文件,我使用 XSD.exe 生成了代码,但它没有按我预期的方式运行。
<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 才能使其正常工作?