XML ビルダの動作
XML ビルダは、物理 XML ファイルから動作するか、または外部コンポーネントを使用して自動的に構築できるメモリ内の XML データから動作します。いずれの場合も、入力 XML データは XMLBuilderDiagram XML スキーマ定義ファイルに基づいています。XML ビルダに基づくダイアグラム テンプレートの場合、そのダイアグラム テンプレートに関連付けられているスケマティック フィーチャクラスの名前は、入力 XML データに含まれる各 NodeFeature、LinkFeature、NodeOnLinkFeature、および SubLinkFeature タイプに関連する <FeatureClassName> アイテムに指定した値と一致している必要があります。
XML ビルダの生成プロセス
XML ビルダに基づくダイアグラムの生成時には、ビルダによってスケマティック フィーチャクラスが設定されます。この場合、ダイアグラムでの使用が想定されるスケマティック フィーチャが次のように作成されます。
- 入力 XML データに含まれる NodeFeature、LinkFeature、NodeOnLinkFeature、および SubLinkFeature アイテムごとに、ダイアグラム テンプレートに対して、<FeatureClassName> タグに指定した値を持つスケマティック フィーチャクラスが存在するかどうかが確認されます。
ダイアグラム テンプレートに対してそのようなスケマティック フィーチャクラスが存在する場合は、メモリ内の XML アイテムに関連付けられたスケマティック フィーチャが作成され、すべての入力 XML タグから想定されるスケマティック属性に値がインポートされ、トポロジとジオメトリが初期化されます。
- 関連するダイアグラム テンプレートでスケマティック ルールが指定されている場合は、メモリ内で構築されたすべてのスケマティック フィーチャに対してスケマティック ルールが実行されます。
- ダイアグラム テンプレートにデフォルトのスケマティック レイアウト アルゴリズムが構成されている場合は、アルゴリズムが実行され、その結果に基づいてメモリ内のすべてのスケマティック フィーチャのジオメトリが更新されます。
- 生成プロセスの開始後、メモリ内のスケマティック フィーチャはすべて、スケマティック データセット内のスケマティック フィーチャクラスに保存されます。
- 作成されたすべてのスケマティック フィーチャに対して、スケマティック フィーチャクラスからクエリが実行され、ダイアグラムが表示されます。
その後、ダイアグラムの存続中(つまり、スケマティック データセットから削除されるまで)はいつでも、ダイアグラムに対して以下の操作が可能です。
- 再び開く
- 編集、レイアウト、および保存
- 入力 XML データの更新バージョンからの更新による、ダイアグラム上への変更のレポート
また、XML ビルダに基づくダイアグラム テンプレートを使用して、XML データに基づくスケマティック フィーチャと、いずれかのデータベース タイプから動作するカスタム クエリに基づくスケマティック フィーチャを含む混合ダイアグラムを生成することもできます。この場合、生成プロセスには次の中間ステップが含まれます。
- カスタム クエリがダイアグラムの構築時に開始するよう構成されている、つまり評価モードが [生成/更新時のクエリ] になっているクエリが指定されているスケマティック フィーチャクラスは、ルール実行の直前に処理されます。
- カスタム クエリがダイアグラムの読み込み時に開始するよう構成されている、つまり評価モードが [編集開始時のクエリ] になっているクエリが指定されているスケマティック フィーチャクラスは、ルール実行の直後に処理されます。
- XML ビルダのプロパティの構成時には、[スケマティック フィーチャクラスの自動作成] という実行モードを有効に設定することができます。このモードが有効の場合、スケマティック フィーチャクラスの作成時に、入力 XML データ内の関連する <FeatureClassName> アイテムに指定されたクラス名を持つスケマティック フィーチャクラスが存在しなくても、入力 XML データに含まれるすべての NodeFeature、LinkFeature、NodeOnLinkFeature、および SubLinkFeature アイテムを処理できます。このモードで実行すると、ダイアグラム テンプレートの不足しているスケマティック フィーチャクラスが自動的に作成されて設定されます。
- また、ダイアグラム テンプレートに関連付けられたスケマティック フィーチャクラス名と、入力 XML データに含まれるスケマティック フィーチャクラス名が完全に一致しない場合、これらの名前の対応付けを構成することもできます。
XML タグとスケマティック フィーチャクラス フィールドの対応付け
以下の表は、生成プロセス中に、入力 XML データに含まれている可能性がある各タグがスケマティック フィーチャクラスのどのフィールドに移行されるかを示しています。太字で表記しているタグとフィールド名は、入力 XML データにおける必須情報です。
-
あらゆるタイプの XFeature に使用される情報
あらゆる XFeature タイプに使用される XML タグとスケマティック フィーチャクラス フィールドの対応付け入力 XML データ内のタグ
影響を受けるスケマティック フィーチャクラス フィールド
<ExternalUniqueID>
SCHEMATICTID
<DatasourceName>
DATASOURCEID
<UCID>
UCID
<UOID>
UOID
<USID>
USID
<RelatedContainerID>
RELATIONOBJECTID および RELATIONCLASSID
-
NodeFeature アイテムにのみ使用される情報
NodeFeature タイプに使用される XML タグとスケマティック フィーチャクラス フィールドの対応付け入力 XML データ内のタグ
影響を受けるスケマティック フィーチャクラス フィールド
<InitialX>
INITIALX
<InitialY>
INITIALY
-
LinkFeature アイテムにのみ使用される情報
あらゆる LinkFeature タイプに使用される XML タグとスケマティック フィーチャクラス フィールドの対応付け入力 XML データ内のタグ
影響を受けるスケマティック フィーチャクラス フィールド
<FromNode>
FROMTID
<ToNode>
TOTID
<Vertices>
SHAPE
-
NodeOnLinkFeature アイテムにのみ使用される情報
NodeOnLinkFeature タイプに使用される XML タグとスケマティック フィーチャクラス フィールドの対応付け入力 XML データ内のタグ
影響を受けるスケマティック フィーチャクラス フィールド
<InitialPosition>
INITIALPOSITION
<ReferenceLink>
REFERENCELINK
-
SubLinkFeature アイテムにのみ使用される情報
あらゆる SubLinkFeature タイプに使用される XML タグとスケマティック フィーチャクラス フィールドの対応付け入力 XML データ内のタグ
影響を受けるスケマティック フィーチャクラス フィールド
<FromNode>
FROMTID
<ToNode>
TOTID
<ReferenceLink>
REFERENCELINK
- <PropertySetProperty> タグ内のデータ
<PropertySetProperty> タグ内のデータについては、(1)入力 XML データ内の <Key> 値に一致する名前のフィールドがスケマティック フィーチャクラスにすでに存在し、関連する <Value> がそのフィールドに保存されるか、または(2)生成プロセスで [PROPERTYSET] フィールドに作成される <Key> プロパティ セット プロパティに <Value> が保存されます。