Я пытаюсь десериализовать XML-документ с помощью XSD. Ошибка, которую я получаю:
"Ошибка в XML-документе (22, 8)".
InnerException
это
"Входная строка имеет неверный формат."
Теперь в строке 22 моего образца XML-документа есть только это:
<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;
}
}
Есть идеи?
effectivedate
наEffectiveDate
? (то же самое в узле xml и определении XSD). - person Harry89pl   schedule 25.07.2012PremiumPaymentDate
нет пустых знаков, таких как
или просто пробел? Прежде чем пытаться разобрать это значение, используйте для него методTrim()
. - person Harry89pl   schedule 25.07.2012