我正在使用 XDocument 创建一个 XML 文件,如下所示:
var d = DateTime.Now;
var xDocument = new XDocument(new XElement("ThisIsADate", d));
但是,生成的 XML 使用 xs:datetime 格式(例如“2012-05-11T00:00:00”)表示日期 d。即,它包括时间信息。
但是,我的 XML 旨在匹配我的 XML 模式,它将元素定义为“xs:date”类型。因此,由于额外的时间信息,文件在针对模式进行验证时被拒绝。
我怎样才能解决这个问题?我知道我可以自己使用 ToString() 格式化日期,但这肯定不是“正确”的方法。不能指望我知道如何将日期格式化为有效的 XML 日期——这是框架中与 XML 相关的部分的工作。
编辑:请注意,我确实知道如何使用 ToString() 格式化日期,而且我也知道什么格式的字符串会给我正确的结果。这不是我要找的答案。我正在寻找一个函数/方法/类,它了解 xs:date (等)是什么,并且支持这些类型的编码。
需要明确的是,我不是要“完成它”,而是要“把它做好”。在我的书中,重新发明 XML 轮子并不是“做对了”。