XML 构建器的操作对象是基于 XMLBuilderDiagram XML 模式定义文件对 XML 数据进行操作。此 XML 数据可以来自于生成/更新逻辑示意图过程中所指定的输入文件,也可以使用外部组件在内存中自动生成。由同一 XML 数据生成的逻辑示意图的内容可能有所不同,这取决于 XML 属性页上的配置属性。
以下步骤主要介绍 XML 构建器属性页的配置。
- 要了解如何显示“逻辑示意图构建器属性”页,请加载编辑逻辑示意图构建器属性
- 要了解如何创建逻辑示意图模板和指定逻辑示意图构建器,请加载创建逻辑示意图模板
首次显示 XML 构建器属性页时,打开的构建器属性 对话框如下所示:XML 构建器属性页 对话框分为四个部分:
- 外部组件部分可对只有在 XML 数据由外部组件构建时才需指定的参数进行重新分组。
- 几何选项部分着重于对即将创建的逻辑示意图要素链接上的折点进行管理。
- 其他部分用于在逻辑示意图生成/更新过程中创建新的逻辑示意图要素类。
- 逻辑示意图要素类映射部分专门用于在输入 XML 数据中的 FeatureClassName 项与逻辑示意图模板的关联逻辑示意图要素类的名称不匹配时定义映射规则。
- 如果用于生成逻辑示意图内容的 XML 数据输入是由外部组件自动构建的,请在生成框中输入可用于生成此 XML 数据的 COM 类的 ProgID。
ProgID 是由项目名称和组件类的类名称所组成的字符串。
- 如果用于更新逻辑示意图内容的 XML 数据输入是由外部组件自动构建的,请在更新框中输入将用于更新此 XML 数据的 COM 类的 ProgID。
ProgID 是由项目名称和组件类的类名称所组成的字符串。
- 如果希望逻辑示意图链接与折点(如果输入 XML 数据中存在“折点”项)在 XML 构建器所构建的逻辑示意图中一同显示,请在几何选项部分选中初始化链接折点。
如果未选中此复选框(默认状态),即使输入 XML 数据中存在“折点”项,逻辑示意图链接也会绘制为端点之间的直线。
- 输入 XML 数据中的折点项包含大量折点时,如果希望 XML 构造器自动简化逻辑示意图链接形状,请选中简化线。然后,配置如何进行该简化:
- 指定可用于消除折点的最大允许偏移量。
- 从右侧的下拉列表中选择偏移单位。
逻辑示意图线简化应用针对“简化线”地理处理工具(当其配置为处理点移除运算符时)实施的相同的道格拉斯-普克算法。此简化是在不破坏其基本形状的前提下,移除逻辑示意图链接上多余的折弯和小的凹进和凸出。它将保留描绘逻辑示意图线基本形状的关键点,并移除其他所有点。
- 在逻辑示意图模板尚不存在用于管理输入 XML 数据中不同 SchematicFeatureClass 项的逻辑示意图要素类时,如果希望 XML 构建器自动创建此类逻辑示意图要素类,请在其他部分选中自动创建逻辑示意图要素类。
如果未选中此复选框(默认状态),则 XML 构建器在运行时不会新建任何逻辑示意图要素类。例如,如果在输入 XML 数据中存在值为 Stations 的 SchematicFeatureClass 项,并且逻辑示意图模板中不存在用于管理这些 SchematicFeatureClass 项的逻辑示意图要素类,则在所生成的逻辑示意图中将不包括这些 XML 项的任何逻辑示意图要素。
- 如果输入 XML 数据中的 FeatureClassName 项与逻辑示意图模板的关联逻辑示意图要素类的名称不匹配,则必须在逻辑示意图要素类映射部分指定对应规则。
如果希望输入 XML 文件中值为 FeatureClassNameN_InXMLFile 的所有 FeatureClassName 项自动匹配与逻辑示意图模板相关联的名为 SchematicFeatureClassNameN_ForSchDiagTemp 的逻辑示意图要素类,则必须按如下方式指定“逻辑示意图要素类映射”部分:
如果输入 XML 文件中存在多个要指定关联逻辑示意图要素类名称的不同 FeatureClassName 项,则必须按下例所示每行指定一条映射规则:FeatureClassNameN_InXMLFile=SchematicFeatureClassNameN_ForSchDiagTemp
FeatureClassName1_InXMLFile=SchematicFeatureClassName1_ForSchDiagTemp FeatureClassName2_InXMLFile=SchematicFeatureClassName2_ForSchDiagTemp FeatureClassNameN_InXMLFile=SchematicFeatureClassNameN_ForSchDiagTemp
也可以在此部分设置脚本,以便将输入 XML 数据中与特定 FeatureClassNameK_InXMLFile 要素类项关联的所有项目分派到若干个 SchematicFeatureClassNameN_ForSchDiagTemp 逻辑示意图要素类中。例如,如果指定以下脚本:
逻辑示意图要素类 StationsFeeder1、StationsFeeder2 和 StationsFeeder3 将自动用于要素类 XML 项 Stations,其中 Feeder 的 PropertySetProperty 值分别为 1、2 或 3。Stations=StationsFeeder1 (Feeder="1") Stations=StationsFeeder2 (Feeder="2") Stations=StationsFeeder3 (Feeder="3")