Click or drag to resize

Aml.Engine.CAEX Namespace

The Aml.Engine.CAEX Namespace contains classes that support the generation, retrieval and analysis of AutomationML Documents according to the CAEX standard. The classes currently support the CAEX Versions - CAEX 2.15 and CAEX 3.0. Classes and methods are designed to create schema conform documents. The main class is the CAEXDocument. A CAEXDocument object represents the content of one AutomationML file. The class encapsulates the internal XML data management for the AutomationML-XML file. The XML objects (XObject) used are publicly available, but should only be directly edited in exceptional cases. The root of the CAEX data model is the CAEXFileType class. From this class the contents of the AutomationML document can be read and edited. CAEX-Schema conformance of the AutomationML model is only guaranteed if the class methods are used. Direct manipulations of XElements by an application are not monitored by the AMLEngine and could result in schema violations. The full CAEX datamodel is illustrated below.
Classes
 ClassDescription
Public classAttributeFamilyType This class is a wrapper for the CAEX element 'AttributeType' which defines base structures for attribute type definitions. The AttributeType allows the creation of AttributeType trees. AttributeTypes are organized in AttributeType libraries, which can be processed with the AttributeTypeLibType. This class supports direct enumeration of the AttributeType's children in the AttributeType tree.
Public classAttributeNameMappingType This class is a wrapper for the CAEX element 'AttributeNameMapping' which defines mappings between attributes of an AML object and any associated role class.
Public classAttributeSequence This class defines a sequence of CAEX 'Attribute' elements. A sequence of Attribute's can be associated with each class which implements the IObjectWithAttributes interface.
Public classAttributeType This Class is a wrapper for the CAEX element 'Attribute' which defines base structures for attribute definitions. Attributes can be associated to each object which implements the IObjectWithAttributes interface. An associated collection of Attributes is wrapped in an AttributeSequence.
Public classAttributeTypeLibType This Class is a wrapper for the CAEX element 'AttributeTypeLib' which is a container for a hierarchy of AttributeType elements. CAEX supports multiple AttributeType libraries associated to a CAEXFile (CAEXFileType).
Public classAttributeTypeType This Class is the generic base class for 'Attribute' and 'AttributeType' elements and defines base structures for Attribute- and AttributeType definitions.
Public classAttributeValueRequirementType This class is a wrapper for the CAEX-Element 'AttributeValueRequirement' which allows the specification of one value constraint for an attribute. There is a choice of different types defined for the type of the condition.
Public classBaseElementTypeTDataType This class is a generic base class for CAEX elements with simple values. This class is used by the CAEX adapter only.
Public classCAEX_CLASSModel_TagNames Class CAEX_CLASSModel_TagNames.
Public classCAEXBasicObject The class CAEXBasicObject comprises a basic set of attributes and header information which exist for all CAEX elements.
Public classCAEXDocument This class is a wrapper for the XDocument defining a CAEXDocument. Each CAEXDocument is associated to a specific CAEX-Schema. The Default Schema for newly created documents is always the most recently defined CAEX-Schema (currently Version 3.0). The Schema for existing documents loaded from files or other sources is set to the schema version defined in the document source. Transformations of CAEXDocuments from lower schema versions to higher schema versions is possible. Transformations from higher to lower schema versions can also be done but may result in documents containing not all the information. Schema transformations can be done with a registered schema transformation service which implements the ISchemaTransform interface. Creation of new documents with lower schema versions is possible, but in this case, the schema version has to be defined explicitly.
Public classCAEXDocumentCommanding The Commanding class, which provides events for changes of CAEX objects
Public classCAEXEnumerableT This class implements a specific enumeration type which wraps an XElement with a CAEXWrapper during enumeration. The enumerator for this class is CAEXSequenceEnumeratorT
Public classCAEXException The CAEX exception class.
Public classCAEXFileType This class is a wrapper for the CAEX element 'CAEXFile' which is the root-element of any CAEX document.
Public classCAEXLibraryTLibItem Generic base class for all library objects of CAEX, which are:
  1. InstanceHierarchyType,
  2. RoleClassLibType,
  3. SystemUnitClassLibType,
  4. InterfaceClassLibType,
  5. AttributeTypeLibType.
Public classCAEXObject The class CAEXObject is derived from CAEXBasicObject, augmented by the CAEX Attributes Name(required) and ID(optional).
Public classCaexObjectWithReferenceT Base class for all CAEX objects which may define a class to class relation referencing some base class.
Public classCAEXSequenceT This class implements methods to work with any sequence of CAEX elements. The class will wrap all elements of a filtered sequence of an owner element to the denoted wrapper type which is given as the type-argument.
Public classCAEXSequenceEnumeratorT This class implements the CAEX sequence enumerator which creates a CAEXWrapper for each enumerated XML-Element.
Public classCAEXSequenceOfCAEXObjectsT This class implements methods to work with a sequence of CAEX objects. The class will wrap all elements with the same CAEX element name of an owner element to the denoted wrapper type which is given as the type-argument.
Public classCAEXSequenceOfCAEXObjectsWithReferenceT This class implements methods to work with a sequence of CAEX objects. The class will wrap all elements with the same CAEX element name of an owner element to the denoted wrapper type which is given as the type-argument.
Public classCAEXTypeDictionary Class CAEXTypeDictionary is a Dictionary of all CAEX - WrapperClass Types, defined in Aml.Engine.CAEX. The TypeName is used as a key. This class is a singleton.
Public classCAEXWrapper This class is the base CAEXWrapper class, defined for all CAEX objects. The CAEXWrapper class supports notifications of changes.
Public classCAEXWrapperTDataType A CAEXWrapper for any Element, which is defined as a simple type. The DataType of the simple type is used as the generic type parameter.
Public classClassInstantiationException User defined exception that is thrown when an error occurs during instantiation of a class.
Public classCopyrightType This class is a wrapper for the CAEX element 'Copyright'.
Public classDescriptionType This class is a wrapper for the CAEX element 'Description'.
Public classExternalInterfaceSequence This class defines a sequence of CAEX 'ExternalInterface' elements. A sequence of ExternalInterfaces can be associated to each class, which implements the IObjectWithExternalInterface interface.
Public classExternalInterfaceType This Class is a wrapper for the CAEXElement 'ExternalInterface'
Public classExternalReferenceType This Class is a wrapper for the CAEXElement 'ExternalReference' which is a container element for the alias definition of external CAEX files.
Public classInstanceHierarchyType This Class is a wrapper for the CAEXElement 'InstanceHierarchy' which is a Container element for a hierarchy of InternalElements.
Public classInterfaceClassLibType This Class is a wrapper for the CAEXElement 'InterfaceClassLib'
Public classInterfaceClassType This Class is a wrapper for the CAEXElement 'InterfaceClass'
Public classInterfaceFamilyType This Class is a wrapper for the CAEXElement 'InterfaceFamilyType'
Public classInterfaceIDMappingType This class is a wrapper for the CAEXElement 'InterfaceIDMapping' which is used to map an Interface of a referenced role to an interface of a SystemUnitClass which contains the role reference. The ID of the interfaces is used for identification.
Public classInterfaceNameMappingType This class is a wrapper for the CAEXElement 'InterfaceNameMapping' which is used to map an Interface of a referenced role to an interface of a SystemUnitClass which contains the role reference. The Name of the interfaces is used for identification.
Public classInternalElementSequence This class defines a sequence of CAEX 'InternalElement' elements. A sequence of InternalElements can be associated with each class which implements the IInternalElementContainer interface.
Public classInternalElementType This Class is a wrapper for the CAEXElement 'InternalElement'.
Public classInternalLinkType This Class is a wrapper for the CAEXElement 'InternalLink' that defines instance to instance relations using ExternalInterfaces to relate InternalElement- and SystemUnitClass-Objects.
Public classInternalLinkTypeLinkedObjects This class allows accessing the related objects of an InternalLink without recalculation which improves the performance for consecutive access of the related objects.
Public classMappingElementTypeT This class is the base class for Mapping element types which are InterfaceNameMappingType, InterfaceIDMappingType, and AttributeNameMappingType.
Public classMappingType This Class is a wrapper for the CAEXElement 'MappingObject'
Public classNamedElementSequenceT A Sequence of XML elements related to a specific element name. An XML element may contain different NamedElementSequences with different names.
Public classNominalScaledTypeType This class is a wrapper for the CAEXElement 'NominalScaledType" which defined a list of required values for an attribute constraint.
Public classOrdinalScaledTypeType This class is a wrapper for the CAEXElement 'OrdinalScaledType" which defined a value range for an attribute constraint.
Public classRefSemanticType This class is a CAEXWrapper for the CAEX element 'RefSemantic' used in an AttributeType.
Public classRevisionType This Class is a wrapper for the CAEXElement 'Revision' which contains organizational information about the state of the revision of a CAEX object
Public classRoleClassLibType This Class is a wrapper for the CAEXElement 'RoleClassLib' which is a Container element for a hierarchy of Role class definitions wrapped into RoleFamilyType. CAEX supports multiple role class libraries.
Public classRoleClassType This Class is a wrapper for the CAEXElement 'RoleClass'
Public classRoleFamilyType This Class is a wrapper for the CAEXElement 'RoleFamilyType' which defines base structures for role class definitions. The RoleFamilyType Type allows the creation of role class trees
Public classRoleRequirementsType This class is a CAEXWrapper for the CAEX-Element 'RoleRequirements'.
Public classSchemaConformanceException Exception for violations of the CAEX Schema. An example for a violation is the insertion of more than one RoleRequirement object into an InternalElement.
Public classSourceDocumentInformationType This Class is a wrapper for the CAEXElement 'SourceDocumentInformation' which a structure to model information about the data source of the present CAEX document.
Public classSourceObjectInformationType This class is a wrapper for the CAEX element 'SourceObjectInformation'. This element can be assigned to a CAEXObject to store a mapping between the ID of a CAEXObject and the ID of the same object, as it is defined in the object source.
Public classSupportedRoleClassType This class is a wrapper for the CAEXElement 'SupportedRoleClass' assignable to a SystemUnitClass. Associated supported roles of a SystemUnitClass are used to specify some semantic meanings like features or functions for the associated object.
Public classSystemUnitClassLibType This Class is a wrapper for the CAEXElement 'SystemUnitClassLib'.
Public classSystemUnitClassType This Class is a wrapper for the CAEXElement 'SystemUnitClass' that allows definition of child SystemUnitClasses within the class hierarchy. The parent child relation between two SystemUnitClasses has no semantic.
Public classSystemUnitFamilyType This Class is a wrapper for the CAEXElement 'SystemUnitFamilyType' which defines base structures for a hierarchical SystemUnitClass tree. The hierarchical structure has organizational character only. The class supports direct enumeration of the Tree.
Public classUnknownTypeType This class is a CAEXWrapper for the 'UnknownType' Element which is a choice for an AttributeValueRequirementType
Public classValueSequenceTDataType This class implements methods to work with a sequence of CAEX elements and indexed access to their values.
Public classValueSequenceTDataTypeElementValue class defining an Xml-Element and its associated Value
Public classValueSequenceTDataTypeElementValueConverterT Value converter class, used to provide converters to build a ValueSequenceTDataType.
Public classVersionType This class is a wrapper for the CAEX element 'Version'.
Interfaces
 InterfaceDescription
Public interfaceIAttributeTypeContainer Elements containing AttributeClass elements
Public interfaceIAttributeValueType This Interface is implemented by CAEX elements which contain Value properties. With the specified properties and methods it is possible to convert attribute values according to an existing attribute data type into a type based object. The type conversion is supported by a new class CaexValue.
Public interfaceICAEXBasicObject Interface class implemented by CAEXBasicObject which comprises a basic set of attributes and header information which exist for all CAEX elements.
Public interfaceICAEXContainer This interface is defined for CAEXObjects, which may contain different types of CAEX objects like the SystemUnitClassType. The defined methods allow the selection of the associated container for a specific type and the insertion of a CAEX object to its associated container.
Public interfaceICAEXLibrary CAEX interface defined for libraries
Public interfaceICAEXObject This interface class is implemented by all CAEXObject classes and defines accessors for the attributes of a CAEX object.
Public interfaceICAEXSequence This interface defines a sequence of CAEX elements.
Public interfaceICAEXWrapper This interface class is implemented by all CAEX - object classes and defines accessors to the wrapped XML node.
Public interfaceIClassWithBaseClassReference Interface class that defines methods and properties that apply to all classes which can be part of a class to class relation. A class to class relation is also referred to as an inheritance relation.
Public interfaceIClassWithBaseClassReferenceT This interface class is derived from IClassWithBaseClassReference and defines a generic interface using a type parameter to specify the type of the class to class relation. A class to class relation is also referred to as an inheritance relation.
Public interfaceIClassWithExternalInterface Interface that defines methods and properties that apply to all classes that are able to contain ExternalInterface objects.
Public interfaceIDigitalSigned This interface is implemented by CAEX objects which can be digitaly signed
Public interfaceIInstance Interface implemented by AutomationML class-instances
Public interfaceIInstantiable Interface IInstantiable is implemented by all CAEX classes.
Public interfaceIInstantiableTINSTANCE Generic interface IInstantiable defining the instantiation method and the instance type.
Public interfaceIInterfaceClassContainer Elements containing InterfaceClass elements
Public interfaceIInterfaceMapping Since CAEX 3.0 a new definition has been added to model Interface mappings using the ID of the mapped ExternalInterface. This Interface has been designed, to support InterfaceMapping access to the CAEX documents, defined using prior schema versions.
Public interfaceIInternalElementContainer Interface to define elements which contain a collection of internal elements
Public interfaceIMapping This interface is implemented by the CAEX elements, which are possible children of the MappingType.
Public interfaceIMappingElementType Interface implemented by Mapping elements InterfaceNameMappingType, InterfaceIDMappingType, and AttributeNameMappingType.
Public interfaceIMirror Interface class, implemented by any CAEX object, which can be mirrored
Public interfaceIMirrorT Interface class, implemented by any CAEX object, which can be mirrored
Public interfaceIMultipleOccurrencesT This interface class is used to define generic methods for CAEX objects which can have multiple occurrences below its parent element. The methods defined in this interface class affect the relation to the sibling elements of a CAEX object with the same type.
Public interfaceIObjectWithAttributes Interface that defines methods and properties that apply to all objects that are able to contain attributes.
Public interfaceIObjectWithExternalInterface Interface that defines methods and properties that apply to all objects that are able to contain ExternalInterface objects.
Public interfaceIObjectWithExternalInterfaceAndInherited Interface that defines methods and properties that apply to all classes that are able to contain ExternalInterface objects.
Public interfaceIObjectWithInheritedAttributes Interface that defines methods and properties that apply to all classes that are able to contain attributes.
Public interfaceIObjectWithRoleReference This Interface is implemented by RoleRequirementsType and SupportedRoleClassType.
Public interfaceIRoleClassContainer Elements containing RoleClass elements
Public interfaceISystemUnitClassContainer Elements containing SystemUnitClass elements
Enumerations
 EnumerationDescription
Public enumerationCAEXDocumentCAEXSchema Enumeration type defining existing and supported CAEX Versions
Public enumerationChangeMode Enumeration defining possible ChangeMode values of the ChangeMode Attribute
Remarks
CAEX 3.0 Datamodel