XML 中的自定义域数据

Microsoft Office Project 2007 XML 数据交换架构 (mspdi_pj12.xsd) 更改了某些自定义字段信息在 XML 中的表示方式。 本文介绍 Office Project 2007 如何以 XML 格式表示自定义字段定义和自定义字段值。

自定义字段数据

Project 将有关自定义字段的信息存储为以下两种类型之一:

  • 自定义字段定义 自定义字段定义包含定义本地或企业自定义字段所需的数据。 Project 网页版本地自定义字段显示为企业自定义字段。 此数据包括自定义字段名称、自定义字段 ID 和自定义字段类型等信息。

    用于存储自定义字段定义的 XML 元素在 Project XML 数据交换 架构的 ExtendedAttributes 元素的 XML 架构部分中定义。

  • 自定义字段值 自定义字段值是定义自定义域的特定值并将其与项目、任务、资源或工作分配相关联所需的数据。 例如,可以将“运行状况企业自定义”域配置为特定任务的“后期”值。

本文包括以下几节:

  • XML 中的自定义字段定义

  • XML 中的自定义字段值

XML 中的自定义字段定义

Project 2007 表示扩展属性集合中的所有企业和本地自定义字段定义,该集合包含在 XML 输出文件的 ExtendedAttributes 元素中。 每个自定义字段定义由单个 ExtendedAttribute 元素及其子元素表示。

以下示例演示定义两个自定义字段的扩展属性集合的 XML 表示形式。 Text1 是本地自定义字段,而 Health 是在 Project 2007 中预配置的企业自定义字段。

<ExtendedAttributes>
    <ExtendedAttribute>
        <FieldID>188743731</FieldID>
        <FieldName>Text1</FieldName>
        <Alias>MyLocalCustomField</Alias>
        <SecondaryPID>255869028</SecondaryPID>
    </ExtendedAttribute>
    <ExtendedAttribute>
        <FieldID>188776449</FieldID>
        <FieldName>Health</FieldName>
        <CFType>7</CFType>
        <Guid>0000E8D9-65F1-4769-9BD2-819D38036FCC</Guid>
        <ElemType>20</ElemType>
        <MaxMultiValues>1</MaxMultiValues>
        <UserDef>1</UserDef>
        <SecondaryPID>255885314</SecondaryPID>
        <DefaultGuid>000079D2-4A43-41FC-B264-98D23FADD84B</DefaultGuid>
    </ExtendedAttribute>
</ExtendedAttributes>

将项目另存为 XML 时,所有本地自定义字段定义都会写入扩展属性集合。 但是,可以选择在 XML 输出中仅包括当前加载的企业自定义字段。 选择仅保存当前加载的企业全局项可能会生成更小、更易于管理的 XML 文件。

有关将项目另存为 XML 的详细信息,请参阅 以 XML 格式保存和打开项目

XML 中的自定义字段值

在项目、任务、资源或工作分配级别为自定义域配置特定值时,Project 2007 将有关该值的信息分别写入 XML 输出的摘要任务、任务、资源或工作分配部分。

若要在 XML 中表示自定义字段值,必须满足以下三个要求:

  • 将自定义域值与为其配置 (的项目、任务、资源或工作分配) Project 实体相关联。

  • 将自定义字段值与其所属的自定义字段定义相关联。

  • 指定自定义字段值。

以下部分介绍了 Project 2007 如何在 XML 中表示自定义字段值:

  • 企业自定义字段值

  • 本地自定义字段值

企业自定义字段值

在 Project 2007 中,可以配置无限数量的企业自定义域。 此增强功能更改了 Project 2007 在 XML 中存储企业自定义字段值的方式。

以下示例显示了将 Health enterprise 自定义域配置为“按计划”查找表值的任务的相关 XML 输出。

    <Task>
        ...
        <b408001>0000BB21-B2AE-410A-88B6-82C108903823</b408001>
        ...
    </Task>

此 XML 满足在 XML 中存储自定义字段值的三个要求,如下所示:

  • 自定义字段值将写入为其配置值的 XML 输出的摘要任务、任务、资源或工作分配部分。 这会将自定义字段值与正确的 Project 实体(在本例中为特定任务)相关联。

  • 自定义字段 ID 用于将自定义字段值链接到自定义字段定义。 自定义字段 ID 存储在自定义字段定义的 FieldID 元素中。 对于 Health enterprise 自定义字段,自定义字段 ID 188776449。

    存储自定义字段值的 XML 元素的名称(在本例中为 b408001 元素)对应于自定义字段 ID 的十六进制表示形式。 对于 Health 企业自定义字段,十六进制值0xb408001等于二进制值188776449。

  • 自定义字段值存储在 b408001 元素中。 由于 Health 企业自定义字段是查阅表,因此“按计划”的自定义字段值是该查阅表值的 GUID,即 0000BB21-B2AE-410A-88B6-82C108903823。

表 1 显示了每种类型的企业自定义域的自定义字段 ID 的有效范围。

表 1. 企业自定义字段 ID

企业自定义字段值配置

自定义字段 ID 范围 (十进制)

自定义字段 ID 范围 (十六进制)

项目级别

190873600 – 190939135

b608000 – b617fff

任务级别

188776448 – 188841983

b408000 – b417fff

资源级别

205553664 – 205619199

c408000 – c417fff

工作分配级别

255885312 – 255950847

f408000 – f417fff

由于有 262,140 个可能的企业自定义字段 ID,因此自定义字段值有 262,140 个可能的 XML 元素名称。 出于性能目的,Project 2007 用于存储企业自定义字段值的 XML 元素未在核心 Project XML 数据交换架构 (mspdi_pj12.xsd) 中定义。 相反,这些元素在 Project 2007 SDK 下载中包含的补充架构文件中定义。 有关 Project 2007 SDK 下载的链接,请参阅 欢迎使用 Microsoft Office Project 2007 SDK

核心架构包括带有可搜索字符串“###”的注释,用于指示 Project 2007 将企业自定义字段值元素写入到mspdi_pj12.xsd 中未定义的位置。

本地自定义字段值

Project 2007 以两种方式之一表示 XML 中的本地自定义字段值。 工作分配本地自定义字段值以用于企业自定义域值的格式写入 XML,而项目、任务和资源本地自定义域值将采用 Microsoft Office Project 2003 使用的相同格式写入 XML。

以下部分包含有关 Project 2007 如何在 XML 中表示本地自定义字段值的更多详细信息:

  • XML 中的赋值本地自定义字段值

  • XML 中的项目、任务和资源本地自定义域值

XML 中的赋值本地自定义字段值

Project 2007 使用与企业自定义字段值相同的格式编写工作分配本地自定义字段值,并且以相同的方式满足在 XML 中存储自定义字段值的三个要求。

表 2 显示了工作分配本地自定义域的自定义域 ID 的有效范围。 mspdi_pj12.xsd 核心架构为分配本地自定义字段值定义了 200 个可能的 XML 元素。

表 2. 工作分配本地自定义域 ID

本地自定义字段值配置

自定义字段 ID 范围 (十进制)

自定义字段 ID 范围 (十六进制)

工作分配级别

255868928 – 255869128

f404000 – f4040c8

XML 中的项目、任务和资源本地自定义域值

Project 2007 以以下示例所示的格式写入项目、任务和资源本地自定义域值。 这是 Project 2003 对所有自定义字段值使用的相同格式。

    <Task>
        ...
        <ExtendedAttribute>
          <FieldID>188743731</FieldID>
          <Value>This is the value of Text1</Value>
        </ExtendedAttribute>
        ...
    </Task>

此 XML 满足在 XML 中存储自定义字段值的三个要求,如下所示:

  • 自定义字段值将写入为其配置值的 XML 输出的摘要任务、任务、资源或工作分配部分。 这会将自定义字段值与正确的 Project 实体(在本例中为特定任务)相关联。

  • 自定义字段 ID 用于将自定义字段值链接到自定义字段定义。 自定义字段 ID 存储在表示自定义字段定义和自定义字段值的 XML 中的 FieldID 元素中。

  • 自定义字段值存储在 Value 元素中。

另请参阅

概念

Project XML 数据简介

Project 数据交换元素