For references between AutomationML Information Model files, the ExternalReference mechanism of AutomationML shall be used.

ExternalReference is defined in the CAEX specification (IEC 62424:2016, A.2.12, CAEX).

ExternalReferences are contained in the AutomationML file from where the reference starts.

The target of an ExternalReference is an AML object contained in an AML file. The target can be inside or outside of the Descriptor.

For defining the reference target, each ExternalReference shall provide a valid URI to the AML file and an alias, which shall be unique within the file where the reference starts. The URI can also be a Pack URI syntax for reference targets that are contained in Descriptors.

The alias may be used for referencing classes or instances. In this case, the reference tag shall begin with the alias name, followed by the alias separator “@”, followed by the path to the referenced class or the ID of the referenced InternalElement or ExternalInterface.

  • Example of an ExternalReference definition in an AutomationML file to an external AML library file:

<ExternalReference Path=“http://test.org/library.AML” Alias=“Library” />

The alias is used as an abbreviation when a reference is defined, as shown in the next example:

<InternalElement Name=“test” ID=“a1762231-6647-49a3-bbee-5a7df47d738a” RefBaseSystemUnitPath=“Library @[SUC_http://opcfoundation.org/UA/FX/AC]/[AutomationComponentType]”>

  • Example of an ExternalReference definition in an AutomationML file to an SUC in an OPC UA FX AML library file that is contained in a Descriptor that is stored externally:

<ExternalReference Path=“pack://http%3c, ,test.org,OpcUaFxAmlLibraries.amlx/MyOpcUaFxAmlLibrary.AML”Alias=“MyOpcUaFxAmlLibrary” />

The alias is used as an abbreviation when a reference is defined, as shown in the next example:

<InternalElement Name=“test” ID=“a1762231-6647-49a3-bbee-5a7df47d738a” RefBaseSystemUnitPath=“MyOpcUaFxAmlLibrary@[SUC_http://mynamespace.org/UA/FX/AC]/[MyAutomationComponentType] ”>…