XML のカスタム フィールドのデータ
Microsoft Office Project 2007 の XML データ交換スキーマ (mspdi_pj12.xsd) では、XML でのいくつかのユーザー設定フィールド情報の表現方法が変更されています。 この記事では、Office Project 2007 でのユーザー設定フィールド定義とユーザー設定フィールド値が XML 形式でどのように表現されるかを説明します。
ユーザー設定フィールド データ
Project では、ユーザー設定フィールドに関する情報を次の 2 種類のいずれかで保存します。
ユーザー設定フィールド定義 ユーザー設定フィールド定義は、ローカルユーザー設定フィールドまたはエンタープライズ ユーザー設定フィールドを定義するために必要なデータで構成されます。 Project for the webローカル ユーザー設定フィールドは、エンタープライズ ユーザー設定フィールドとして表示されます。 このようなデータには、ユーザー設定フィールド名、ユーザー設定フィールド ID、ユーザー設定フィールドの種類などの情報があります。
ユーザー設定フィールド定義を保存するために使用される XML 要素は、Project XML データ交換スキーマの「ExtendedAttributes 要素の XML スキーマ」セクションで定義されます。
ユーザー設定フィールドの値 ユーザー設定フィールドの値は、ユーザー設定フィールドの特定の値を定義し、それをプロジェクト、タスク、リソース、または割り当てに関連付けるために必要なデータです。 たとえば、特定のタスクの Health エンタープライズ ユーザー設定フィールドを Late の値に設定できます。
この記事は次のセクションで構成されます。
XML でのユーザー設定フィールド定義
XML でのユーザー設定フィールド値
XML でのユーザー設定フィールド定義
Project 2007 は、拡張属性コレクション内のすべてのエンタープライズおよびローカル ユーザー設定フィールド定義を表します。これは、XML 出力ファイルの ExtendedAttributes 要素に含まれています。 各ユーザー設定フィールド定義は、1 つの ExtendedAttribute 要素とその子によって表されます。
次の例は、2 つのユーザー設定フィールドを定義する拡張属性コレクションの 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 で表現するには、次の 3 つの要件を満たす必要があります。
ユーザー設定フィールド値を、Project エンティティ (プロジェクト、タスク、リソース、または割り当て) に関連付ける。
ユーザー設定フィールド値を、その所属先であるユーザー設定フィールド定義に関連付ける。
ユーザー設定フィールド値を指定する。
次のセクションでは、Project 2007 がユーザー設定フィールド値を XML で表現する方法について説明します。
エンタープライズ ユーザー設定フィールド値
ローカル ユーザー設定フィールド値
エンタープライズ ユーザー設定フィールド値
Project 2007 では、構成できるエンタープライズ ユーザー設定フィールドの数に制限はありません。 この拡張によって、Project 2007 がエンタープライズ ユーザー設定フィールド値を XML で格納する方法が変更されています。
次の例は、 Health エンタープライズ ユーザー設定フィールドが参照テーブル値 On Schedule に設定されているタスクに関連する XML 出力を示します。
<Task>
...
<b408001>0000BB21-B2AE-410A-88B6-82C108903823</b408001>
...
</Task>
この XML は、ユーザー設定フィールド値を XML 形式で格納するための 3 つの要件を次のように満たしています。
ユーザー設定フィールド値が、値の設定先の XML 出力のサマリー タスク、タスク、リソース、または割り当てセクションに書き込まれている。 これにより、ユーザー設定フィールド値は、適切な Project エンティティ (この場合は特定のタスク) に関連付けられます。
ユーザー設定フィールド ID が使用され、ユーザー設定フィールド値がユーザー設定フィールド定義に関連付けられている。 ユーザー設定フィールド ID は、ユーザー設定フィールド定義の FieldID 要素に格納されています。 Health エンタープライズ ユーザー設定フィールドの場合、ユーザー設定フィールド ID は 188776449 です。
ユーザー設定フィールド値を格納する XML 要素の名前 (この場合は b408001 要素) が、ユーザー設定フィールド ID の 16 進数表現に対応しています。 Health エンタープライズ ユーザー設定フィールドの場合、16 進数値 0xb408001 と等しい 10 進数値は 188776449 です。
ユーザー設定フィールド値が、 b408001 要素内に格納されている。 Health エンタープライズ ユーザー設定フィールドは参照テーブルなので、 On Schedule のユーザー設定フィールド値はその参照テーブル値の GUID である 0000BB21-B2AE-410A-88B6-82C108903823 です。
表 1 に、各種エンタープライズ ユーザー設定フィールドのユーザー設定フィールド ID として有効な範囲を示します。
表 1. エンタープライズ ユーザー設定フィールド ID
エンタープライズ ユーザー設定フィールド値構成 |
ユーザー設定フィールド ID の範囲 (10 進) |
ユーザー設定フィールド ID の範囲 (16 進) |
---|---|---|
プロジェクト レベル |
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 へようこそ」を参照してください。
コア スキーマには、検索可能な文字列 "##" が付いた注釈が含まれています。このような注釈は、mspdi_pj12.xsd で定義されていないエンタープライズ ユーザー設定フィールド値要素が書き込まれている場所を示しています。
ローカル ユーザー設定フィールド値
Project 2007 では、ローカル ユーザー設定フィールド値を XML で表現する方法が 2 つあり、いずれかが使用されます。 割り当てローカル ユーザー設定フィールド値は、エンタープライズ ユーザー設定フィールド値で使用されるのと同じ形式で XML に書き込まれますが、プロジェクト、タスク、およびリソース ローカル ユーザー設定フィールド値は、Microsoft Office Project 2003 で使用されたのと同じ形式で XML に書き込まれます。
次のセクションでは、Project 2007 でローカル ユーザー設定フィールド値を XML 形式で表現する方法について詳しく説明します。
XML での割り当てローカル ユーザー設定フィールド値
XML でのプロジェクト、タスク、およびリソース ローカル ユーザー設定フィールド値
XML での割り当てローカル ユーザー設定フィールド値
Project 2007 では、割り当てローカル ユーザー設定フィールド値はエンタープライズ ユーザー設定フィールド値と同じ形式で書き込まれ、ユーザー設定フィールド値を XML 形式で格納する 3 つの要件を同じように満たします。
表 2 に、割り当てローカル ユーザー設定フィールドのユーザー設定フィールド ID として有効な範囲を示します。 mspdi_pj12.xsd コア スキーマには、割り当てローカル ユーザー設定フィールド値に使用できる 200 の XML 要素が定義されています。
表 2. 割り当てローカル ユーザー設定フィールド ID
ローカル ユーザー設定フィールド値構成 |
ユーザー設定フィールド ID の範囲 (10 進) |
ユーザー設定フィールド ID の範囲 (16 進) |
---|---|---|
割り当てレベル |
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 形式で格納するための 3 つの要件を次のように満たしています。
ユーザー設定フィールド値が、値の設定先の XML 出力のサマリー タスク、タスク、リソース、または割り当てセクションに書き込まれている。 これにより、ユーザー設定フィールド値は、適切な Project エンティティ (この場合は特定のタスク) に関連付けられます。
ユーザー設定フィールド ID が使用され、ユーザー設定フィールド値がユーザー設定フィールド定義に関連付けられている。 ユーザー設定フィールド ID は、ユーザー設定フィールド定義およびユーザー設定フィールド値の両方を XML で表現する FieldID 要素に格納されています。
ユーザー設定フィールド値が、 Value 要素内に格納されている。