我已经从xsd生成了类,并希望序列化DateTime
。
我的班级看起来像
private System.DateTime timeGMT;
[System.Xml.Serialization.XmlElementAttribute(DataType="time")]
public System.DateTime TimeGMT {
get {
return this.timeGMT;
}
set {
this.timeGMT= value;
}
}
但是,当我分配任何DateTime
对象时,它将格式化为
<TimeGMT>12:00:00.0000000-04:00</TimeGMT>
但我希望它被序列化为
<TimeGMT>12:00:00</TimeGMT>
我看了一下这个问题:
Serializing DateTime to time without milliseconds and gmt
这与我的情况类似。 但我的问题是我还想验证生成的xml对xsd。所以我无法将返回类型转换为字符串。 (如果我使用String作为返回类型,那么在生成XML时会出现异常
time is an invalid value for XMLElementAttribute.DataType property.The property may be specified for only primitive types.
)
还有其他方法吗? 提前谢谢。
答案 0 :(得分:0)
您链接问题的解决方案就是您需要做的事情。您仍然可以针对XSD验证生成的XML,但XSD不应将此元素定义为XML datetime
类型(因为这是具有毫秒和时区的那个,您说您不需要)。相反,您必须定义与您想要的匹配的XSD类型。
答案 1 :(得分:0)
我没有更改XML模式,因为它被用作标准。我删除了
[System.Xml.Serialization.XmlElementAttribute(DataType="time")]
来自我的班级并使用
中建议的解决方案