2015-01-20 42 views
1

我有一個xsd,我已經通過Visual Studio中的MSDataSetGenerator運行。在XSDxs:日期值和強類型數據集

我的日期列被定義爲XS:日期(如下所示):

<xs:element name="DateDeath" type="xs:date" minOccurs="1"/> 

我寫數據到我的強類型DataSet類的這樣的行:

myRow["DateDeath"] = "1933-01-01" 

當我打電話中WriteXML()對數據集生成XML文件,XML文件日期時間值:

<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

你能給出步驟來重現問題嗎?我只是試圖通過從頭創建我自己的強類型數據集來手動重現它,並且序列化/反序列化日期正常工作。 – dbc 2015-01-21 02:53:05

+0

你使用什麼.net對象?從頭開始創造什麼意思呢? – 2015-01-21 02:56:05

+0

在.Net 3.5/VS 2008中,我做了「Add」 - >「New Item」 - >「DataSet」,然後創建了一個名爲「People」的數據集,其中一列名爲DateTime的「DeathDate」列。在.xsd中,我看到下面一行:''。你使用什麼.Net對象? – dbc 2015-01-21 03:00:35

回答

0

最後,我結束了編寫代碼來控制最終的XML文檔值在我將它寫入磁盤之前就是我想要的。

相關問題