2010-02-11 70 views
0

我想從MS Project XML文件讀取數據。我使用XML Schema Tool來生成一組基於Microsoft Project 2007 XML Schema的強類型類。MS Project XML序列化

但是,我遇到了幾個問題。從MS Project導出的XML根節點上的xmlns屬性與XSD架構不匹配。

MS Project generates this XML: 
<Project xmlns="http://schemas.microsoft.com/project"> 

Should be: 
<Project xmlns="http://schemas.microsoft.com/project/2007"> 

如果我嘗試用不正確的xmlns反序列化它拋出一個異常:

<Project xmlns='http://schemas.microsoft.com/project'> was not expected. 

如果我解決的xmlns它拋出異常:

Instance validation error: '0' is not a valid value for ProjectTaskFixedCostAccrual. 

這樣看來,無論是XML架構實用程序沒有正確生成這些類,或者Microsoft Project 2007 XML架構不正確。

我的問題是,有沒有人遇到過這種情況?解析MS Project XML(除interop之外)有更好的選擇嗎?

回答

0

可能的解決方法......

我試圖反序列化數據從另一個組件在同一應用程序序列化。生成的XML沒有爲每個任務設置<FixedCostAccrual>元素。我將XML導入MS Project並將其導出爲XML。 MS Project爲導出時的每個任務設置<FixedCostAccrual>值爲0。但是,有效值在1-3範圍內。

不確定爲什麼MS Project會將默認值設置爲範圍之外的某個值,但解決方案是修復生成輸出XML的組件。

我仍然不確定它爲什麼會生成xmlns屬性錯誤的xmlns屬性。

+0

也許組件與以前版本的Project兼容?也許你已經有了新版本的模式,但是來自舊版本的數據? – 2010-02-12 03:29:38

+0

這兩個組件都設計用於MS Project 2007,但如果您將2007年的文檔導出爲XML,則根據2007 XSD xmlns屬性不正確。它可能會這樣做,因此可以在較舊的MS Project版本中使用相同的數據,但我必須查看是否有任何兼容性選項可以禁用。 – Kevin 2010-02-12 12:16:33