配置 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 数据中存在“折点”项,逻辑示意图链接也会绘制为端点之间的直线。
警告:一些逻辑示意图布局算法会根据逻辑示意图中线段的实际方向执行 - 例如:“Geo – 部分重叠链接”、“相对主线”。如果要对逻辑示意图内容执行此类算法,需要选中“初始化链接折点”以获得理想的结果。
- 输入 XML 数据中的折点项包含大量折点时,如果希望 XML 构造器自动简化逻辑示意图链接形状,请选中简化线。然后,配置如何进行该简化:
- 指定可用于消除折点的最大允许偏移量。
- 从右侧的下拉列表中选择偏移单位。注:
- 仅当选中初始化链接折点时,简化线复选框才启用。
- 仅当选中简化线时,最大允许偏移量文本框及其右侧的偏移单位下拉列表才启用。
逻辑示意图线简化应用针对“简化线”地理处理工具(当其配置为处理点移除运算符时)实施的相同的道格拉斯-普克算法。此简化是在不破坏其基本形状的前提下,移除逻辑示意图链接上多余的折弯和小的凹进和凸出。它将保留描绘逻辑示意图线基本形状的关键点,并移除其他所有点。
注:XML 构建器通常不需要进行逻辑示意图线简化,因为您可以控制用于逻辑示意图生成/更新的输入 XML 数据中的折点项。
-
在逻辑示意图模板尚不存在用于管理输入 XML 数据中不同 SchematicFeatureClass 项的逻辑示意图要素类时,如果希望 XML 构建器自动创建此类逻辑示意图要素类,请在其他部分选中自动创建逻辑示意图要素类。
如果未选中此复选框(默认状态),则 XML 构建器在运行时不会新建任何逻辑示意图要素类。例如,如果在输入 XML 数据中存在值为 Stations 的 SchematicFeatureClass 项,并且逻辑示意图模板中不存在用于管理这些 SchematicFeatureClass 项的逻辑示意图要素类,则在所生成的逻辑示意图中将不包括这些 XML 项的任何逻辑示意图要素。
注:选中此复选框后,如果在输入 XML 数据中检测到由某个逻辑示意图要素类管理的任何 LinkFeature 或 NodeFeature 项对应的 PropertySetProperty 项,并且该逻辑示意图要素类尚不存在 PropertySet 属性,则 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 要素类项关联的所有项目分派到若干个 SchematicFeatureClassNameN_ForSchDiagTemp 逻辑示意图要素类中。例如,如果指定以下脚本:
Stations=StationsFeeder1 (Feeder="1") Stations=StationsFeeder2 (Feeder="2") Stations=StationsFeeder3 (Feeder="3")