对于包含日期但可能为空的字段,我的XSD中包含此内容:
<xs:simpleType name="DateOrEmpty">
<xs:union>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base='xs:dateTime' />
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="NAME" type="xs:string" />
<xs:element name="BIRTHDAY" type="xs:dateTime" />
<xs:element name="ANNIVERSARY" type="DateOrEmpty" />
</xs:sequence>
</xs:complexType>
</xs:element>
我通过&#34; XSD.exe myFile.xsd / classes&#34;得到如下结果的类:
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.33440")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class person {
private string nAMEField;
private System.DateTime bIRTHDAYField;
private string aNNIVERSARYField; //huh?
那我的DateOrEmpty
类型发生了什么?它无处可见!