WCFとXMLの逆シリアル化について質問があります。
minoccurs='0'としていくつかの属性を指定するXSDがあるとします。
<xs:element name=TestData>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs=0 name="stoppageHours>
<xs:simpleType>
<xs:restriction base="xs:int">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs=0 name="stoppageDate>
<xs:simpleType>
<xs:restriction base="xs:dateTime">
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:sequence>
<xs:complexType>
</xs:element>
属性の値がない場合は、XMLの要素タグを省略できます。
<TestData>
<StoppageHours>26</StoppageHours>
...omitted stoppageDate...
</TestData>
しかし、XSDから.NET c#にクラスを生成したことを考えると、XMLをWebサービスに投稿すると、要素を予期していたため、逆シリアル化が失敗したと文句を言います。
デシリアリスト化プロセスに欠落しているXML要素を無視させ、問題のクラスメンバーをNULL値に設定するにはどうすればよいですか?クラスメンバーをシステムのnull許容型に設定しようとしましたが、これを機能させるには、XML要素をxsi:nillableとして渡す必要がありますか?私が本当にやりたいのは、XMLタグを省略することです。
ありがとう。