xs:日期值和强类型数据集

时间:2015-01-20 21:33:49

标签: c# xml xsd

我有一个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()) ;
}

1 个答案:

答案 0 :(得分:0)

最后,在写入磁盘之前,我最终编写代码来操作最终的xml文档值。