我正在尝试使用 XSD 反序列化 XML 文档。我得到的错误是:
“XML 文档 (22, 8) 中存在错误。”
InnerException
是_
“输入字符串的格式不正确。”
现在,我的示例 XML 文档的第 22 行只有以下内容:
<PremiumPaymentDate>2012-08-08</PremiumPaymentDate>
据我所知,这没有什么问题。XSD 指定此行的方式类似:
<xs:element name="PremiumPaymentDate" type="xs:date" minOccurs="0"/>
它试图映射到的属性如下所示:
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
public System.DateTime PremiumPaymentDate {
get {
return this.premiumPaymentDateField;
}
set {
this.premiumPaymentDateField = value;
}
}
我已经尝试完全删除该字段,从 XSD 重新生成代码文件,更改 XSD,更改minOccurs
值,更改字段格式,完全删除字段数据,但没有任何效果。
我还想知道为什么在第 22 行之前一切都正常,因为它们比这个高出大约 17 个字段可以正常工作,其中一些是以完全相同的方式设置的日期。这个只是出于某种原因不想解析。
编辑:
这些日期有效。这些都高于文件中所讨论的日期。这是适用的 XSD:
<xs:element name="effectivedate" type="xs:date" minOccurs="1"/>
这是相同的示例 XML:
<effectivedate>2012-06-08</effectivedate>
以及它的代码属性:
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
public System.DateTime effectivedate {
get {
return this.effectivedateField;
}
set {
this.effectivedateField = value;
}
}
有任何想法吗?