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 を変更する必要がありますか?