数据集的Xml到Datetime字段为null

时间:2018-04-26 07:35:39

标签: c# xml

<?xml version="1.0" encoding="UTF-8"?>
<NewDataSet>
  <xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xs="http://www.w3.org/2001/XMLSchema" id="NewDataSet">
    <xs:element msdata:IsDataSet="true" msdata:UseCurrentLocale="true" name="NewDataSet">
      <xs:complexType>
        <xs:choice maxOccurs="unbounded" minOccurs="0">
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element minOccurs="0" name="CODE" type="xs:string"/>
                <xs:element minOccurs="0" msdata:DateTimeMode="Unspecified" name="MAXTIME" type="xs:dateTime"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <Table1>
    <CODE>A112</CODE>
    <MAXTIME/>
  </Table1>
  <Table1>
    <CODE>A113</CODE>
    <MAXTIME>2018-03-13T00:00:00</MAXTIME>
  </Table1>
</NewDataSet>

我想使用此架构将上面的xml字符串转换为Dataset,但是当我在下面使用该代码时:

DataSet dataSet = new DataSet();
dataSet.ReadXml(xmlPath, XmlReadMode.ReadSchema);

它会抛出异常,因为<MAXTIME>字段为空

  

字符串''不是有效的AllXsd值。

那么如何在不更改架构的情况下使用nullable Datetime字段转换它?

我无法更改输入xml文件,因为它是由我的客户提供的,所以我需要一个解决方案,除了向字段添加属性。

0 个答案:

没有答案