How does the XML builder operate?
The XML builder works from any physical XML file or in-memory XML data that can be automatically built using an external component, the input XML data being based on the XMLBuilderDiagram XML Schema definition file in both cases. For a diagram template based on the XML builder, the names of the schematic feature classes associated with that diagram template must match the values specified for the <FeatureClassName> items related to each NodeFeature, LinkFeature, NodeOnLinkFeature, and SubLinkFeature type found in the input XML data.
The XML builder generation process
When generating a diagram based on the XML builder, the builder populates the schematic feature classes—that is, it creates the schematic features expected in the diagram as follows:
- For each NodeFeature, LinkFeature, NodeOnLinkFeature, and SubLinkFeature item found in the input XML data, it verifies that a schematic feature class whose name matches the value specified for its <FeatureClassName> tag exists for the diagram template.
If there is such a schematic feature class for the diagram template, it creates the schematic feature associated with the XML item in memory, imports the values from all input XML tags to the expected schematic attributes, and initializes the topology and geometry.
- If schematic rules are specified for the related diagram template, they are executed on all the schematic features built in memory.
- If there is a default schematic layout algorithm configured for the diagram template, the algorithm is executed and the geometry for all the in-memory schematic features is updated accordingly.
- All the schematic features in memory since the generation process started are saved in the schematic feature classes in the schematic dataset.
- All the created schematic features are queried from the schematic feature classes, and the diagram is displayed.
Then, at any time and for its lifetime—that is, until it is deleted from the schematic dataset—the diagram can be
- Reopened
- Edited, laid out, and saved
- Updated from an updated version of the input XML data so changes are reported on the diagram
Diagram templates based on the XML builder can also be used to generate mixed diagrams that contain schematic features coming from XML data and schematic features coming from custom queries that operate from any type of database. In this case, there are intermediate steps during the generation process:
- Schematic feature classes with custom queries configured to be launched during diagram building—that is, queries with the Query on Generate/Update evaluation mode—are processed just before executing the rules.
- Schematic feature classes with custom queries configured to be launched during diagram loading—that is, queries with the Query on Start Editing evaluation mode—are processed just after executing the rules.
- When configuring the XML builder properties, you can enable a specific running mode called Automatic schematic feature class creation. When this mode is enabled, the XML builder will be able to deal with any NodeFeature, LinkFeature, NodeOnLinkFeature, and SubLinkFeature item found in the input XML data even if, at the time of generation, there is no schematic feature class whose name matches the value specified for its related <FeatureClassName> item in the input XML data. When running in this mode, the builder automatically creates the missing schematic feature classes for the diagram template before populating them.
- You can also configure a correspondence between the names of the schematic feature classes associated with the diagram template and those found in the input XML data when they don't exactly match.
Corresponding XML tags/schematic feature class fields
The tables below show to which field of the schematic feature class each possible tag found in the input XML data is migrated during the process. Tags and field names in bold are mandatory information in the input XML data:
-
Information found for any type of XFeature
Corresponding XML tags/schematic feature class fields for any XFeature typeTag in the input XML data
Impacted field(s) in the schematic feature class
<ExternalUniqueID>
SCHEMATICTID
<DatasourceName>
DATASOURCEID
<UCID>
UCID
<UOID>
UOID
<USID>
USID
<RelatedContainerID>
RELATIONOBJECTID and RELATIONCLASSID
-
Specific information found for NodeFeature item
Corresponding XML tags/schematic feature class fields for NodeFeature typeTag in the input XML data
Impacted field(s) in the schematic feature class
<InitialX>
INITIALX
<InitialY>
INITIALY
-
Specific information found for LinkFeature item
Corresponding XML tags/schematic feature class fields for any LinkFeature typeTag in the input XML data
Impacted field(s) in the schematic feature class
<FromNode>
FROMTID
<ToNode>
TOTID
<Vertices>
SHAPE
-
Specific information found for NodeOnLinkFeature item
Corresponding XML tags/schematic feature class fields for NodeOnLinkFeature typeTag in the input XML data
Impacted field(s) in the schematic feature class
<InitialPosition>
INITIALPOSITION
<ReferenceLink>
REFERENCELINK
-
Specific information found for SubLinkFeature item
Corresponding XML tags/schematic feature class fields for any SubLinkFeature typeTag in the input XML data
Impacted field(s) in the schematic feature class
<FromNode>
FROMTID
<ToNode>
TOTID
<ReferenceLink>
REFERENCELINK
- Data in the <PropertySetProperty> tag
For data in the <PropertySetProperty> tag, either (1) a field whose name matched the <Key> value in the input XML data already exists in the schematic feature class and the related <Value> is stored in that field or (2) the <Value> is stored in a <Key> property set property created in the PROPERTYSET field during the process.