共用方式為


XML 中的自訂欄位資料

Microsoft Office Project 2007 XML 資料交換架構 (mspdi_pj12.xsd) 變更某些自訂欄位資訊在 XML 中表示的方式。 本文說明 Office Project 2007 如何以 XML 格式表示自訂欄位定義和自訂域值。

自訂欄位資料

Project 會將自訂欄位的相關資訊儲存為兩種類型的其中一種:

  • 自訂欄位定義 自訂欄位定義包含定義本機或企業自訂欄位所需的資料。 Project 網頁版本機自訂欄位會顯示為企業自訂欄位。 此資料包含自訂功能變數名稱、自訂欄位識別碼和自訂欄位類型等資訊。

    用來儲存自訂欄位定義的 XML 元素定義于 Project XML 資料交換架構之 ExtendedAttributes 元素 區段的 XML 架構中。

  • 自訂域值 自訂域值是定義自訂欄位特定值,並將它與專案、工作、資源或工作分派產生關聯所需的資料。 例如,您可以將 Health Enterprise 自訂欄位設定為特定工作的 [延遲] 值。

本文包括下列內容:

  • 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 2007 如何在 XML 中代表自訂域值:

  • 企業自訂域值

  • 本機自訂域值

企業自訂域值

在 Project 2007 中,您可以設定不限數量的企業自訂欄位。 這項增強功能變更了 Project 2007 在 XML 中儲存企業自訂域值的方式。

下列範例顯示將 Health Enterprise 自訂欄位設定為查閱表格值 On Schedule 之工作的相關 XML 輸出。

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

此 XML 滿足在 XML 中儲存自訂域值的三項需求,如下所示:

  • 自訂域值會寫入設定值之 XML 輸出的摘要任務、任務、資源或工作分派區段。 這會將自訂域值與正確的 Project 實體產生關聯,在此案例中為特定工作。

  • 自訂欄位識別碼可用來將自訂域值連結至自訂欄位定義。 自訂欄位識別碼會儲存在自訂欄位定義的 FieldID 元素中。 針對 Health 企業自訂欄位,自訂欄位識別碼會188776449。

    儲存自訂域值的 XML 元素名稱,在此案例中為 b408001 元素,會對應至自訂欄位識別碼的十六進位標記法。 針對 Health 企業自訂欄位,十六進位值0xb408001等於二進位值188776449。

  • 自訂域值會儲存在 b408001 元素內。 因為 Health 企業自訂欄位是查閱表格,所以 On Schedule 的自訂域值是該查閱表格值 0000BB21-B2AE-410A-88B6-82C108903823 的 GUID。

表 1 顯示每種企業自訂欄位類型的自訂欄位識別碼的有效範圍。

表 1. 企業自訂欄位識別碼

企業自訂域值設定

小數點 (自訂欄位識別碼範圍)

自訂欄位識別碼範圍 (十六進位)

專案層級

190873600 – 190939135

b608000 – b617fff

工作層級

188776448 – 188841983

b408000 – b417fff

資源層級

205553664 – 205619199

c408000 – c417fff

指派層級

255885312 – 255950847

f408000 – f417fff

因為有 262,140 個可能的企業自訂欄位識別碼,所以自訂域值有 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 顯示指派本機自訂欄位的有效自訂欄位識別碼範圍。 mspdi_pj12.xsd 核心架構會定義指派本機自訂域值的 200 個可能 XML 元素。

表 2. 指派本機自訂欄位識別碼

本機自訂域值設定

小數點 (自訂欄位識別碼範圍)

自訂欄位識別碼範圍 (十六進位)

指派層級

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 實體產生關聯,在此案例中為特定工作。

  • 自訂欄位識別碼可用來將自訂域值連結至自訂欄位定義。 自訂欄位識別碼會儲存在 XML 的 FieldID 元素中,代表自訂欄位定義和自訂域值。

  • 自訂域值會儲存在 Value 元素內。

另請參閱

概念

Project XML 資料簡介

專案資料交換元素