Representationally consistent lines can be drawn between nodes that represent instances of definitions. A number of rules apply.
Implicit lines
•A line is an instance line if drawn from an instance.
•Instances can only connect to instances where the base type of the source node references the base type of the target node through the property supported by the line. The property must be visible in the instance definition.
•Non-instances can only connect to non-instances.
•Existing lines can be changed in accordance with these rules with the exception that the user is allowed to return a line endpoint to its original connecting node.
•Existing implicit line rules still apply:
•Lines cannot be drawn for oneof-type properties if the property already holds a reference to the chosen target.
•Deleting a line clears the reference to the connected node.
Explicit lines
•The instance definition must already exist. To create it, right-click on a definition in the Explorer pane and pick Create Instance, or right-click on an explicit line in the diagram and pick Create Instance Definition.
•A line is an instance line if drawn from an instance or if the name the user supplies for the line identifies a definition that is an instance.
•Instances can only be connected to instances.
•The properties involved must be visible in the instance definition.
•Non-instances can only connect to non-instances.
•Existing lines can be changed. Here, the ghostbuster icon appears if the base type of the source or target is not referenced by the base type of the relationship line. The user is allowed to return a line endpoint to its original connecting node.
Error messages which can be presented after naming the line
Relationships between instance and non-instance objects are not permitted.
- e.g. use of non-instance definition for line drawn between instances - e.g. use of instance definition for line drawn between non-instances
The base type as referenced by Instance Of does not reference the base type of the instance at the line's source through property '...'
The base type as referenced by Instance Of does not reference the base type of the instance at the line's destination through property '...'