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 元素內。