XML ビルダの構成
XML ビルダは、XMLBuilderDiagram XML スキーマ定義ファイルに基づいた XML データから処理を行います。この XML データは、ダイアグラムの生成または更新時に指定する入力ファイルから取得できますが、外部コンポーネントを使用してメモリ内に自動的に生成することもできます。同じ XML データから生成されたダイアグラムのコンテンツでも、XML プロパティ ページで構成したプロパティによっては異なるものになる場合があります。
以下の手順は、XML ビルダ プロパティ ページの構成に重点を置いています。
- スケマティック ビルダ プロパティ ページを表示する手順については、「スケマティック ビルダ プロパティの編集」をご参照ください。
- スケマティック ダイアグラム テンプレートを作成し、そのスケマティック ビルダを指定する手順については、「スケマティック ダイアグラム テンプレートの作成」をご参照ください。
初めて XML ビルダ プロパティ ページを表示したときは、[ビルダ プロパティ] ダイアログ ボックスが次のように表示されます。
- [外部コンポーネント] セクションには、XML データが外部コンポーネントによって構築される場合にのみ指定する必要があるパラメータがあります。
- [ジオメトリ オプション] セクションでは、作成されるスケマティック フィーチャ リンクに沿った頂点の管理に関する設定を行います。
- [その他] セクションでは、ダイアグラムの生成または更新プロセス中の新しいスケマティック フィーチャクラスの作成に関する設定を行います。
- [スケマティック フィーチャクラスのマッピング] セクションは、入力 XML データ内の FeatureClassName アイテムが、そのダイアグラム テンプレートに関連付けられたスケマティック フィーチャクラスの名前に一致しない場合に使用するマッピング ルールを定義するためにのみ使用します。
-
入力に含まれている、スケマティック ダイアグラム コンテンツを生成する元になる XML データが、外部コンポーネントによって自動的に構築される場合、[生成] ボックスにこの XML データを生成するために使用する COM クラスの ProgID を入力します。
ProgID はコクラスのプロジェクト名とクラス名から成る文字列です。
注意:指定したクラスは esriSchematicUI.olb コンポーネントの ISchematicXMLGenerate インタフェースを実装します。
注意:この [生成] パラメータを指定しない場合、ユーザがダイアグラムの生成を開始するときに目的の入力 XML ファイルを参照して選択する必要があります。
-
スケマティック ダイアグラム コンテンツの更新に使用される XML データ入力が、外部コンポーネントによって自動的に構築される場合、[更新] ボックスにこの XML データを更新するために使用する COM クラスの ProgID を入力します。
ProgID はコクラスのプロジェクト名とクラス名から成る文字列です。
注意:指定したクラスは esriSchematicUI.olb コンポーネントの ISchematicXMLUpdate インタフェースを実装します。
注意:この [更新] パラメータを指定しない場合、ユーザがダイアグラムの更新を開始するときに目的の入力 XML ファイルを参照して選択する必要があります。
-
[ジオメトリ オプション] セクションの [リンクの頂点を初期値にセット] は、XML ビルダでスケマティック ダイアログを構築する際、入力 XML データに頂点アイテムがあると、スケマティック リンクが頂点とともに表示されるようにする場合にオンにします。
このボックスがオフになっている場合(デフォルトの状態)、入力 XML データに頂点アイテムが存在していてもスケマティック リンクは端点を結ぶ直線として描画されます。
注意:地理模式図 - 部分重複リンク、相対主軸など一部のスケマティック レイアウト アルゴリズムは、ダイアグラム内の実際のセグメントの向きから実行されます。ダイアグラム コンテンツでそうしたアルゴリズムを実行する場合は、良好な結果を得るために [リンクの頂点を初期値にセット] をオンにする必要があります。
- 入力 XML データの頂点アイテムに極めて多くの頂点があるときに、XML ビルダが自動的にスケマティック リンクの形状を単純化するようにしたい場合は、[ラインの単純化] をオンにします。次に、この単純化の動作内容を設定します。
- 頂点を削除できる [最大許容オフセット] を指定します。
- 右側のドロップダウン リストから必要なオフセットの単位を選択します。注意:
- [ラインの単純化] チェックボックスを使用できるのは、[リンクの頂点を初期値にセット] がオンになっているときだけです。
- [最大許容オフセット] テキスト ボックスおよびその右側にあるオフセットの単位ドロップダウン リストを使用できるのは、[ラインの単純化] がオンになっているときだけです。
Schematics ラインの単純化は、[ラインの単純化(Simplify Line)] ジオプロセシング ツールがポイント削除オペレータと連動するように設定されているときに、このツールのために実装されている Douglas-Peucker アルゴリズムと同じアルゴリズムを適用します。この単純化では、基本的な形状を壊すことなくスケマティック リンク上の余分な屈曲や細かな凹凸を取り除きます。このオプションは、スケマティック ラインの基本的な形状を表す重要ポイントを保持し、他のすべてのポイントを削除します。
注意:Schematics ラインの単純化は一般に XML ビルダでは必要ありません。これは、ダイアグラムの生成と更新に使用する入力 XML データの頂点アイテムの制御をユーザが行うからです。
-
[その他] セクションの [スケマティック フィーチャクラスの自動作成] は、入力 XML データに含まれるさまざまな SchematicFeatureClass アイテムを管理するスケマティック フィーチャクラスが、そのスケマティック ダイアグラム テンプレートにまだ存在していない場合に、XML ビルダでこれを自動作成する場合にオンにします。
このチェックボックスをオフにすると(デフォルトの状態)、XML ビルダが実行されるときに、新しいスケマティック フィーチャクラスは作成されません。たとえば、入力 XML データに、Stations という値を持つ SchematicFeatureClass アイテムが含まれていて、そのスケマティック ダイアグラム テンプレートにそれらの SchematicFeatureClass アイテムを管理するスケマティック フィーチャクラスがない場合、生成されたダイアグラムにはそれらの XML アイテムのスケマティック フィーチャは含まれなくなります。
注意:このチェックボックスをオンにすると、スケマティック フィーチャクラスによって管理される LinkFeature または NodeFeature アイテムに対する入力 XML データ内に PropertySetProperty アイテムが検出され、それらの属性がそのスケマティック フィーチャクラスにまだ存在していない場合に、XML ビルダが PropertySet 属性を自動的に作成するようにすることもできます。このチェックボックスをオフにした場合、関連する PropertySet 属性がない PropertySetProperty アイテムが検出されても、この情報は無視されます。
-
入力 XML データ内の FeatureClassName アイテムがそのダイアグラム テンプレートに関連付けられたスケマティック フィーチャクラスの名前と一致しない場合、[スケマティック フィーチャクラスのマッピング] セクションに、対応ルールを指定する必要があります。
入力 XML ファイルに含まれる、FeatureClassNameN_InXMLFile という値を持つすべての FeatureClassName アイテムを、SchematicFeatureClassNameN_ForSchDiagTemp という名前のスケマティック ダイアグラム テンプレートと関連付けられたスケマティック フィーチャクラスと自動的に一致させる場合は、スケマティック フィーチャクラス マッピング セクションを次のように指定する必要があります。
FeatureClassNameN_InXMLFile=SchematicFeatureClassNameN_ForSchDiagTemp
FeatureClassName1_InXMLFile=SchematicFeatureClassName1_ForSchDiagTemp FeatureClassName2_InXMLFile=SchematicFeatureClassName2_ForSchDiagTemp FeatureClassNameN_InXMLFile=SchematicFeatureClassNameN_ForSchDiagTemp
このセクションには、入力 XML データ内の、特定の FeatureClassNameK_InXMLFile FeatureClass アイテムに関連付けられたアイテムすべてを、いくつかの SchematicFeatureClassNameN_ForSchDiagTemp スケマティック フィーチャクラスにディスパッチするスクリプトを設定することもできます。たとえば、次のようなスクリプトを指定できます。
Stations=StationsFeeder1 (Feeder="1") Stations=StationsFeeder2 (Feeder="2") Stations=StationsFeeder3 (Feeder="3")