AML.Engine.Services This service calculates statistics for a CAEX document. Registers a new instance of a CAEXFileStatisticService with the of the AMLEngine. The service instance Unregisters this service Counts all objects (sum of all others with specific counts) and returns the result. The CAEX file. Total number of all countable objects. Counts all Attribute objects and returns the result. The CAEX file. Total number of all attributes. Counts all Attribute type reference objects and returns the result. The CAEX file. Total number of all attribute type references. Counts all AttributeType objects and returns the result. The CAEX file. Total number of all AttributeTypes Counts all InterfaceClass objects and returns the result. The CAEX file. Total number of all InterfaceClasses Counts all ExternalInterface objects and returns the result. The CAEX file. Total number of all ExternalInterfaces Counts all InternalElement objects and returns the result. The CAEX file. Total number of all InternalElements Counts all InternalLink objects and returns the result. The CAEX file. Total number of all InternalLinks Counts all RoleClass objects and returns the result. The CAEX file. Total number of all RoleClasses Counts all RoleClass reference (RoleRequirements and SupportedRoleClass) objects and returns the result. The CAEX file. Total number of all RoleClasses references Counts all SystemUnitClass objects and returns the result. The CAEX file. Total number of all SystemUnitClasses Counts all SystemUnitClass reference objects and returns the result. The CAEX file. Total number of all SystemUnitClasses Clears the disposed documents from the dictionary. This class implements the service interface. With this service it is possible to access CAEX objects which are outsourced into external documents and referenced using alias names. Normally the service is located by other services like query services. They can call this service to resolve an external reference if an alias is part of a CAEX path in any query. Registers a service to resolve external references. The registered service. Unregister this service This method is used to load an outsourced CAEX document. The external representation for that document is defined in the provided ExternalReference object. The CAEXDocument is loaded as a new 'stand alone' document, which means that no libraries of the loaded document are merged to the original referencing document. The ExternalReference is not changed and all external references in the original document which use the alias name in a path- or id-reference will not change too. A merge of documents can only be requested by a service. the ExternalReference object If the ExternalReference doesn't have an alias, the document is not loaded. If a referenced document for the alias already exists, the existing document is returned. Determines, if the provided path contains an alias and gets the resolved document for that alias. The CAEX document, which provides the ExternalReference to resolve the 'Alias'. The CAEX path which contains an 'Alias'. The resolved document for the alias, extracted from the path. Gets all already resolved externals for the provided CAEXDocument containing ExternalReference objects The CAEX document, containing ExternalReference objects. An enumeration of all CAEX documents, which have been loaded from the ExternalReferences. Clears the disposed documents from the dictionary Adds the specified reference to the node collection assigned to the provided key. If no node collection exists, a new collection is added for the given key. Before the reference is added, it is checked, if referenced elements exist. If no element exists, the reference is not added. If elements exists, these elements are added too. The key. The attribute used to reference an element. The referenced Element if not null The node collection, if the reference was added; otherwise false. Updates all name references, which use the provided "oldName" to reference an element. The old name. The new name. The referenced element, which will change its name from oldName to newName. Gets all attributes from the reference collection, which define references to the provided element. The reference collection. The referenced element. All attributes from the reference collection, which define references to the provided element This class implements a merge service which is able to merge CAEX documents from different sources into one common document. The merge service adds the libraries from the external referenced file into the target document and updates all references, which use an alias and can be resolved after the merge. If a library, which is used in the external source, also exists in the target document, this library is replaced, if the library version in the external source is newer. If not the existing library is kept. If an InstanceHierarchy in the external source can be identified as an outsourced Master InternalElement, it is tried to add the Master InternalElement back to its original position. Registers a new instance of a MergeService with the of the AMLEngine. The service instance Unregisters this service Merges the defined ExternalReference into the provided CAEXDocument. The source is loaded from the provided external source stream. The document. The external reference. The external source stream. The merge protocol. if set to true the service performs a schema transformation if necessary. true, if merge was successful Merges the defined ExternalReference into the provided CAEXDocument. The document. The external reference. The merge protocol. if set to true the service performs a schema transformation if necessary. true, if merge was successful Gets the external libraries from the source which should be imported into the target. The target. The source. The protocol. Tries to load the external source which is defined in the external reference. The document. The external reference. The source. The merge protocol. if set to true [automatic transform]. true, if loaded; otherwise false. The Aml.Engine.Services namespace contains classes that define and implement specific Services that provide additional features for the processing of AMLDocuments. Registered services are located by the AMLEngine and can enhance API methods to provide faster queries or automated name assignment to added elements. This interface defines methods, each NodeDictionary should provide. Adds the specified element to the node collection identified with the provided key. If no node collection exists, a new collection is added for the given key. The key. The element. The node collection Adds the specified reference to the node collection assigned to the provided key. If no node collection exists, a new collection is added for the given key. The key. The attribute used to reference an element. The referenced element, if already known. The node collection Removes the element. If this is the last element in the collection, remaining references will be deleted and the key is deleted from the dictionary. The key. The node. if set to true reference attribute values will be set to null. Removes the reference from the collection. If this is the last item in the collection, the key is deleted from the dictionary. The key. The node. This class implements a dictionary which allows the association of multiple nodes to the same key. The source of the key is an attribute value of a CAEX object. The nodes are assembled into a . Generic class for all node dictionaries Gets and sets the with the specified key. If no entry exists, the value is null. The key. a node collection Adds the specified element to the node collection identified with the provided key. If no node collection exists, a new collection is added for the given key. The key. The element. The node collection Adds the specified reference to the node collection assigned to the provided key. If no node collection exists, a new collection is added for the given key. The key. The attribute used to reference an element. The referenced element, if already known. The node collection Removes the reference from the collection. If this is the last item in the collection, the key is deleted from the dictionary. The key. The node. Removes the element. If this is the last element in the collection, remaining references will be deleted and the key is deleted from the dictionary. If updating is enabled, the registered references will all get a value of null. The key. The node. if set to true [update references]. Removes the unused references in a collection. Unused references may exist, after an element is deleted. The collection. The element. Updates the references in a collection. Updates are applied, if the updating mode is on and a referenced element is removed or changed. The collection. The element. The value. if set to true the referenced element has been deleted. The actual registry key. This class is used to get key-based access to XML nodes of an CAEX document using an identifying string. Currently the CAEX ID and the CAEX Name of an XML node are valid keys. The class currently uses three different tables to store nodes. The IDTable is used to identify nodes with the CAEX ID. The PathTable is used to identify nodes with the CAEXPath and the Alias of an ExternalReference object is used to identify nodes which contain references to nodes which are not contained in the current document but stored in an externally referenced document. The Key used to identify elements which define a reference attribute but with an invalid value The Key used to identify elements which don't define an ID but should have one. The Key used to identify elements which don't define a reference attribute but should have one. Initializes a new instance of the class. The root. Gets the alias table. This Table contains the ExternalReference objects as well as the references using the alias of the ExternalReference. Gets the identifier table. This Table contains the Elements identifiable by an ID as well as the references to the element using the ID. Gets the name table. This Table contains the Elements which reference another element using the name of that element. Gets the path table. This Table contains the Elements identifiable by a CAEXPath as well as the references to the element using the Path. Gets the root which creates the dictionary. Adds the specified XML element and all its descendants to the table. An element is added if it is a CAEXClass , an element with an identifier , an element with an ID reference or an element with a Path reference . The service. The element. Adds the provided node if not already added using its CAEX ID as the key. If the ID is missing, the node is added with the "NOKEY" identifier. The node. Adds the provided node if not already added using its ID reference attribute as the key. The service. The node. Adds an lookup table entry with name reference. The service. The node. Adds the node using its path reference attribute as the key. The service. The node. Finds all the elements, which are identifiable by a CAEX path and are descendants of the specified CAEX object. Only elements are included, which can be referenced by their path from other CAEX objects. These includes also the elements, which represent an element on the path (like class libraries). The elements are put into a lookup table, using the path as a key. Elements, having the same CAEX path are grouped together.The Elements are represented as . The CAEX object. Elements, which are identifiable by a CAEX path. Finds all elements with IDs, which are descendants of the provided CAEX object. Elements, using the same ID are grouped together. The CAEX object. Elements with an ID Finds all the elements, which are have a reference to a class using a CAEX path. The elements are put into a dictionary, using the path as a key. The Elements are represented as . Finds all elements which have references to other elements using the ID of the referenced element Finds all elements with IDs. Finds all elements with a name reference, which are descendants of the provided CAEX objects. Elements using the same name in their reference are grouped together. A name reference uses the CAEX attribute Name of another CAEX object to reference that CAEX object. The CAEX object. Elements with name references. Finds the table value using the Alias as a key The alias. the identified table value Finds the table value using the ID as a key The ID. if set to true [is alias]. the identified table value Finds the table value using the path as a key The path. if set to true [is alias]. the identified table value Gets all ExternalInterface objects which are used in InternalLinks. A collection of all ExternalInterface objects, having an associated InternalLink. Called when [changed reference]. The service. The instance containing the event data. The change mode. Handles the event. The service. The instance containing the event data. The change mode. Updates the complete table for all descendants of the associated root node. The service. The element. if set to true [automatic update]. This method is used to handle a name change for any CAEX element, which is a CAEXClass. It will updated the elements registration and also - if the auto update is enabled - the updates for all references to this element and nested CAEXClass elements. The instance containing the change information. The change mode. if set to true [is automatic update enabled]. Determines whether the specified key is a special reference key used to identify invalid and missing references. The key. true if the specified key is a special reference key; otherwise, false. this methods applies the specified action on all IDReference attributes of the provided node. The node. The action. this methods applies the specified action on all Name Reference attributes of the provided node. The node. The action. this methods applies the specified action on all path reference attributes of the provided node. The node. The action. Get the key to identify items which use an alias in their reference. If the reference doesn't contain an alias, the result is null. The reference. The path parts array, which is created to identify an alias in the reference. If an alias is identified, this is the alias table. Builds an ID-Key from the provided reference. The reference. The attribute. Name of the attribute. The owner. The table which has to be used with the identified key. Get the key to identify items which use an ID in their reference. If the reference is not a valid GUID, the key is set to INVALIDREF. The key. Builds a Name-Key from the provided reference. The reference. The attribute. Name of the attribute. The owner. The path parts. The table, which has to be used with the identified key. Get a key to identify items, which don't define a reference but need to do so. The attribute. Name of the attribute. The owner. Builds a Path-Key from the provided reference. The reference. The attribute. Name of the attribute. The owner. if set to true [is alias]. The path parts. Removes the node, registered with its ID from the table. All references to the ID are moved to the 'invalid' entry. The node. if set to true [update references]. Removes the ID-references registered with this node from the table. The service. The node. Removes the Name-references registered with this node from the table. The service. The node. Removes the node, registered with its CAEXPath from the . The node. if set to true [update references]. Removes all path references which have been registered with this node. The service. The node. This class implements a list of s. The list may contain different types of objects, s and s. Gets all XAttributes from the Node list. Gets all XElements from the Node list. Gets a value indicating whether this instance contains a. An XAttribute represents a reference to another node. The reference element is the parent of the attribute. true if this instance has references; otherwise, false. Gets all XElements from the Node list which are references. These are all parent nodes of the attribute elements in the list. Adds the specified node to the list, if it is not already contained. The node. This class is a query service based on dictionaries. Initializes a new instance of the class. Occurs when any reference has been updated. Gets or sets a value indicating whether this instance will automatically update cross references between AutomationML objects. true if the automatic update is enabled; otherwise, false. Registers a new instance of a LookupService with the of the AMLEngine. The service instance Unregisters this service Adds the document to the query service. All tables for the document will be created. The document. doc Removes the document from the query service. All tables for the document will be unloaded. The document. doc Gets all classes which have references to the provided class path. Use this method to get all classes which have a class to class relation to the class, identified by the provided classPath. If the is set, only classes with the defined element name are considered. The CAEX document which is searched through. The class path. Name of the element. Valid values are 'RoleClass', 'SystemUnitClass', 'InterfaceClass' and 'AttributeType'. An enumeration of all classes which use the identified class as a base class. Gets all classes which have references to the provided CAEX object. Use this method to get all classes which have a class to class relation to the provided CAEX object. The CAEX object. An enumeration of all classes which use the provided CAEX object as a base class. Gets all classes which have references to the provided CAEX object and their referencing classes (recursive). This method extends the and gets not only the directly derived classes of a base class but also the derived classes of these classes and further on. The CAEX object. The derived classes tree for the specified base class. Gets all classes which have references to the provided CAEX object and their referencing classes (recursive). This method extends the and gets not only the directly derived classes of a base class but also the derived classes of these classes and further on. If the is set, only classes with the defined element name are considered. The CAEX document which is searched through. The class path. Name of the element. Valid values are 'RoleClass', 'SystemUnitClass', 'InterfaceClass' and 'AttributeType'. Gets all the elements which are descendants of the provided CAEX object and are identifiable by a CAEX path. Elements having the same path are grouped together. Use this method to validate the existence of ambiguous CAEXPaths. The CAEX object. Lookup table of elements which are identifiable by a CAEX path. caexObject Gets all the elements which are descendants of the provided CAEX object and use an alias reference. Elements referencing the same Alias are grouped together. Use this method to validate the existence of referenced externals. If the is set, only elements with the defined element name are considered. The CAEX object. If parameter is set, only elements with the given element Name are considered. Lookup table of elements with Alias references. The Alias part of the CAEXPath is used as a dictionary key. Gets all the elements which are descendants of the provided CAEX object and use a path reference. Elements referencing the same path are grouped together. Use this method to validate the existence of referenced classes. If the is set, only elements with the defined element name are considered. The CAEX object. If parameter is set, only elements with the given element Name are considered. Lookup table of elements with path references. The CAEXPath is used as a grouping key. caexObject Gets all the elements which are descendants of the provided CAEX object and which use identifier references. Elements referencing the same ID are grouped together. Use this method to validate the existence of referenced IDs. If the is set, only elements with the defined element name are considered. The CAEX object. If parameter is set, only elements with the given element Name are considered. Lookup table of elements with ID references. The ID is used as a dictionary key. caexObject Gets all the elements which are descendants of the provided CAEX object with IDs. Elements using the same ID are grouped together. Use this method to validate the uniqueness of IDs. The CAEX object. If an ID is specified, only elements with the defined ID are searched. Lookup table of elements with IDs. The ID is used as a dictionary key. caexObject Returns all Elements which are descendants of the provided CAEX object with InternalLinks. These elements are the owners of the InternalLink objects. The returned collection may contain InternalElements and SystemUnitClasses as well. The CAEX object A collection of all objects with associated InternalLinks. caexObject Note the difference to the method which doesn't return the owners of an InternalLink but the related elements. Gets all the elements which are descendants of the provided CAEX object and use a name reference. Elements referencing the same name are grouped together. Use this method to validate the existence of referenced elements. The CAEX object. Lookup table of elements with name references. The name is used as a grouping key. caexObject Returns all ExternalInterfaces in the provided document or optionally in the caexObject and descendants, which are instances of the standard Interface class . The document. Optional parameter, defining a possible start object for the query. A collection of all ExternalInterface which are instances of the standard Interface class . Returns all ExternalInterfaces in the provided document or optionally in the caexObject and descendants, which are instances of the Interface class defined by the provided . The document. The CAEX ClassPath of the InterfaceClassType Optional parameter, defining a possible start object for the query. A collection of all ExternalInterface which are instances of the Interface class defined by the provided . Returns all InternalElements which are descendants of the provided CAEX object with InternalLinks. These elements are the owners of the InternalLink objects. The CAEX object A collection of all objects with associated InternalLinks. caexObject Note the difference to the method which doesn't return the owners of an InternalLink but the related elements. Returns all Mirrors of the specified Attribute The master. An enumeration of mirror Attribute objects Gets alls the elements which are descendants of the provided CAEX object which use the provided Alias in a reference. The elements in the result collection are references, which define the CAEX object and the attribute, containing the reference . If the is set, only elements with the defined element name are considered. The CAEX object. The Alias. If parameter is set, only elements with the given element Name are considered. a collection of element references which use the provided Alias in a reference caexObject Gets alls the elements which are descendants of the provided CAEX object which have a reference to the provided CAEXPath. The elements in the result collection are references, which define the CAEX object and the attribute, containing the reference . If the is set, only elements with the defined element name are considered. The CAEX object. The path. If parameter is set, only elements with the given element Name are considered. a collection of element references which have a reference to the provided Path^. Gets alls the elements from the document which have a reference to the provided ID. The elements in the result collection are references, which define the CAEX object and the attribute, containing the reference . If the is set, only elements with the defined element name are considered. The CAEX object. The identifier. If parameter is set, only elements with the given element Name are considered. a collection of element references which have a reference to the provided ID caexObject Returns all InternalElements and SystemUnitClasses which are descendants of the provided CAEX object, which are related to others via InternalLinks. The CAEX object. A collection of related SystemUnitClass objects caexObject Note the difference to the method which doesn't return the related elements but the InternalLink owners. Returns all Mirrors of the specified ExternalInterface The master. An enumeration of mirror ExternalInterface objects Locates a CAEX object in the provided document using the specified ID - Attribute for identification. The document. The identifier. if set to true tries to resolve an alias reference with an ExternalReferenceResolver service. The located object with the specified ID or null. Locates a CAEX object in the provided document using the specified CAEX - Path for identification. If the path uses an alias reference and an can be located, it is tried to resolve the external reference and to get the object from the external source. The document. The path. if set to true tries to resolve an alias reference with an ExternalReferenceResolver service. The first object which is found (if the path is not a unique identifier, than more than this object may exist). doc Returns all ExternalInterface objects which are descendants of the provided CAEX object and are used in relations (InternalLinks). The CAEX object. A collection of related ExternalInterface objects caexObject Returns all Mirrors of the specified InternalElement The master. a collection of mirror InternalElements master Gets all InternalLinks that reference the specified InternalElement or SystemUnitClass. The InternalElement or SystemUnitClass. a collection of InternalLinks. systemUnitClass Gets all InternalLinks that reference the specified ExternalInterface. The ExternalInterface. a collection of InternalLinks. externalInterface Determines whether the specified InternalElement is referenced by other InternalElement objects called 'Mirrors'. The InternalElement object. true if the specified element is a 'Master'-InternalElement; otherwise, false. internalElement Determines whether the specified ExternalInterface is referenced by other ExternalInterface objects called 'Mirrors'. The ExternalInterface element. true if the specified element is a 'Master'-ExternalInterface; otherwise, false. externalInterface Determines whether the specified AttributeType is referenced by other AttributeType objects called 'Mirrors'. The element. true if the specified element is a 'Master'-Attribute; otherwise, false. Determines whether the specified CAEX object is referenced. The CAEX object. true if the specified CAEX object is referenced; otherwise, false. RemoveDeletedElement the element which is deleted. The element. The PathDictionary contains nodes which are identifiable with a CAEXPath or which have references using a CAEXPath. Gets and sets the PathReferenceCollection for the last table which can be located with the given path parts, where the last part defines the target table. The . The parts of a path. These parts are build from a CAEXPath. The index. the identified PathReferenceCollection Gets and sets the PathReferenceCollection for the last table which can be located with the given path parts, where the last part defines the target table. The parts of a path. These parts are build from a CAEXPath. The index. the identified PathReferenceCollection Removes the reference from the collection. If this is the last item in the collection, the key is deleted from the dictionary. The key. The node. TODO: There is a big confusion in this method because the parameter order is not same with the base newValue/oldValue Adds all nodes, which are identifiable with the given node and the path parts to the appropriate table. The name of each node should be equal to its path part. The provided node's path is identifiable with the full path (all path parts). The path parts. The node. Adds the reference. The path parts. The object. Gets all elements, which are identifiable with a CAEXPath for this table and all included sub tables. collection of elements from all tables Gets all elements, which are references for this table and all included sub tables. collection of attributes from all tables Gets the dictionary which contains the node entries, assigned to the specified path parts. The path parts. Removes the element from the path table. To remove the element, the elements dictionary is located using a deep scan along the hierarchy path. If the leave node is reached, which contains the element, the element is deleted and the ancestor levels are updated to (if any higher level becomes empty). The path parts. The element. if set to true [update references]. Removes the reference. To remove the reference, the reference dictionary is located using a deep scan along the hierarchy path. If the leave node is reached, which contains the reference, the reference is deleted and the ancestor levels are updated to (if any higher level becomes empty). The path parts. The Attribute defining the reference to an element. Updates the element. The path parts old. The path parts new. The element. This class defines the properties and methods of any value, stored in a . A TableValue allows the construction of a hierarchical table structure. This is used to support access to XML nodes using a . Gets a value indicating whether this instance has a table of subordinate elements true if this instance owns a table; otherwise, false. Gets the table of associated registered elements. This class is an implementation of a split service. This service is able to split one into multiple files using split points. Initializes a new instance of the class. Registers a new instance of a SplitService with the of the AMLEngine. The service instance Unregisters this service Removes the split point for the provided CAEX object. The CAEX object. Removes the document from the internal registry of the split service. All registered split points for this document will be removed. The document. Sets the split point for the provided CAEX object. If the actual list of split points for the same document already contains a split point which is a child of the provided CAEX object, this existing split point is removed from the list. The CAEX object. Splits the specified document on all currently defined split points. The created libraries are saved in an AutomationML document and an ExternalReference is created, using the specified alias. All remaining references to the external source are renamed using the provided alias. After splitting, the document doesn't contain any SplitPoints any more. The document. The alias. The file path. The Split document document or alias or filePath File path is equal to source document Splits the specified source document. The source document. The split point. The alias. The file path. sourceDocument or alias or filePath File path is equal to source document Gets a collection of all split points for the provided document. The document. all split points for this document. All alias references are checked and the necessary externals are copied from the source document. Adds the external reference for the provided alias to the source document if needed. The source document. The alias. The file path. this handler reacts on deleting elements and updates the split point list if needed The sender. The instance containing the event data. Splits the internal element. ID references which stay in the source document but point to the split document are changed to ALIAS references. The source document. The split document. The internal element. The alias. Splits the library. Path references and ID references which cross the library border are changed to alias references. The source document. The split document. The library. The alias. Checks the created external references in the source document, if they are still needed after every split point is processed. Additionally the outgoing references of the created split document are checked and the needed externals are created. The source document. The split document. The alias. This class creates a new document with CAEX version 2.15 by transforming a document with CAEX version 3.0 Executes the downgrade from Schema 3.0 to 2.15 New document with CAEX version 2.15 This class defines a service for a schema transformation. The service supports transformation of CAEX documents from CAEX Version 2.15 to version 3.0 and back. Backwards transformation can result in a loss of information. Prevents a default instance of the class from being created. Raised from the ShemaTransform service when a transformation has started. Raised from the ShemaTransform service when a transformation has ended. Registration of a new The registered CAEX Schema Transformer. Unregisters this service Method to do a schema transformation for the provided document to the defined schema. This method can be used for upward and downward transformations. the document to be transformed the target schema the transformed document This class creates a new document with CAEX version 3.0 by transforming a document with CAEX version 2.15 Executes the upgrade from Schema 2.15 to 3.0 New document with CAEX version 3.0 Converts the supported role type to role requirement type Parent internal element for supported roles The role requirement object. ReferenceElement is a Tuple of an XElement and the Name of an Attributes, which is used to reference another Element. The reference may be used as a key to find the referenced Element. Initializes a new instance of the class. The XML node. Name of the reference attribute. Gets the XML node. The element. Gets the name of the reference attribute of the The name of the reference attribute. gets the value of the Reference Attribute Gets the CAEX object which owns the reference. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. This class defines a command that contains a collection of commands. This collection is treated as a transaction. If a transaction is undone, all commands in the transaction will be undone too. This class implements an Undo and Redo service. When this service is registered, changes in an AutomationML document can be reversed. A sequence of actions can be grouped into transactions which than can be reversed within a single undo operation. The AMLEngine will locate a registered UndoRedoService and will notify the service of any changes, made to a document. The service manages individual stacks for each loaded CAEX document. Prevents a default instance of the class from being created. Occurs when a property value changes. Removes the XML document from the internal registry of the service. Undo- and Redo Stacks for this document will be deleted. The document. Request to not record changes of the specified document. The document. Request to resume recording changes of the specified document. The document. Registers a new instance of a UndoRedoService with the of the AMLEngine. The service instance Unregisters this service Begins a new transaction. All changes, made to a CAEXDocument inside a transaction are treated as a single operation. The CAEX document to which the transaction should be associated. A friendly name for this transaction. If the transaction started. Determines, if the service can redo a command The document. true if this instance can redo any undone command from the specified document; otherwise, false. Determines, if the service can undo a command. The document. true if this instance can undo any command from the specified document; otherwise, false. Clears the stacks, managed for the specified document. The document. Ends the current transaction from the specified document. The document. No matching Transaction Begin If the transaction ended A command is pushed on the undo stack of this service. the CAEX command. Executes the last undone operation from the specified document again. The document. Gets the date of the most recently executed command for the specified document. The document. if set to true the last undo operation is considered; otherwise the last redo operation. Gets the command names of all redo actions for the defined document. The document. List of command names Reverses the last action of the defined document. The document. Gets the command names of all undo actions of the defined document. The document. List of command names. This class defines methods for a unique name service. The names of CAEX-Objects in a Sequence of Elements should all be unique. If a unique name service is registered, the AMLEngine will automatically call this service for a unique name generation whenever a new element is added to a sequence which requires a unique name for its members. This services uses a generation pattern which consists of the specified default name followed by a generated ordinal number of the elements in a sequence. Registers a new instance of a UniqueNameService with the of the AMLEngine. The service instance Unregisters the current instance of the UniqueNameService with the of the AMLEngine. Determines whether the specified element has a unique CAEX name in the sequence of equal elements of its parent. The element. true if the elements name is unique, otherwise false. Registers the default name for all CAEX objects with the provided element name. Name of the element. The default name. Resumes activities of the unique name service. Suspends activities of the unique name service. Creates a unique CAEX Name for a child with the specified elementTagName in the specified sequence The sequence of elements. Name of the element tag. a unique name using the registered default extended with an added number, representing the maximal number elementTagName Creates a unique CAEX Name for a child with the specified elementTagName in the specified sequence using the specified defaultName The sequence. Name of the element tag. The default name. a unique name using the registered default extended with an added number, representing the maximal number elementTagName elementTagName Enumeration RepairTypeEnum The options which are related to ID validation issues The options which are related to Name validation issues The options which are related to ID reference validation issues The options which are related to Path reference validation issues This Flag cause the generation of a unique ID for all Empty IDs This Flag cause the generation of a unique ID for all Double IDs This Flag cause the renaming of all empty Names with an automatic name generation algorithm. To apply this method, a has to be registered, This Flag cause the removal of all references where the Reference Value is empty This Flag cause the removal of all ID References where the ID Value has not been resolved This Flag cause the removal of all Path References where the Path reference Value has not been resolved This Flag cause the generation of a new name for an element, when it's CAEX-Path is double so that the Path is unique. To apply this method, a has to be registered. This Flag cause the generation of a writer header This Flag cause the generation of an AutomationML Version header This Flag cause the correction of the Schema Version This Flag cause the generation of a new GUID for existing GUID's with invalid formats This Flag cause the generation of a new reference without the alias This Flag cause the generation of source document information This Flag cause the deletion of an element This Flag cause the deletion of an element which reference an element out of the allowed scope. This Flag cause the generation of a valid file URL in an ExternalDataConnector to a localized file. This Flag cause the removal of all Name References where the Name reference Value has not been resolved The Option None indicates, that nothing should be done Extensions for Converts the specified repair option to a readable string Option for repairing an element. a readable string describing the repair option Class ValidationElement is a Tuple of an XElement and associated detailed Information about any inconsistencies, assigned with that Element. Checks the validation of the element Initializes a new instance of the class. The element. The validation key. constant string, defining validation elements which are yet not repaired. Gets the available repair options. Gets the CAEX element wrapper for the XElement. Gets the element which has been validated. Gets information about the result of a repair operation for one element. Gets or sets the validated attribute. Gets a short information about the validation of one element. Gets a longer description containing more detailed information about a validation issue. To get this information, the informative mode shall be enabled when the validation is performed. Gets the type of the validation. Determines whether the specified object is identical to the current object. The object to be compared with the current object. ,if the specified object and the current object are the same, otherwise . Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Repairs a missing or invalid SchemaVersion. Repairs a missing or invalid AutomationML version. Repairs the writer header. Class ValidationKey. Initializes a new instance of the class. The key. Type of the validation. Gets the key. The key. Gets the type of the validation. The type of the validation. This class defines methods to assist the interpretation of validation results. Gets the Alias reference validation results from the validation result list. The validation result. All validation results, which are related to CAEX objects which use an Alias to reference CAEX objects in external sources. Gets the File reference validation results from the validation result list. The validation result. All validation results, which are related to External References with a not Locatable external reference Gets the CAEXPath validation results for CAEX classes from the validation result list. The validation result. All validation results, which are related to the CAEXPath of a CAEX class. Gets the ID reference validation results from the validation result list. The validation result. All validation results, which are related to CAEX objects which use IDs to reference other CAEX objects. Gets the Path reference validation results from the validation result list. The validation result. All validation results, which are related to CAEX objects which use CAEX path to reference other CAEX objects. Gets the Name reference validation results from the validation result list. The validation result. Currently only name references from mapping objects are validated All validation results, which are related to CAEX objects which use a Name to reference other CAEX objects. Gets the ID validation results from the validation result list. The validation result. All validation results, which are related to the CAEX object ID attribute. Gets the MetaData validation results from the validation result list. The validation result. All validation results, which are related to MetaData assigned to a CAEXFile. Gets the validation results for all MetaData which are related to the AutomationML Version The validation result. Use the as a parameter for this method. All validation results, which are related to MetaData which are related to the AutomationML Version. Gets the validation results for all MetaData which are related to the CAEX Schema Version The validation result. Use the as a parameter for this method. All validation results, which are related to MetaData which are related to the CAEX Schema Version. Gets the validation results for all MetaData which are related to missing source information in an AML file. The validation result. Use the as a parameter for this method. All validation results, which are related to missing source information in an AML file. Gets the validation results for all elements with wrong formatted IDs. The validation result. Use the as a parameter for this method. All validation results, which are related to wrong formatted CAEX object IDs. Gets the validation results for all elements which are not uniquely identifiable with a CAEX path The validation result. Use the as a parameter for this method. All validation results, which are related to wrong named CAEX objects which are referable. Gets the validation results for all elements which are repairable The validation result. All validation results, which are repairable. Gets the validation results for all elements which are not repairable The validation result. All validation results, which are not repairable. Gets the validation results for all elements with ID references which are not resolvable. The validation result. Use the as a parameter for this method. All validation results, which are related to ID references which are not resolvable. Gets the validation results for all elements with CAEX path references which are not resolvable. The validation result. Use the as a parameter for this method. All validation results, which are related to path references which are not resolvable. Gets the validation results for all elements with CAEX path references which are not resolvable. The validation result. Use the as a parameter for this method. All validation results, which are related to path references which are not resolvable. Gets the validation results for all elements with ID references which are empty. The validation result. Use the as a parameter for this method. All validation results, which are related to ID references which are empty. Gets the validation results for all elements with missing IDs. The validation result. Use the as a parameter for this method. All validation results, which are related to missing CAEX object IDs. Gets the validation results for all elements with IDs which are not unique in the document. The validation result. Use the as a parameter for this method. All validation results, which are related to CAEX object IDs which are not unique. Gets the validation results for all elements with references to an Alias, but no ExternalReference with that Alias is defined. The validation result. Use the as a parameter for this method. All validation results, which are related to CAEX objects which use an undefined ExternalReference alias. Gets the validation results for all elements with references to an Alias, where the ExternalReference has been merged into the document already. The validation result. Use the as a parameter for this method. All validation results, which are related to CAEX objects which reference an external source which is already merged. Enumeration ValidationTypeEnum The identifier validation indicates ID related issues. like a double or missing ID or a wrong formatted ID. The issues are repairable, if the ID is not referenced. The class path validation indicates a double ClassPath or missing Path The attribute path validation indicates a double AttributePath or missing Path The path reference validation indicates a missing or unresolved reference to a class The name validation indicates a missing or not allowed name The ID reference validation indicates a missing or unresolved reference to an object with an ID The alias validation The validation result has constituted an alias in an external reference which is not merged The validation result has constituted a missing alias in an external reference The file reference validation indicates a wrong FilePath in an external reference, which couldn't be resolved to an existing file The role attribute reference validation indicates a wrong reference to a role Attribute in a Mapping The role Interface reference validation indicates a wrong reference to a role Interface in a Mapping The SystemUnitClass attribute reference validation indicates a wrong reference to a SystemUnitClass Attribute in a Mapping The SystemUnitClass Interface reference validation indicates a wrong reference to a SystemUnitClass Interface in a Mapping This Flag indicates a cyclic dependency between classes The automationML meta data validation indicates a couple of validation issues with metaData, as a missing schema name or writerHeader This service is defined for the validation of an AML document. Additionally the service can also be used to repair specific invalid properties in a document. Normalizes a file path and resolves relative paths a string with a relative path The CAEX file. a normalized file path string The invalid schema key The no AML version key The no name key The no schema key Registers a new validator service. The registered validator service. Unregisters the validator service. Validates the ID of a CAEX object. IDs of CAEX objects shall be unique. The CAEX object. The ID, which should be assigned to the object. If no ID is defined, the uniqueness of the already assigned ID is evaluated. A value tuple, returning the validation result and a message Validates a name of a CAEX object. Names of CAEX classes or types (RoleClasses, InterfaceClasses, SystemUnitClasses and AttributeTypes), Attributes, Libraries and CAEX InstanceHierarchies shall be unique across its siblings or across all child elements of the same CAEX parent element over its life time. This shall assure that referencing a library, a class, a type or an attribute by its path delivers a unique result. The CAEX object. The name, which should be assigned to the object. A value tuple, returning the validation result and a message Repairs the specified validated element. The validated element. true if the element has been repaired, false otherwise. Get Validation Information for all elements in the specified document, which have validation issues. The provides detailed information about available Repair Options and an additional Information Text. The CAEX document. if set to true [generate long description]. An enumeration of validation information for CAEX objects. One CAEX object may have multiple occurrences with different validation issues in this collection. Get Validation Information for all elements in the specified document, which have validation issues. The provides detailed information about available Repair Options and an additional Information Text. This method should be used, if the Document is loaded from an AutomationML container. The Validation service will check validity of external references which are packed parts of the container. The CAEX document. The AutomationML container, containing the document source. if set to true generate long description for each validation issue. A collection of validation information for CAEX objects. One CAEX object may have multiple occurrences with different validation issues in this collection. Get Validation Information for all elements in the specified document, which have validation issues. The provides detailed information about available Repair Options and an additional Information Text. The CAEX document. If set, the associated parts, defined in the AutomationML container are used to validate external references. if set to true [generate long description]. An enumeration of validation information for CAEX objects. One CAEX object may have multiple occurrences with different validation issues in this collection. Validates the alias references and returns the validation result describing possible repair options. The provides detailed information about available Repair Options and an additional Information Text. The CAEX document. if set to true [generate long description]. Gets the alias reference validation issues for the specified document. The document. set, if a validation long description should be added to the result Gets all validation issues for the specified document. The document if set to true [generate long description]. Gets the AutomationML version validation issues. The document. if set to true [generate long description]. Gets the CAEX schema validation issues. The document. if set to true [generate long description]. Gets the external reference validation issues. The document. if set to true [generate long description]. Gets the identifier reference validation issues. The document. if set to true [generate long description]. Gets all ID validation issues for the provided document The document. if set to false [only warning will be issued during troubleshooting of ID of InternalElement in SUCLIB. Determine if IE is under SystemUnitClassLib Gets the meta data validation issues for the specified document. The document. if set to true [generate long description]. Gets the validation issues for elements which reference another element using a CAEXPath. The document. if set to true [generate long description]. Gets the validation issues for elements which should be identifiable with a CAEXPath. the document set, if a validation long description should be added to the result a collection of validated elements. Gets validation issues for source document or writer header information The document. a collection of validated elements. Validates the alias reference of the specified document and the provided path and item. The document. The path which contains an alias. The alias reference item. set, if a validation long description should be added to the result a collection of validated elements. Validates the external reference. The CAEX file. The alias. if set to true [generate long description]. a collection of validated elements. Validates the identifier reference of the specified document and the provide ID reference and the reference item. The document. The ID reference. The reference item. if set to true [generate long description]. Validates the path reference of the specified document for the provided path and reference item. The document. The path. The reference item. if set to true [generate long description].