Sheet: 'ISM Extension Namespaces'
- Last UpdatedSep 20, 2024
- 2 minute read
Every definition in a Class Library, such as Attributes, Functional Classes, Enumerations, support a predefined set of intrinsic properties, such as Id, Name and Description. You may extend any of these definitions with arbitrary properties of our choice. To do so, you will first have to define an extension namespace and then associate your arbitrary properties with this namespace. This sheet defines extension namespaces.
|
Item |
Column Name |
Constraint |
Description |
|---|---|---|---|
|
1 |
Prefix |
Required |
A name of your choice to use as a prefix for arbitrary extension properties (see below) The value has to be a valid Xml no-colon name (NCName), which basically means: it cannot start with a digit; it should not contain spaces or colons. |
|
2 |
Uri |
Required |
A universal resource identifier, which is basically a string that you can trust to be universally unique. A common way to compose uris is to use a url, containing your companies domain name, such as: http://schemas.mydomain.com/classlibrary/extensions/{topic} where you replace {topic} with the purpose/target of the extension namespace |
|
3 |
Name |
A human friendly name of the namespace This is the name that will be displayed in AVEVA ISM when you work with extensions |
|
|
4 |
Description |
A description of the purpose of the namespace |
|
|
5 |
Type |
|
Specifies the type of the namespace Generic: Extensions belonging to a namespace of this type will be exposed for generic viewing and editing in the AVEVA ISM user interface. This is the default type. Custom: Extensions belonging to a namespace of this type will not be exposed in the AVEVA ISM generic user interface. This type is mainly intended for future versions, when AVEVA ISM will support custom extensions to the user interface. |
You can add extension properties to any of the spread sheets described in this chapter, by adding columns headers according to the syntax:
-
{prefix}:[Node1/…/NodeN/]{propertyName}
Assume you have defined a namespace (with prefix mapping) for mapping attribute names to nomenclatures used by different software systems or industry standards. Then you would typically extend the sheet Sheet: 'ISM Attributes' with column headers like:
-
mapping:CFIHOS/name
-
mapping:Maximo/name
-
mapping:ISO15926/name
Rules and impact of extensions are dictated by the intention of the target extension namespace. In most cases this comes down to how the extensions are being adopted by the consuming software. To be on the safe side, you should assume that extension node and property names are case sensitive.
If a definition (for example, a Functional Class) is extended by another definition, any extensions defined on the ancestor will by default be derived by the descendants. By suffixing an extension property name by exclamation mark (for example, mapping:ISO15926/name!), you qualify the property to not be derivable, and it will not be derived by descendant definitions.