配置 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 数据中存在 Vertices 项)一同显示,请在“几何选项”部分选中初始化连接线折点。
如果未选中此复选框,即使输入 XML 数据中存在 Vertices 项,逻辑示意图连接线也会绘制为连接端点的直线。
-
在逻辑示意图模板尚不存在用于管理输入 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 的逻辑示意图要素类,则必须按如下方式指定“逻辑示意图要素类映射”部分:
如果输入 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")