XML 构建器使用任一物理文件或内存中的可使用外部组件自动构建的 XML 数据;在这两种情况下,输入 XML 数据都基于 XMLBuilderDiagram XML 模式定义文件。对于基于 XML 构建器的逻辑示意图模板,与该逻辑示意图模板相关联的逻辑示意图要素类的名称必须与为 <FeatureClassName> 项所指定的值相匹配,这些项与输入 XML 数据中的每个 NodeFeature 类型、LinkFeature 类型和 SubLinkFeature 类型相关。
XML 构建器生成过程
如果基于 XML 构建器生成逻辑示意图,则构建器会填充逻辑示意图要素类 - 也就是说,构建器会按照以下方式创建逻辑示意图中所需的逻辑示意图要素:
- 对于输入 XML 数据中的每个 NodeFeature、LinkFeature、NodeOnLinkFeature 和 SubLinkFeature 项目,构建器会验证逻辑示意图模板中是否存在其名称与为此要素类的 <FeatureClassName> 标签所指定的值相匹配的逻辑示意图要素类。
如果逻辑示意图模板具有这样的逻辑示意图要素类,则构建器会创建与内存中的 XML 项相关联的逻辑示意图要素、将所有输入 XML 标签中的值导入到所需的逻辑示意图属性中以及初始化拓扑和几何。
- 如果为相关的逻辑示意图模板指定了逻辑示意图规则,则会对在内存中构建的所有逻辑示意图要素执行这些规则。
- 如果存在为逻辑示意图模板配置的默认逻辑示意图布局算法,则会执行此算法,并且会相应地更新内存中的所有逻辑示意图要素的几何。
- 生成过程启动之后,内存中的所有逻辑示意图要素都将保存在逻辑示意图数据集的逻辑示意图要素类中。
- 创建的所有逻辑示意图要素都从逻辑示意图要素类中进行查询,并会显示逻辑示意图。
在逻辑示意图的生存时间内(也就是在从逻辑示意图数据集中将其删除之前),可随时将这些要素
- 重新打开
- 编辑、布局和保存
- 根据输入 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> 标签中的数据,情况一:在逻辑示意图要素类中已经存在字段名称与输入 XML 数据中的 <Key> 值相匹配的字段,并且相关的 <Value> 被存储在该字段中;或者情况二:<Value> 被存储在 <Key> 属性集的属性中(此属性是在处理过程中在 PROPERTYSET 字段中创建的)。