Dependencies System Info File

Purpose

Dependencies of various types can be provided via a system info file. This will allow the System Model to show mouse-over dependencies between components of a system model. Dependencies should only go between items of the same rank.

Dependencies are encoded in the System Info XML format using the data-type="Dependencies" (note the captial "D"). These files will usually be generated rather than hand-crafted. The syntax is provided here for tools developers and for those doing small, manual dependency models.

Syntax

<?xml version="1.0"?>
<info data-type="Dependencies" id-namespace="uri" …namespaces… >
<item ref="id">
<dep ref="id" type="type"/>
<dep ref="id" type="type"/>
</item>
</item>

Each item contains any number of dep elements. These indicate the system model item referenced in <item> is dependent on the system model item mentioned in <dep>.

  • type="type" : The type of dependendency between the two system model items. Defaults to bin. Standard values are:
    • bin — Static dependencies coming from binary linkage. Shown as a solid line on the system model.
    • api — Static dependencies like "bin" but can be explained by a controlled API. Shown as a dashed line on the system model.
    • ecom — ECOM plugin load (dynamic). Shown as a dotten line on the system model.
    • cs — Client Server dependency between client and server binaries
    • cr — Central Repository key usage
    • ps — Publish and Subscribe key usage
    • imp — implements an API
    • rlib — RLibrary usage: binary loads another binary using RLibrary interface

    Custom values are also legal.

On the system model, forward dependencies are show in black, and reverse dependencies in blue. The arrowhead always points to the item it's dependent on, ie the one in <dep>. Only api and ecom have special line types. All other dependencies show up as solid lines.


Dependency arrows, colours and line styles can all be set using CSS in the <deps> section of the Shapes XML File. The dependency type is used as the class on a path element. For example, to set the cr dependencies as alternating wide and narrow dashes use:

path.cr {
stroke-dasharray: 9, 3, 5, 3;
}