The Descriptor concept supports URI-based references as the mechanism to link files and content together.
References can be used to link to content included in a Descriptor (internal references) or to reference resources outside the Descriptor (external references).
For example, a Descriptor created by a Controls Engineer containing configuration information for an AutomationComponent usually contains a reference to a Descriptor with the product information provided by the AutomationComponent vendor by either including the Descriptor with product information as an embedded Descriptor or by defining an external reference to it with a URI or URL. The example is shown in Figure 7.
With external references, it is possible to reduce the size of the Descriptor. On the other hand, in this case, the Descriptor is not self-contained and external references can be broken. Therefore, it is recommended to only use external references for well-defined and stable URIs.
Figure 7 – References in a Descriptor
There are three means to implement references in a Descriptor:
- Open Packaging Conventions define “Relationships” (Annex G.3). Relationships are encoded in special management files (with the file name extension “.rels”). Relationships can be used for internal or external file references and for identifying a file. As an example, the Descriptor manifest file or a Root AML File can be identified by specific relationships in the package relationship file of the Descriptor.
- AutomationML ExternalReferences are used for linking AutomationML content within and between Information Model files (see 7.5.2).
- AutomationML ExternalDataReference interfaces can be used for referencing attachments. The target of an AutomationML reference can be either a file or an object in an XML-based file (see 7.5.3).