0

我正在尝试从 MS Project XML 文件中读取数据。我使用XML Schema Tool生成了一组基于Microsoft Project 2007 XML Schema的强类型类。

但是,我遇到了几个问题。从 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 Schema Utility 似乎没有正确生成类,或者 Microsoft Project 2007 XML Schema 不正确。

我的问题是,以前有人遇到过这种情况吗?解析 MS Project XML 是否有更好的替代方法(除了互操作)?

4

1 回答 1

0

可能的解决方案...

我试图反序列化的数据是从同一应用程序中的另一个组件序列化的。生成的 XML 没有为每个任务设置 <FixedCostAccrual> 元素。我将 XML 导入 MS Project 并将其导出为 XML。导出时,MS Project 将每个任务的 <FixedCostAccrual> 值设置为 0。但是,有效值在 1-3 范围内。

不确定为什么 MS Project 会将默认值设置为超出范围的值,但解决方案是修复生成输出 XML 的组件。

我仍然不确定为什么它会生成带有错误 xmlns 属性的 XML。

于 2010-02-12T03:03:03.447 回答