![](/img/trans.png)
[英]XML deserialize iso 20022 pain.001.001.03 from xsd using c#
[英]c# Datetime deserialization problem in camt54 (iso 20022)
如果已經問過這個問題,我提前道歉,但我找不到任何可以幫助我理解如何解決問題的東西。
問題是,當嘗試反序列化特定銀行的 camt54 時,我的程序出錯了。 調查這個問題我意識到反序列化器無法轉換這個標簽:
<ToDtTm>2020-11-18T24:00:00+01:00</ToDtTm>
顯然我明白為什么。 C# 日期時間格式不包括 24:00:00 並且調試器返回錯誤:“字符串 '2020-11-18T24:00:00+01:00' 不是有效的 AllXsd 值”
但從我在 xml 中的理解來看,這是一個可接受的值。
不幸的是,這是發生在我身上的第一個案例。 我已經反序列化了很多 camt54,直到現在都沒有遇到任何問題。
如何告訴反序列化器正確讀取插入到 xml 中的值?
先感謝您。 馬泰奧。
使用以下:
class Program
{
static void Main(string[] args)
{
string xml = "<root><ToDtTm>2020-11-18T24:00:00+01:00</ToDtTm></root>";
StringReader sReader = new StringReader(xml);
XmlReader xReader = XmlReader.Create(sReader);
XmlSerializer serializer = new XmlSerializer(typeof(root));
root root = (root)serializer.Deserialize(xReader);
}
}
public class root
{
public DateTime _ToDtTm { get; set; }
public String ToDtTm {
get {
return _ToDtTm.ToString(@"yyyy-MM-dd\Thh:mm:sszzz");
}
set {
string date = value.Replace("T24", "T00");
_ToDtTm = DateTime.Parse(date); }
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.