我最近对我的xsd进行了排序,以允许xml数据在日期字段中包含空字符串。我用simpleType和union来允许这个:
<xsd:simpleType name="EmptyDate">
<xsd:union memberTypes="xsd:date emptystring" />
</xsd:simpleType>
<xsd:simpleType name="emptystring">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="" />
</xsd:restriction>
</xsd:simpleType>
然而,即使XML文件允许这样做,当我去反序列化时,它会出现一个错误,说&#34;字符串未被识别为有效的DateTime。目前,这就是我反序列化的方式:
xml_path = xml_dir + file_name;
XmlSerializer x = new XmlSerializer(typeof(Families));
Families fam;
using (XmlReader read = XmlReader.Create(xml_path))
{
fam = (Families)x.Deserialize(read);
}
当我调试代码时,它在反序列化的代码底部引发了一个错误。
有没有办法操纵c#代码,以便允许空日期通过
传递