我有一个xsd,我已经在Visual Studio中运行了MSDataSetGenerator。
我在xsd中的日期列定义为xs:date(下面的示例):
<xs:element name="DateDeath" type="xs:date" minOccurs="1"/>
我将数据写入我的强类型数据集类的行中,如下所示:
myRow["DateDeath"] = "1933-01-01"
当我在数据集上调用WriteXml()来生成xml文件时,xml文件具有DateTime值:
<DateDeath>1933-01-01T00:00:00-05:00</DateDeath>
我遇到的问题是,当我加载创建的xml文件并尝试验证它时,我会收到错误,抱怨日期无效。如果我手动删除与时间相关的东西(T及其后的所有内容),错误就会消失。
如何获取强类型数据集来编写xml,以便可以针对xsd进行验证(即丢弃时间和时区信息)?
修改
我正在使用类似于以下的代码来测试我的xml对xsd:
XmlSchema xmlSchema = this.GetXmlSchema(xsdFile);
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(xmlSchema);
settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallback);
settings.ValidationType = ValidationType.Schema;
using (XmlReader reader = XmlReader.Create(xmlFile, settings))
{
while (reader.Read()) ;
}
答案 0 :(得分:0)
最后,在写入磁盘之前,我最终编写代码来操作最终的xml文档值。