AML.Engine This class provides methods, which exists in the old AMLEngine_v3.x.x and are no longer supported. These methods are provided to support the migration of legacy code. Getting an enumerable of all Elements with InternalLinks of all InstanceHierarchies and SystemUnitClassLibraries in the CAEXFile. The enumeration may return InternalElements or SystemUnitClass elements. An IEnumerable with SystemUnitClasses is returned. Getting an enumerable of InternalElements with InternalLinks of all InstanceHierarchies and SystemUnitClassLibraries in the CAEXFile. An IEnumerable with InternalElements is returned. Returns all SystemUnit Classes which are ancestors of this. This SystemUnit Class is included in the enumeration as the first Element, The farthest is the last Element in the enumeration. IEnumerable<SystemUnitClassType>. Assigns new GUIDs to this InternalElement and all of its child InternalElements Assigns the new GUIds and redirect existing internal links. If you want an assignment of new GUIDs with updated references, make a copy of the SystemUnitClass and replace the old class with the new class. The system unit class. if set to true [include system unit classes]. This Method assigns new GUIds to the SystemUnitClass and its subordinate Children, which have an ID. The References to the old IDs in Mirrors and InternalLinks are redirected to the new ID. If a Reference is not found in any of the subordinate Elements, the Reference will not be changed. If you want an assignment of new GUIDs with updated references, make a copy of the SystemUnitClass and replace the old class with the new class. The system unit class. if set to true [include system unit classes]. Enumeration Method for direct Children of Type IEnumerable<AttributeType>. A clone copy of this object Clones the node. The CAEX object. if set to true [deep clone]. if set to true [assign new GUIDs to IEs]. The cloned node CAEXWrapper. Check if the given classPath is a valid path to an existent class in the AML file. The CAEX object. The class path to check for validity. True if a class at the given path exists, else false. Creates a copy with a unique ID. The internal element. if set to true [deep clone]. InternalElementType. Enumeration Method for direct Children of Type IEnumerable<InterfaceClassType>. Enumeration Method for all ExternalReferences of the CAEXFile. IEnumerable<ExternalReferenceType>. Searches for an ExternalInterface in this InternalElement The system unit class. Name of the ExternalInterface to search for An ExternalInterface of the given element with name attribute equal to interfaceName Resolve a reference to an InternalElement and return the referenced element if found. The CAEX object. The GUID of the InternalElement The InternalElement with the specified GUID Getting a List of all Elements with InternalLinks of all InstanceHierarchies and SystemUnitClassLibraries in the CAEXFile. The List may contain InternalElements and SystemUnitClass elements. A List with InternalElements is returned. Get the whole attribute field containing a collection of all attributes of this object. The object with attributes. CAEX_ClassModel.MemberElement_Attribute. Gets the name of the referenced SystemUnit class. The InternalElement. Gets the name of the referenced InterfaceClass. The InterfaceClass. Gets the external interfaces. IEnumerable<InterfaceClassType>. Getting a List of LinkedObjects object of this SystemUnitClass containing references to the concrete referenced InternalElements via an InternalLink. The system unit class. A list of linkedObjects for this SystemUnitClass. This list is empty if no InternalLink exists Get the Name of the specified object. The CAEX object. If the caexObject is of type CAEXObject, the name is returned; otherwise string.Empty. This method returns the parent CAEXBasicObject of the current CAEXBasicObject. The CAEX file. the CAEX Basic Object the parent CAEXBasicObject Getting the XML Node for a class path. The CAEX object. The full path to the referenced class. Hierarchies are separated via slash "/" The XML Node of the desired class, or null if none found. Use FindFastByID for speed optimizations. Parsing a string of form GUID:Interface and returning the GUID The CAEX object. A reference in form GUID:InterfaceClass The GUID Returns an attribute value of a given attribute name. Object with attributes name of attribute attribute value, "" if attribute does not exist Getting a referenced InterfaceClass. Use FindFastByPath for speed optimizations. The CAEX object. Full path to an InterfaceClass The referenced InterfaceClass. Getting the name of the referenced Interface. The CAEX object. A reference to a interface class in form GUID:InterfaceClass The name of the referenced interface class or string.empty if separator char not found in string Gets the referenced SystemUnitClass using the . Inserting an element of base type TypeBase to this object. The Element is inserted at the first Element of any existing Elements of the same Type if nothing else is explicit defined. The CAEX object. The element to insert. Inserted at first element (true) or appended as last (false), true if inserted, false otherwise. Adding a MappingObject element to this InternalElement. It is only allowed to add one MappingObject node. The internal element. The mapping object. Adding a MappingObject element to this Supported Role. The supported role element. The mapping object. Inserting a new class instance to this object. This method can be overridden in derived classes. The Instance is inserted as the first instance of any other element with the same type if nothing else is explicit defined. The CAEX object. The instance of a class to be inserted at this object. The instance can be of type if true, inserted as first (default), otherwise at last , True if insertion was successful, else false. Inserting a RoleRequirement to this InternalElement. An exception is thrown if a RoleRequirements is already existent. The internal element. The RoleRequirement to insert A RoleRequirements node is already existent. It is not allowed to add more than one RoleRequirements node to current element according to CAEX Schema Appending the object into this object. The system unit class. The inserted system unit family. The CAEX object. an object to be inserted if true, the element is inserted as the first of it's type, otherwise as the last. true if successfully inserted, false otherwise. Enumeration Method for all InstanceHierarchies of the CAEXFile. IEnumerable<InstanceHierarchyType>. Enumeration Method for all InterfaceClass Libraries of the CAEXFile. IEnumerable<InterfaceClassLibType>. Enumeration Method for direct Children of Type IEnumerable<InternalElementType>. Determines whether the InternalElement instance is an AMLFacet. The internal element. true if the specified internal element is an AMLFacet; otherwise, false. Determines whether the InternalElement instance is an AMLGroup. The internal element. true if the specified internal element is an AMLGroup; otherwise, false. Determines whether the InternalElement instance is an AMLPort. The internal element. true if the specified internal element is an AMLPort; otherwise, false. Adding a new RoleRequirements element to this InternalElement. It is only allowed to add one RoleRequirements node in CAEX 2.15. The new RoleRequirements element Adding a new RoleRequirements element to this InternalElement using the defined roleClassPath. It is only allowed to add one RoleRequirements node in CAEX 2.15. The internal element. The role class path. RoleRequirementsType. Adds a new required value to the NominalScaledType Constraint. Type of the nominal scaled. The value. Adding a new RequiredMaxValue to this ordinal scaled constraint Type of the ordinal scaled. The value. Adding a new RequiredMinValue to this ordinal scaled constraint Type of the ordinal scaled. The value. Adding a new OldVersion node to this revision. The revision. The value. Adding a new NewVersion node to this revision. The revision. The value. Adding a new Comment node to this revision. The revision. The value. Adding a new RequiredValue to this ordinal scaled constraint Enumeration Method for all RoleClass Libraries of the CAEXFile. IEnumerable<RoleClassLibType>. Gets all Children Objects of this SystemUnitClass. IEnumerable<SystemUnitFamilyType>. Enumeration Method for all SystemUnitClass Libraries of the CAEXFile. IEnumerable<SystemUnitClassLibType>. This class can be used to access InternalLink data. Initializes a new instance of the class. The internal link. Returns a that represents this instance. A that represents this instance. Gets or sets the Internal Link. The Internal Link. Gets the reference partner side A Internal Element. The reference partner side a element. Gets or sets the reference partner side A External Interface. The reference partner side a external interface. Gets or sets the reference partner side b Internal Element. The reference partner side b element. Gets or sets the reference partner side B External Interface. The reference partner side b external interface. Class AutomationMLContainer provides methods to save an AutomationML document and related documents which are needed for the interpretation or representation of AutomationML data into a single packed and zipped file. The various parts are assembled into this AutomationMLContainer. The Class provides methods to retrieve parts from a loaded container or for the assembly of parts into one single container. A Utility, to build a self containing container from a loaded CAEXDocument and the external referenced files, retrieved from the external references and ExternalInterface classes is defined in a special service. The AutomationML MIME type The disposed flag Releases unmanaged and - optionally - managed resources. All streams, used to save the packages, are closed. true to release both managed and unmanaged resources; false to release only unmanaged resources. Class RelationshipType describes the distinguished package part relationship types. This class cannot be inherited. Initializes a new instance of the class with the specified name and the specified mime type. The name. The mime type. relationship type for package to part or root part to part relations to any content. relationship type for package to part relation to the CAEX schema part. relationship type for package to part or root part to part relations to a COLLADA part. relationship type for package to part relation to the COLLADA schema. relationship type for package to part or root part to part relations to a part, containing an AutomationML library. relationship type for package to part or root part to part relations to a PLCopenXml part. relationship type for package to part relation to the PLCopenXml schema. relationship type for the package to part relation to the part containing the root document. Gets the mime type of the relationship The mime type. Gets the name of the relationship. The name. Creates a RelationshipType for any content. If no mime type is defined, the relationship type is used. The mime type. RelationshipType. Compares the current instance's name to another object's name of the same type and returns an integer indicating whether the current instance's name occurs in the sort order before or after the other object or at the same position. An object to compare with this instance. A value indicating the relative order of the objects being compared. The return value has the following meaning: Less than zero: This instance is in the sort order before . Zero: This instance occurs in the sort order at the same position as . Greater than zero: This instance follows in the sort order. Returns the as the string representation of this instance. A that represents this instance. Initializes a new instance of the class using the specified container file to load or save the package. The file path of the container file. The file should have the extension .amlx. Initializes a new instance of the class using the specified container file to load or save the package. The file path of the container file. The file mode for the package file. Initializes a new instance of the class using the specified container file to load or save the package. The file path of the container file. The file mode for the package file. The file access mode for the package file. Initializes a new instance of the class using the specified container file to load or save the package. The file path of the container file. The file mode for the package file. The file access mode for the package file. The file share access mode for the package file, which controls access of other file streams to the same file. Initializes a new instance of the class using the specified stream resource. The stream resource for the package. Initializes a new instance of the class using the specified stream resource. The stream resource for the package. The package mode. Initializes a new instance of the class using the specified stream resource. The stream resource for the package. The package mode. The package access. Gets or sets the compression mode which is by default. The compression mode. Gets the full path of the used container file. The filename. Gets the full path of the directory, used for extraction. Gets the underlying package of this instance. The package. Adds any content to the package creating relationships to the package and to the part, containing the root document using the relationship type . package part, containing the parent root document full name of the file which should be added package internal name of the part optional mime type, the default mime type for the relationship is used if empty PackagePart. Adds any content from the specified stream resource to the package creating relationships to the package and to the part, containing the root document using the relationship type . package part, containing the parent root document any content stream package internal name of the part optional mime type, the default mime type for the relationship is used if empty PackagePart. Adds a CAEX schema file to the package and creates a package - part relationship to the package using the relationship type full name of the file which should be added package internal name of the part added part Adds a CAEX schema part retrieved from a stream resource to the package and creates a package - part relationship to the package using the relationship type . collard stream package internal name of the part added part Adds a COLLADA file to the package and creates relationships to the package and to the root document using the . package part, containing the parent root document full name of the file which should be added package internal name of the part added part Adds a COLLADA part read from the specified stream resource to the package and creates relationships to the package and to the root document using the . package part, containing the parent root document COLLADA file stream package internal name of the part added part Adds a COLLADA schema file to the package and creates a package - part relationship to the package using . full name of the file which should be added package internal name of the part added part Adds a COLLADA schema part from the stream resource to the package and creates a package - part relationship to the package using . COLLADA stream package internal name of the part added part Adds a library file to the package and creates relationships to the package and to the package containing the root document using the . package part, containing the parent root document full name of the file which should be added package internal name of the part added part Adds a library file to the package and creates a package - part relationship of type . full name of the file which should be added package internal name of the part added part Adds a library stream to the package and creates a package - part relationship of type . library stream package internal name of the part added part Adds a library from a stream resource to the package and creates relationships to the package and to the part containing the root document using the relationship type . package part, containing the parent root document library stream package internal name of the part added part Adds a PLCopenXml file to the package and creates relationships to the package and to the package part containing the root document using the relationship type . package part, containing the parent root document full name of the file which should be added package internal name of the part added part Adds a PLCopenXml part read from a stream resource to the package and creates relationships to the package and to the package part containing the root document using the relationship type . package part, containing the parent root document PLCopenXml stream package internal name of the part added part Adds a PLCopenXml schema file to the package and creates a package - part relationship of type to the package. full name of the file which should be added package internal name of the part added part Adds a PLCopenXml schema part from a stream resource to the package and creates a package - part relationship of type . COLLADA file stream package internal name of the part added part Adds a root AML file to the package and creates a package - part relationship of type . full name of the file which should be added package internal name of the part added part Adds a root AML file from a stream resource to the package and creates a package - part relationship of type . root document stream package internal name of the part added part Saves and closes the package and all part streams. Performs application-defined tasks associated with the release, return or resetting of unmanaged resources. Extracts all parts in the package to the specified directory directory info defining the target directory for extraction Extracts the specified part in the package to the specified directory. directory info defining the target directory for extraction. The part to extract to the specified folder. Extracts all parts in the package to the specified directory Full path to the target directory. Saves the contents of all parts and relationships, contained in the package. Returns the part with the given URI. The part URI. PackagePart. Returns an enumeration of all parts inside the package. IEnumerable<PackagePart>. Returns an enumeration of all parts with the given relationship type from the package. The relationship type. IEnumerable<PackagePart>. Gets the related part by URI. The reference URI. The relationship type. PackagePart. Returns an enumeration of all related parts for the given part. The part. IEnumerable<PackagePart>. Returns an enumeration of the related parts for the specified part and relationship type. The part. The relationship type. IEnumerable<PackagePart>. Returns an enumeration of the related parts for the specified part and relationship type. The part. The relationship type. IEnumerable<PackagePart>. Returns an enumeration of all contained relationships of this instance. IEnumerable<PackageRelationship>. Returns an enumeration of all relationships with the given relationship type. Type of the relation. IEnumerable<PackageRelationship>. Determines, if a part with the specified part URI exists. The part URI. true if the part exists, false otherwise. Determines, if the specified relationship type exists. Type of the relation. true if relationship type exists, false otherwise. Gets the file path to the first root AML document when the container is already extracted. If the container is created from a stream source or no root document is found, the return value is string.Empty. The directory which was used for extraction. System.String. Gets the stream of the first root AML document. If no root document is found, the return value is null. System.String. Saves the package and all part streams, the package is still open. To get the file path from a relative Uri, the unescaped data string without the start '/' is needed The URI. System.String. Adds the package part. The full path. The part URI. Type of the relation ship. if set to true [create package relation]. The part. PackagePart. Adds the package part. The stream. The part URI. Type of the relation ship. if set to true [create package relation]. The part. PackagePart. Part with Uri + partUri + not found Changes the uri of a package part. The part is removed and readded with the provided . All relationships of the part are updated. true if a part with the provided exists; otherwise false An AMLFile is a CAEXFile, containing information about the AutomationML version and the WriterHeader (if CAEX 2.15 is used) or the SourceDocumentInformation (CAEX 3.0 and later versions). Initializes a new instance of the class. The node. Gets or sets the AutomationML version. It is not allowed to set an AMLVersion which is higher than the . If this is tried, the maximal known version is used for this document. Gets the collection of defined document version information of the AMLFile The collection of document version information. Gets the AdditionalInformation values contained in this instance which are neither DocumentVersion or WriterHeader. DocumentVersion and WriterHeader objects are realized using AdditionalInformation objects, too. But these elements define a specific syntax to be recognized as specific AdditionalInformation objects. Determines whether the specified XML element represents an AdditionalInformation object, using the specific DocumentVersion syntax. The element. true if the specified element is a DocumentVersion element; otherwise, false. Determines whether the specified XML element represents an AdditionalInformation object, representing the AutomationMLVersion. The element. true if the specified element is the AutomationML version element; otherwise, false. Determines whether the specified XML element represents an AdditionalInformation object, using the specific WriterHeader syntax. The element. true if the specified element is a WriterHeader element; otherwise, false. Determines whether the specified XML element represents an AdditionalInformation object, not using any specific syntax as the or elements. The element. true if the specified element is a generic AdditionalInformation element; otherwise, false. Gets the maximal AutomationML version, which can be associated with this AMLFile. The maximal AutomationML version depends on the used CAEX version. For CAEX 2.15 the maximal AutomationML version is 2.0. For CAEX 3.0 the maximal version is 2.10. Gets the collection of defined writer headers of the AMLFile The collection writer header. valid only for AutomationML Version 2.0 using CAEX 2.15 Removes all "Writer Header" specific meta information out of this CAEX file. Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This function deletes any existing meta information corresponding to the writerID. Writer ID true if delete succeeded, false if writerID has not been found writerID Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This methods returns an Enumeration of all "WriterHeader" meta information out of an existing AutomationML file. Enumerable with element containing all meta information, or null if no meta information is existing Extension Method originally designed for AutomationML Versions based on CAEX 2.15. This function returns the MetaInformation corresponding to the writerID, otherwise null. the writerID This function returns the MetaInformation corresponding to the writerID, otherwise null. writerID Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed from a . Determines whether the specified AML version is a valid version string for this AMLFile The version string. true if specified AML version is a valid version string for this AMLFile; otherwise, false. This function replaces any existing meta information corresponding to the identical oldWriterID with the new meta information defined in the new Meta information writerID of the old meta information substitute for the old version of meta information true if succeeded, false if meta information about the oldWriterID is not found oldWriterID Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This function sets the meta information required from AutomationML standard. If meta information about the same writerID already exists, this meta information is replaced. These information comprise source information about the AutomationML file. the name of the writing tool an ID of the writing tool the tool vendors name the tools vendors URL the version of the writing tool the release number of the writing tool the date of the last writing time the title of the written project an ID of the written project writerID Extension Method for AutomationML Versions based on CAEX 2.15. If this method is called for a CAEX 3.0 or later Version, the call is redirected to the . This method is a short version of the setMetaInformation. Meta data with identical WriterID is replaced. the structure MetaInformation metaInformation Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This method labels this CAEX file as a standard AutomationML library coming from the AutomationML e.V. It removes all other meta information and should only be used from authorized persons in agreement with the AutomationML e.V. Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This function sets the meta information required from AutomationML standard. If meta information about the same writerID already exists, this meta information is replaced. These information comprise source information about the AutomationML file. the name of the writing tool an ID of the writing tool the tool vendors name the tools vendors URL the version of the writing tool the release number of the writing tool the date of the last writing time the title of the written project an ID of the written project originID Extension Method for AutomationML Versions based on CAEX 3.0. If this method is called for an CAEX 2.15 Version, the call is redirected to the . A Facet is an AML object providing a sub-view on attributes or interfaces of the parent AML object. This concept serves for the storage of different configuration settings such as HMI or PLC related data and allows the automation of several control engineering steps. For this, this part of IEC 62714 defines the AML RoleClass “Facet” (see6.4.4).“ [IEC 62714-1:2014 8.3 (p.43)] The Facet name Initializes a new instance of the class. An 'InternalElement' XML node. Gets the collection of Attribute objects for this instance. Gets a collection of ExternalInterface objects contained in this instance. Gets the collection of Attribute objects for this instance. Gets a collection of ExternalInterface objects contained in this instance. The collection of InternalElement objects for an AMLFacet is always null. Gets a value indicating whether this instance is an AMLFacet Creates an AMLFacet AML object with this name, using the provided document. The CAEX document. The name of the new AMLFacet. The created AMLFacet. Conversion to get access to specific AutomationML defined Attributes The 'AMLFacet' CAEX object. The AMLFacet object, converted to an type, which provides access to specific AML defined attributes. attributeType Get the original parent attributes which are already assigned with the AMLFacet A collection of already assigned Attribute objects of the parent. Get the original parent interfaces which are already assigned with the AMLFacet A collection of already assigned ExternalInterface objects of the parent. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Determines whether the AMLFacet contains this attribute of the parent AML object. An attribute of the parent. true if this attribute of the parent is assigned to the AMLFacet; otherwise, false. In CAEX 3.0 the Attribute of the AMLFacet has to be a Mirror Attribute. CAEX 2.15 identifies Attributes with identical names. Determines whether the AMLFacet contains this interface of the parent AML object. The external interface. true if this interface of the parent is assigned to the AMLFacet; otherwise, false. In CAEX 3.0 the Interface of the AMLFacet has to be a Mirror Interface. CAEX 2.15 identifies Interfaces with identical names. Inserts the specified CAEX object in it's associated container. AMLFacet objects are not allowed to contain child InternalElement objects. If an InternalElement is tried to insert, the result is false. The CAEX object. if set to true the element is inserted at the first position in it's container. true, if the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. caexObject Get the parent attributes which are yet not assigned with the AMLFacet A collection of not assigned Attribute objects. Get the parent interfaces which are yet not assigned with the AMLFacet A collection of not assigned ExternalInterface objects. Gets the original Attribute from the which is related to this Facet Attribute. The facet attribute. An Attribute from the parent with the same name. In CAEX 3.0 the Source Attribute is the Master Attribute of the . CAEX 2.15 the Source Attribute is the first identified Attribute of the parent with an identical name. Gets the original ExternalInterface from the which is related to this Facet Interface. The facet ExternalInterface. An ExternalInterface from the parent with the same name. In CAEX 3.0 the Source Interface is the Master Interface of the . CAEX 2.15 the Source Interface is the first identified Interface of the parent with an identical name. The AML Group concept allows separating structure information from instance information. An informative overview about the Group concept including examples is provided in A.2.4.” [IEC 62714-1:2014 8.4 (p.43)]. An AML Group object shall be described by a CAEX InternalElement with an association to the RoleClass “Group” which is defined in 6.4.3. [IEC 62714-1:2014 8.4 (p.43)] The Group name Initializes a new instance of the class. An InternalElement node Gets a collection of InternalElement objects contained in this instance. Gets or sets the associated facet for the AMLGroup object Gets the collection of InternalElement objects for this instance. Gets a value indicating whether the defining InternalElement instance is an AMLGroup Creates an AMLGroup AML object with this name, using the provided document. The CAEX document. The name of the new AMLGroup object. The new AMLGroup object. Returns the names of the facets, defined in the master InternalElements of all mirrors in this group. Enumeration of distinct names of facets. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated container. An AMLGroup object shall only contain InternalElements which are AMLMirrorObjects and/or further AMLGroup objects. If other InternalElements are tried to insert, the result is false. The CAEX object. if set to true the element is inserted at the first position in it's container. true, if the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. caexObject This class is a generic type definition for CAEX libraries, which are defined by AutomationML and contain standardized classes. Type of the library items. Initializes a new instance of the class. A CAEX library XML node. Gets the AutomationML class from this library, which can be identified by the provided CAEX path. The CAEX path. The CAEX class from this library, which was identified by the CAEX path. Loads an AutomationML library from an external source. The document. Name of the resource. The import library. The imported library. The current document and the imported library use different CAEX Versions; To do a schema transformation the service needs to be registered An AML Port is an AML object that groups a number of interfaces. An informative overview about the Port concept including examples is provided in A.2.2. [IEC 62714-1:2014 8.2 (p.42) The AML Port object has been replaced in AutomationML version 2.10 with an Interface only The Port name Initializes a new instance of the class. An InternalElement node The collection of InternalElement objects for an AMLPort is always null. Gets a value indicating whether the defining InternalElement instance is an AMLGroup Creates an AMLPort AML object with this name, using the provided document. The CAEX document. The name of the new AMLPort object. The created AMLPort object. Inserts the specified CAEX object in it's associated container. AMLPort objects are not allowed to contain child InternalElement objects. If an InternalElement is tried to insert, the result is false. The CAEX object. if set to true the element is inserted at the first position in it's container. true, if the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. caexObject An AMLSystemUnitClass is a SystemUnitClass which can contain AML objects. Initializes a new instance of the class. A SystemUnitClass node Initializes a new instance of the class. The system unit class. Gets the Collection of AMLFacet objects. Gets the Collection of AMLGroup objects. Gets the Collection of AMLPort objects. Adds an AMLFacet object to the AMLSystemUnitClass with the provided name. The name of the new AMLFacet. The added new AMLFacet. Adds an AMLGroup object to the AMLSystemUnitClass with the provided name. The name of the new AMLGroup. The added new AMLGroup. Adds an AMLPort object to the AMLSystemUnitClass with the provided name. The name of the new AMLPort. The added new AMLPort- Contains definitions and access methods of standard base AttributeType objects. Not available for CAEX version 2.15 The 'AssociatedExternalValue' AttributeType path Not available for CAEX version 2.15 The 'AssociatedFacet' AttributeType path Not available for CAEX version 2.15 The 'AutomationMLBaseAttributeTypeLib' library name Not available for CAEX version 2.15 The 'Cardinality' AttributeType path Not available for CAEX version 2.15 The 'Category' AttributeType path Not available for CAEX version 2.15 The 'Direction' AttributeType path Not available for CAEX version 2.15 The 'DocLang' AttributeType path Not available for CAEX version 2.15 The 'Category' AttributeType path Not available for CAEX version 2.15 The 'ListType' AttributeType path Not available for CAEX version 2.15 The 'LocalizedAttribute' AttributeType path Not available for CAEX version 2.15 The 'MIMEType' AttributeType path Not available for CAEX version 2.15 The 'OrderedListType' AttributeType path Not available for CAEX version 2.15 The 'RefURI' AttributeType path Not available for CAEX version 2.15 Determines whether the specified attribute reference defines an inheritance relation from the AssociatedExternalValue AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the AssociatedFacet AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the Cardinality AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the Category AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the Direction AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the DocLang AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the Frame AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the ListType AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the LocalizedAttribute AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the MIMEType AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the OrderedListType AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified attribute reference defines an inheritance relation from the RefURI AttributeType The attribute. true if an inheritance relation is resolved; otherwise, false. This Class is a wrapper for the AutomationML standard 'AutomationMLBaseAttributeTypeLib' which is the container for a hierarchy of standard AttributeType definitions. Not available for CAEX version 2.15 Initializes a new instance of the class. The attribute type library. Gets the AssociatedExternalValue Attribute Type. Gets the AssociatedFacet. Gets the Cardinality attribute type. Gets the Category Attribute Type Gets the Direction Attribute Type. Gets the ListType Attribute type Gets the LocalizedAttribute attribute type. Gets the MIMEType attribute type. Gets the OrderedListType attribute type. Gets the RefURI attribute Type. Gets the AutomationMLBaseAttributeTypeLib from the provided document. If the document doesn't contain the required library it will be automatically imported from an external resource. The CAEX document. The AutomationMLBaseAttributeTypeLib Not available for CAEX version 2.15 Determines if the AutomationMLBaseAttributeTypeLib exists in the document. The document. true if the AutomationMLBaseAttributeTypeLib is loaded; otherwise, false. Contains definitions and access methods of standard base InterfaceClass objects. The AttachmentInterface class path (a Part 3 Interface) The AutomationML base interface class path (a Part 1 Interface) The AutomationML base interface class library name The behaviour logic interface class path (a Part 4 Interface) The COLLADA interface class path (a Part 1 Interface) The communication interface class path (a Part 1 Interface) The external data connector (a Part 1 Interface) The interlocking connector interface class path (a Part 1 Interface) The interlocking logic interface class path (a Part 4 Interface) The interlocking variable interface class path (a Part 4 Interface) The logic element interface class path (a Part 4 Interface) The logic interface class path (a Part 4 Interface) The order interface class path (a Part 1 Interface) The PLCopenXML interface class path (a Part 1 Interface) The port connector interface class path (a Part 1 Interface) The PPR connector interface class path (a Part 1 Interface) The sequencing behaviour logic interface class path (a Part 4 Interface) The sequencing logic interface class path (a Part 4 Interface) The signal interface class path (a Part 1 Interface) The variable interface class path (a Part 4 Interface) Determines whether the specified interface class is derived from the AutomationMLBase interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the BehaviourLogicInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the COLLADAInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the Communication interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the ExternalDataConnector interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the InterlockingConnector interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the InterlockingLogicInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the InterlockingVariableInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the LogicElementInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the LogicInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the Order interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the PLCopenXMLInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the PortConnector interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the PPRConnector interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the SequencingBehaviourLogicInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the SequencingLogicInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the SignalInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Determines whether the specified interface class is derived from the VariableInterface interface class. The method can resolve alias references anywhere in the inheritance hierarchy. The interface class. true if an inheritance relation could be resolved; otherwise, false. Makes the AutomationML base interface. The interface class. Makes the COLLADA interface. The interface class. Makes the communication interface. The interface class. Makes the external data connector. The interface class. Makes the interlocking connector. The interface class. Makes the order interface. The interface class. Makes the PLCopen XML interface. The interface class. Makes the port connector. The interface class. Makes the PPR connector. The interface class. Makes the signal interface. The interface class. This Class is a wrapper for the AutomationML standard 'AutomationMLInterfaceClassLib' which is the container for a hierarchy of standard InterfaceClass definitions. Initializes a new instance of the class. The role class library. Gets the standard AutomationMLInterfaceClassLib from the provided document. If the document doesn't contain the required library it will be automatically imported from an external resource. The CAEX document. The AutomationMLBaseRoleClassLib Determines if the AutomationMLInterfaceClassLib exists in the document. The document. true if the AutomationMLInterfaceClassLib is loaded; otherwise, false. This Class is a wrapper for the AutomationML standard 'AutomationMLBaseRoleClassLib' which is the container for a hierarchy of standard RoleClass definitions. Initializes a new instance of the class. The role class library. Gets the automation ml base role. The automation ml base role. Gets the facet. The facet. Gets the frame. The frame. Gets the group. The group. Gets the interlocking source group. The interlocking source group. Gets the interlocking target group. The interlocking target group. Gets the logic object. The logic object. Gets the port. The port. Gets the process. The process. Gets the process structure. The process structure. Gets the product. The product. Gets the product structure. The product structure. Gets the property set. The property set. Gets the resource. The resource. Gets the resource structure. The resource structure. Gets the structure. The structure. Determines if the AutomationMLBaseRoleClassLib exists in the document. The document. true if the AutomationMLBaseRoleClassLib is loaded; otherwise, false. Gets the AutomationMLBaseRoleClassLib from the provided document. If the document doesn't contain the required library it will be automatically imported from an external resource. The CAEX document. The AutomationMLBaseRoleClassLib Contains definitions and access methods of standard base RoleClass objects. The 'AutomationMLBaseRole' RoleClass path The 'AutomationMLBaseRoleClassLib' library name The 'Facet' RoleClass path The 'Frame' RoleClass path The 'Group' RoleClass path The 'InterlockingSourceGroup' RoleClass path The 'InterlockingTargetGroup' RoleClass path The 'LogicObject' RoleClass path The 'Port' RoleClass path The 'Process' RoleClass path The 'ProcessStructure' RoleClass path The 'Product' RoleClass path The 'ProductStructure' RoleClass path The 'PropertySet' RoleClass path The 'Resource' RoleClass path The 'ResourceStructure' RoleClass path The 'Structure' RoleClass path Determines whether the specified role reference defines an inheritance relation from the AutomationMLBaseRole RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Facet RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Frame RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Group RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the InterlockingSourceGroup RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the InterlockingTargetGroup RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the LogicObject RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Port RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Process RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the ProcessStructure RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Product RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the ProductStructure RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the PropertySet RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Resource RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the ResourceStructure RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the Structure RoleClass The role. true if an inheritance relation is resolved; otherwise, false. Makes the AutomationML base role. The used role. Makes the facet. The used role. Makes the group. The used role. Makes the port. The used role. Makes the process. The used role. Makes the process structure. The used role. Makes the Product. The used role. Makes the product structure. The used role. Makes the property set. The used role. Makes the resource. The used role. Makes the resource structure. The used role. Makes the structure. The used role. The Class DocumentVersions defines extension methods for the to retrieve and manipulate document versions attached to a CAEXFile. The DocumentVersion feature is described in the AutomationML BPR 06 "Naming of related documents and their versions" . The document element name The document identifier attribute name used in the Document element The document versions attribute name The document versions attribute value The version attribute name used in the document element This function sets the DocumentVersion information for a referenced document. If DocumentVersion information about the same document Identifier already exists, this DocumentVersion information is replaced. the CAEXFile of the AutomationML document The "DocumentIdentifier" shall define the name of the referenced document. The "Version" shall define the version range of the referenced document. The version number shall have three numbers separated by ".". Out parameter with error information if provided values are not valid or null. Possibles errors are: No Document Identifier defined DocumentVersion to be parsed is null Negative value in version string Bad number of components in version string Non-integer value in version string Number out of range in version string true, if information is added, false otherwise. Appends the provided document version information to the AutomationML document The CAEX file of the AutomationML document. The version information. Out parameter containing error information if the method returns false. Possibles errors are: No Document Identifier defined DocumentVersion to be parsed is null Negative value in version string Bad number of components in version string Non-integer value in version string Number out of range in version string true if the version information could be added, false otherwise. Creates the additional information representing a document versions header and appends it to the AutomationML document. The CAEX file of the AutomationML document. XElement. This function deletes all existing DocumentVersion information from the AutomationML document corresponding to the documentID. this CAEX file of the AutomationML document Document Identifier of the document version information, which should be deleted true if delete succeeded, false if documentID has not been found Get the Additional Information XML-Node from the CAEXFile, which represents the Document Versions node. The CAEX file. If the Document Version Node exists, the XElement is returned, otherwise null. This methods returns an Enumeration of all Information related to document versions defined in the "DocumentVersions" information of an AutomationML document. the CAEX file of the AutomationML document. Enumerable containing all Documents in the DocumentVersion information, or null if no DocumentVersion information exists. This function returns the DocumentVersion Information from the AutomationML document with the specified document Identifier, otherwise null. this CAEX file of the AutomationML document. the Document Identifier This function returns the DocumentVersion - Information corresponding to the document Identifier, otherwise null. This function replaces any existing DocumentVersion information corresponding to the identical oldDocumentID with the provided new DocumentVersion information. The CAEX file of the AutomationML document. Document identifier of the old DocumentVersion information substitute for the old version of DocumentVersion information error information if provided values are invalid true if succeeded, false if DocumentVersion information corresponding to the oldDocumentID is not found This Class is defined for the modeling of document version information as defined in the AutomationML BPR 06 "Naming of related documents and their versions". are stored as attached to the CAEXFile Node of the AMLDocument. Initializes a new instance of the class. Initializes a new instance of the class using the provided XML node (this should be an ), containing document content. The element. The document attribute "DocumentIdentifier" shall define the name of the referenced document. The "DocumentIdentifier" of the document should not be changed. The document attribute "Version" shall define the version range of the referenced document. The version number shall have three numbers separated by ".". The three numbers define "main version", "minor version" and "revision". This class provides extensions methods for the identification of properties of AML objects, using CAEX objects. Conversion of any object which has an attribute collection to get access to specific AutomationML defined attributes. The CAEX object, providing the attribute collection. The ObjectWithAMLAttributes which provides accessors for AutomationML defined attributes. caexObject Converts an InternalElementType to an AMLFacet. The InternalElement object. An AMLFacet object. The conversion doesn't create the AMLFacet. Use method to create a Facet. Converts a CAEX file to an AML file. The CAEX file object. An AMLFile object. Converts an InternalElementType to an AMLGroup. The InternalElement object. An AMLGroup object. The conversion doesn't create the AMLGroup if the internalElement is not an AMLGroup Use method to create a Group. Converts an InternalElementType to an AMLPort. The InternalElement object. An AMLPort object. The conversion doesn't create the AMLPort. Use method to create a Port. Converts an SystemUnitClassType to an AMLSystemUnitClass. The SystemUnitClass object. An AMLSystemUnitClass object. Gets the AutomationML version for this CAEXFile object. The CAEX file. The AutomationML version assigned to the CAEXFile. caexFile Removes all "Writer Header" specific meta information out of this CAEX file. the CAEXFile caexFile Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This function deletes any existing meta information corresponding to the writerID. this CAEX file Writer ID true if delete succeeded, false if writerID has not been found caexFile Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . Gets a defined FrameAttribute from the collection of the . If no such attribute exists, null is returned. The CAEX object. The FrameAttribute. caexObject This methods returns an Enumeration of all "WriterHeader" meta information out of an existing AutomationML file. the CAEX file Enumerable with element containing all meta information, or null if no meta information is existing caexFile Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed from a . This function returns the MetaInformation corresponding to the writerID, otherwise null. this CAEX file the writerID This function returns the MetaInformation corresponding to the writerID, otherwise null. caexFile Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed from a . Determines whether the InternalElement instance is an AMLFacet. The internal element. true if the specified internal element is an AMLFacet; otherwise, false. Determines whether the InternalElement instance is an AMLGroup. The internal element. true if the specified internal element is an AMLGroup; otherwise, false. Determines whether the CAEX object is an AutomationML object. If the CAEX object is a SystemUnitClass or InternalElement, it is checked, if there exists a role reference to the AutomationMLBaseRole. If the CAEX object is an ExternalInterface, it is checked, if there exists an InterfaceClass reference to an AutomationMLBase Interface. The CAEX object. true if the CAEX object is an AutomationML object; otherwise, false. Determines whether the InternalElement instance is an AMLPort. The internal element. true if the specified internal element is an AMLPort; otherwise, false. Determines, if the attribute is an attribute of an AMLFacet. The facet attribute. true, if the Attribute belongs to an AMLFacet. facetAttribute Determines, if the ExternalInterface object is an ExternalInterface of an AMLFacet. The facet Interface. true, if the ExternalInterface belongs to an AMLFacet. facetInterface Gets a value indicating whether this instance is a RefType attribute. true if this instance is a RefType attribute; otherwise, false. Gets a value indicating whether this instance is a RefURI attribute. true if this instance is a RefURI attribute; otherwise, false. Creates a new Frame attribute for the if no Frame attribute exists. The provided values are used to initialize the Frame attribute values. The CAEX object. The frame values. the new FrameAttributeType. caexObject caexObject Gets the RefTypeAttribute from the if one exists. The object with attributes. Gets the RefURIAttribute from the if one exists. The object with attributes. This function replaces any existing meta information corresponding to the identical oldWriterID with the new meta information defined in the newMetainformation My CAEX file. writerID of the old meta information substitute for the old version of meta information true if succeeded, false if meta information about the oldWriterID is not found caexFile Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . Sets the properties for the specified SourceDocumentInformation object using the provided MetaInformation The source document information. The meta information. sourceDocumentInformation or metaInformation This function sets the meta information required from AutomationML standard. If meta information about the same writerID already exists, this meta information is replaced. These information comprise source information about the AutomationML file. the CAEXFile the name of the writing tool an ID of the writing tool the tool vendors name the tools vendors URL the version of the writing tool the release number of the writing tool the date of the last writing time the title of the written project an ID of the written project caexFile Extension Method for AutomationML Versions based on CAEX 2.15. If this method is called for a CAEX 3.0 or later Version, the call is redirected to the . This method is a short version of the setMetaInformation. Meta data with identical WriterID is replaced. the CAEXFile the structure MetaInformation caexFile Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This method labels this CAEX file as a standard AutomationML library coming from the AutomationML e.V. It removes all other meta information and should only be used from authorized persons in agreement with the AutomationML e.V. the CAEXFile caexFile Extension Method originally designed for AutomationML Versions based on CAEX 2.15. If this method is applied to a CAEX 3.0 document, the information is transformed to a . This function sets the meta information required from AutomationML standard. If meta information about the same writerID already exists, this meta information is replaced. These information comprise source information about the AutomationML file. the CAEXFile the name of the writing tool an ID of the writing tool the tool vendors name the tools vendors URL the version of the writing tool the release number of the writing tool the date of the last writing time the title of the written project an ID of the written project caexFile Extension Method for AutomationML Versions based on CAEX 3.0. If this method is called for an CAEX 2.15 Version, the call is redirected to the . Converts an AttributeType to a RefTypeAttribute. The AttributeType object. An RefTypeAttributeType object. The conversion doesn't create the RefTypeAttributeType. Use method to create a RefTypeAttributeType. Converts an AttributeType to a RefUriAttribute. The AttributeType object. An RefURIAttributeType object. The conversion doesn't create the RefURIAttributeType. Use method to create a RefURIAttributeType. This class provides methods to create and retrieve external data references as it is defined in the BPR document "ExternalDataReference" Version 1.0.0 from July 2016. The name of the library containing interface classes specified in BPR documents The name of the library containing role classes specified in BPR documents The name for the ExternalDataReference interface class The class path for the ExternalDataReference interface class The name for the ExternalData role class The class path for the ExternalData role class The language attribute name Adds the AutomationMLBPRInterfaceClassLib containing all interface classes used to model external document references to the AMLDocument. The CAEX file of the AMLDocument. Different CAEX Versions used; register the SchemaTransform service to import the AutomationMLBPRInterfaceClassLib in your current document. Adds the AutomationMLBPRRoleClassLib containing all role classes used to model external document references to the AMLDocument. The CAEX file of the AMLDocument. caexFile Different CAEX Version used; register the SchemaTransform service to import the AutomationMLBPRRoleClassLib in your current document. Adds a document element to the defined internalElement. A Document Element is semantically described with an attached role defined with the base role class or a derived role class. If no role class path is given as a parameter the default is used. If the specified role class path can not be identified as a derived role from the no document element is added (returns null). The internalElement. The name of the document element. The Role class path to a role class, derived from the ExternalData Role Class created InternalElementType document element or null if the role class is invalid Add a role reference to a external data role class or derived role class defined with the given role class path as a supported role class to the internal element. If the specified role class path can not be identified as a derived role from the no role reference is added (returns false). The internalElement. path to the role class true, if a supported role class with the defined path is added false if the role class is invalid InternalElement not contained in CAEXDocument Adds a document with the specified external reference interface to the document element. If the given internal element is not a document element or the defined class path to the external reference interface is not derived from the standard base class no interface is added. The document element. The name for the referencing interface. The external data reference interface class path. The InterfaceClass which is created as a reference to the external data. Element is not contained in a CAEXDocument Adds the external data reference libraries used to model external document references. It is checked, if the needed role- and interface libraries are contained in the AMLDocument. If this libs are missing, they are imported from an embedded resource stream. The current Version of the embedded libs is version 1.0.0. The CAEX file of the AMLDocument. caexFile Adds a language attribute to the internal element. If this is the first language attribute, a simple attribute is added. If this is not the first, a language attribute list is used. A former created simple attribute is transferred to a list item. The internal element. The language specification. internalElement Gets the AutomationMLBPRInterfaceClassLib containing all interface classes used to model external document references to the AMLDocument. The CAEX file of the AMLDocument. The AutomationMLBPRInterfaceClassLib caexFile Gets the AutomationMLBPRRoleClassLib containing all role classes used to model external document references to the AMLDocument. The CAEX file of the AMLDocument. The AutomationMLBPRRoleClassLib. caexFile Gets all Internal Element Children from the specified internal element which are document elements. The internal element. Enumeration of InternalElement objects, which are document elements. internalElement Gets the ExternalDataReference InterfaceClass from the AutomationMLBPRInterfaceClassLib. The AutomationMLBPRInterfaceClassLib. The 'ExternalDataReference' InterfaceClass. automationMLBPRInterfaceClassLib Couldn't locate the ExternalDataReference InterfaceClass or Couldn't locate the CAEX file of the InterfaceClass. Gets the 'ExternalDataReference' InterfaceClass from the AML document. The CAEX file of the AML document. The 'ExternalDataReference' InterfaceClass. Gets the 'ExternalData' RoleClass from the AutomationMLBPRRoleClassLib. The AutomationMLBPRRoleClassLib. The ExternalData RoleClass. Couldn't locate the ExternalData role class Gets the ExternalData RoleClass from the AML document. The CAEX file of the AML document. The ExternalData RoleClass caexFile Gets the languages, defined for the document element. If the given internal element is not a document element, the collection is empty. The document element. IEnumerable<System.String>. documentElement Determines whether the specified internal element is a document element. The internal element. true if [is document element] [the specified internal element]; otherwise, false. This class defines a sequence of Attributes which belong to an . A Facet attribute shall be related to an existing attribute of the parent AML object, the identifier is the same name. Facet attributes which are not part of the parent object are not permitted. [IEC 62714-1:2014 8.3 (p.43)] Initializes a new instance of the class. The owner. The constructor function to create an Attribute wrapper. This method is not applicable if the owner is an . The created and appended CAEX object if the owner is not an . Appends a new Attribute with the provided name to the sequence of Attributes, if the conditions for Facet Attributes are fulfilled. Facet Attributes are a subset of Attributes which are defined for the Parent object of an . An Attribute with the specified name can only be added as a Facet Attribute, if the Facets parent has an identical Attribute with that name and the Attribute has not been associated to the Facet before. The name of the Attribute. The created and appended Attribute, if the conditions were fulfilled; otherwise null. Inserts the specified attribute into this sequence. Before the attribute is inserted, it is checked, if it is a valid Facet attribute. The Attribute. optional parameter, if set to true (default) the element is prepended to already existing ones, otherwise it is appended. This method is not applicable for Facet attributes. The created and prepended Attribute, if the owner is not an . This class defines a sequence of ExternalInterfaces which belong to an . A Facet interface shall be related to an existing interface of the parent object, the identifier is the same name. Facet interfaces which are not part of the parent object are not permitted. [IEC 62714-1:2014 8.3 (p.43)] Initializes a new instance of the class. The owner. The constructor function to create an ExternalInterface object. This method is not applicable for ExternalInterfaces, if the owner is an AMLFacet. The created ExternalInterface object, if the method is applied. Appends a new element with the provided name to this sequence. Before the ExternalInterface is appended, it is checked, if the ExternalInterface name is already used for any ExternalInterface of the AMLFacet parent. The name of the new ExternalInterface object. The appended ExternalInterface. Inserts the specified ExternalInterface into this sequence. Before the ExternalInterface is inserted, it is checked, if it is a valid Facet-ExternalInterface. The ExternalInterface. optional parameter, if set to true (default) the element is prepended to already existing ones, otherwise it is appended. This method is not applicable for ExternalInterfaces, if the owner is an AMLFacet. The prepended ExternalInterface. This class is a wrapper for the AutomationML Attribute 'Frame'. To get access to instances of this type, use the implicit type conversion operator, defined for all CAEX objects which are allowed to contain Attribute objects. The frame name The rx name The ry name The rz name The x name The y name The z name The format information for the Frame attribute (don't use this, because all frame values have to be saved as xs:double with standard format) If you want to save values with specific number format, do the string conversion Creates a wrapper for the specified Frame Attribute. It is not checked, if the provided attribute Node represents a valid Frame attribute. An 'Attribute' XML node. Initializes a new instance of the class. It is not checked, if the provided attribute Node represents a valid Frame attribute. If Frame attributes exist, they are initialized using the specified frame values. The initialize. The frame values. Gets and sets the frame values for this FrameAttribute The frame. The Rx-attribute The Ry-attribute The Rz-attribute The X-attribute The Y-attribute The Z-attribute Creates a new FrameAttribute using the specified document. The document. The Frame attribute Determines whether the specified node models an AutomationML Frame-Attribute. The node. true if the specified node is frame; otherwise, false. Gets a value indicating whether the attribute is a Frame attribute. true if the attribute is a frame attribute; otherwise, false. Validates and repairs the frame data types if the data type is not defined or not of type 'xs:double' The node. true if XXXX, false otherwise. Creates a new (sub-)attribute for each frame value if not already existing Event handler for the PropertyChanged event when an attribute value of the frame has been updated The FrameValues object The name of the property that changed A frame holds position information of an object. The object position is defined by values for x, y and z axis as well as rotation values rx,ry and rz in degree, for the x, y and z axis. occurs, when a property changed Notifies the property changed. The information. Rotation around x-axis Rotation around y-axis Rotation around z-axis X position Y position Z position Creating a new FrameValues object with initially all values set to 0.0 Creating a new FrameValues object with the given frame values The x value The y value The z value The rx value The ry value The rz value Gets or sets the rx. The rx. Gets or sets the ry. The ry. Gets or sets the rz. The rz. Gets or sets the x. The x. Gets or sets the y. The y. Gets or sets the z. The z. Class ListAttribute supports List Attributes as it is defined in the BPR 'Modelling of List Attributes in AutomationML' from January 2016 Version 1.0.0 The list type name used as a semantic ref type for unordered list attributes The list type name used as a semantic ref type for ordered list attributes Adds an additional list item attribute to the list attribute. If the List attribute already contains some items, the new item will have the same item type as the already existing items. If this is the first item, the specified itemType is used as the attribute data type. If no itemType is defined, the default data type for the list item is "xs:string". The Item name is automatically set to the Index if the List attribute is an ordered list, otherwise the defined itemName is used. The List attribute. Type of the new item (ignored for a list attribute containing items) Name of the item (ignored for an ordered list attribute). the added list item Attribute. Changes the semantic of the specified attribute and converts to a list attribute. A first item is added to the List attribute which is initialized with valued from the converted attribute. If the Attribute is already a list attribute or the attribute contains child attributes it will not be converted. The attribute. The name of the converted item true, if the conversion was done, otherwise false. Creates a new list attribute for an element which can have attributes. The element. Name of the new list attribute. The items count for initialization of the containing attribute items. Type of the item (unique for all items). Name of the item (ignored if an ordered list is created). When an item attribute is created, the item Name gets the item index added to this name. if set to true the list is an ordered list. The list AttributeType. Determines whether the specified attribute is a list attribute. This can be ordered or unordered. The attribute. true if [is list attribute] [the specified attribute]; otherwise, false. Determines whether the specified attribute is an ordered list attribute. The attribute. true if [is list attribute] [the specified attribute]; otherwise, false. Determines whether the specified attribute is an unordered list attribute. The attribute. true if [is list attribute] [the specified attribute]; otherwise, false. Gets the values of all items in the list attribute The attribute. Enumeration of the list items. Gets the values of all items in the list attribute The attribute. Enumeration of the values of the list items. Changes the semantic of the specified attribute and converts it to a list attribute. If the Attribute is already a list attribute or the attribute contains child attributes it will not be converted. The attribute. If set to true the attribute is converted to an ordered list attribute true, if the conversion was done, otherwise false. Class for modelling meta information as defined in the AutomationML standard. This class was originally designed for AML Versions based on CAEX 2.15. For later versions you can switch to the . It is possible to set SourceDocumentInformation in a CAEX 3.0 document using this class. If this is applied, the MetaInformation is automatically transformed to SourceDocumentInformation. The transformation works in both directions. Initializes a new instance of the class. Initializes a new instance of the class, using a WriterHeader node to populate the properties. The writer header. Initializes a new instance of the class using the information provided from the specified SourceDocumentInformation The SourceDocumentInformation object. time stamp of the AutomationML export The last writing date time. the ID of the writer tool, maybe identical to the tools name if it is not subject of change The writer identifier. the name of the writer tool (e.g. CoDeSys) The name of the writer. ID of the project that contains the source engineering data The writer project identifier. name of the project that contains the source engineering data The writer project title. release information about the writer tool, e.g. "beta12" The writer release. the vendor of the writer tool, e.g. "3S" The writer vendor. the web URL of the vendor - helps to get in contact to the vendor The writer vendor URL. version of the writer tool, e.g. "3.4" The writer version. This class is used to support the AMLGroup concept. An AMLGroup object shall only contain InternalElements which are AMLMirrorObjects and/or further AMLGroup objects. Initializes a new instance of the class. The owner. Function to create an . Inserts the specified InternalElement into this sequence. Before the InternalElement is inserted, it is checked, if it is a valid Group-InternalElement. The InternalElement. optional parameter, if set to true (default) the element is prepended to already existing ones, otherwise it is appended. Gets the MIME. The file extension. List<System.String>Mime List. Gets the extension. Type of the MIME. List<System.String>file extension. Gets the known extensions. Type of the MIME. IEnumerable<System.String> All known file extensions. The Aml.Engine.AmlObjects Namespace contains classes that support the generation and analysis of AutomationML features which are specified in the AutomationML standard, white-papers, best practice recommendation or application recommendations. These features are not covered with the classes in the Aml.Engine.CAEX namespace, which only supports the CAEX standard. Classes in the Aml.Engine.AmlObjects namespace may be derived from the CAEX classes. This class defines specific AutomationML defined attributes to be associated to any AutomationML object, which is allowed to contain attributes. Instances of this class can be constructed with an implicit type conversion operator, defined in the wrapper classes, which implement the interface. Creates a wrapper to access specific AML Attributes for the provides object with attributes The CAEX object. Get the collection of all attributes of this object. Inherited Attributes are not included. The CAEXWrapper of the base CAEXObject which contains the here defined AML attributes Gets the attributes and all nested attributes. Gets a defined FrameAttribute from the collection of the . If no such attribute exists, null is returned. The frame attribute. Gets a defined RefTypeAttribute from the collection of the . If no such attribute exists, null is returned. Gets a defined RefURIAttribute from the collection of the . If no such attribute exists, null is returned. Creates a new Frame attribute for the if no Frame attribute exists. The provided values are used to initialize the Frame attribute values. The frame values for initialization. the new FrameAttributeType. AutomationML defines, that only one Frame attribute can be assigned to an object. If a Frame attribute exists, the frame values are set to the existing attribute. Creates a new RefURI attribute for the object if none exists. The RefURI attribute value is set to the provided Uri. The Uri string. the RefURIAttributeType. AutomationML defines, that only one RefUri attribute can be assigned to an object. If a RefUri attribute exists, the provided Uri is set to the existing attribute. RefType attribute is an Attribute of a ColladaInterface The ref type attribute Initializes a new instance of the class. The initialize. Gets a value indicating whether this instance is a RefURI attribute. true if this instance is a RefURI attribute; otherwise, false. The explicit ref type The implicit ref type Creates a new RefURIAttribute using the specified document. The document. The RefTypeAttributeType attribute Determines whether this is an 'explicit' RefType true if this instance is explicit; otherwise, false. Determines whether this is an 'implicit' RefType true if this instance is implicit; otherwise, false. This class is a wrapper for the AutomationML defined Attribute 'RefURI'. To get access to instances of this type, use the implicit type conversion operator, defined for all CAEX objects which are allowed to contain Attribute objects. The ref Uri attribute Initializes a new instance of the class. An 'Attribute' XML node Gets the pure file path of this external reference attribute without the identifier. The file path. Determines, ob the refUri is equal to the attributes value Gets a value indicating whether this instance is a RefURI attribute. true if this instance is a RefURI attribute; otherwise, false. Gets the referenced node. The referenced node. Gets or sets the URI. The URI. Creates a new RefURIAttribute using the specified document. The document. The RefURIAttribute attribute Determines whether [is absolute URI]. true if [is absolute URI]; otherwise, false. Determines whether this instance is file. true if this instance is file; otherwise, false. The CAEX exception class. Initializes a new instance of the class. The , which contains the serialized object data for the thrown exception. The , containing context information about the source or destination. Initializes a new instance of the class. The message describing the error. Initializes a new instance of the class. The error message explaining the cause of the exception. The exception that caused the current exception, or a null reference ( in Visual Basic) if no inner exception is specified. 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. this is any CAEX object type Creates a new XML node and assigns the provided name to the CAEX 'Name' attribute. The owner. The created XML node. owner Initializes a new instance of the class. The owner. The CAEX element name. The constructor function to create a wrapper. Initializes a new instance of the class with condition. Gets the first CAEX object with this name from the sequence of elements. the name of the CAEX object. a CAEX object Gets the CAEX object which can be identified with a CAEX path, where the path parts are defined in the provided array of names. The names extracted from a CAEX path. Creates a new CAEX object with the specified name and appends it to the sequence. the name of the CAEX object. If a service is registered, the name may be altered to be unique in this sequence. the created CAEX object. Inserts the specified element into this sequence. If nothing is specified the element is added. If the asFirst is set to true, the element is prepended to already existing ones. If a UniqueNameService can be located, the name of the inserted element is changed to be unique. The CAEX object. optional parameter, if set to true (default) the element is prepended to already existing ones, otherwise it is appended. The inserted CAEX object. If the provided CAEX object already belongs to a sequence, a copy of the CAEX object is inserted and returned as the result. If the provided CAEX object already has an associated parent, a deep copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. caexObject Creates a new CAEX object with the specified name and prepends it to the sequence. the name of the CAEX object. If a service is registered, the name may be altered to be unique in this sequence. the created CAEX object. This class can be used for a type based access to the value attributes of a CAEX element. It is required, that the is set according to the XSD Schema types. If the AttributeDataType is not defined, the type xs:string is assumed and the value is not encoded/decoded. CAEX Elements, which use this feature are , and and their derivations. The interface is implemented by these classes. The type based conversion is implemented, using XML specific decoding and encoding methods, defined in the .NET class . The decoded/encoded value for an attribute can be accessed via the property. prevents public instantiation Gets a default decoded value according to the defined AttributeDataType Gets a friendly string of the Attribute value. This string is not in any case equal to the attribute value string, which is always an encoded string, according to the AttributeDataType. The conversion format used to convert the value to its string representation is fix and cannot be changed. The friendly string. Gets the Attribute, which defines the AttributeDataType. Gets the .NET Type code which is converted from the XSD Schema attribute defined in the . Gets and sets the value attribute using the type specific XML conversion method. If no AttributeDataType is defined, the value is encoded / decoded as it is. Gets the Element, which contains the Attribute value. Gets the Name of the defining value attribute. Translates an XSd schema type to an XmlTypeCode. Type based comparison of attribute values. 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. Determines if the type code derived from the Attribute datatype is a date time type. The following type codes are recognized as date time types: The AttributeDataType 'duration' is not marked as a DateTime Type, because it should be transformed into a CLR type. true, if the type code is a date time type; false otherwise. Determines if the type code derived from the Attribute datatype is a numeric or boolean type. For a lit of numeric types . true, if the type code is a numeric or boolean type; false otherwise. Determines if the type code derived from the Attribute datatype is a numeric type. The following type codes are recognized as numeric types: true, if the type code is a numeric type; false otherwise. Determines if the type code derived from the Attribute datatype defined a part of a date. The datatype ushort is used for a date part. The following type codes are recognized as date parts: true, if the type code is a date part; false otherwise. Determines if the type code derived from the Attribute datatype is a string type. The following type codes are recognized as string types: true, if the type code is a string type; false otherwise. Determines if the type code derived from the Attribute datatype is a binary type. Checks for all string data types, if the provided string is valid according to the defined data type . The supported types are : Gets the Decoded Value of the Attribute. This may be null, if no attribute value is defined. Gets the encoded value which can be used to set the attribute value in an XML encoded way. the type based value Writes the encoded value into the CAEX document. If no AttributeDataType is set, the value is encoded as a string. the type based value Extension methods for class . Appends a new RefSemantic object with the defined semantics to the specified CAEX object. The CAEX object A string, defining some external defined semantic source. The new RefSemantic object Determines whether the specified Attribute is referenced by other Attribute objects called 'Mirrors'. The element. true if the specified element is a 'Master'-Attribute; otherwise, false. This class provides extension methods for all types of CAEX objects. Gets the associated CAEX schema manager of the CAEX object. The CAEX object. The SchemaManager associated to the CAEX object. caexObject Finds the ancestors of the provided CAEX object which have the given type. CAEX element type of the ancestors. The CAEX object. The ancestors of the CAEX object which are of the given type. caexObject Gets the CAEX document which contains this CAEX object. The CAEX object. The CAEX document, containing the CAEX object. caexObject Gets the CAEX file which contains this CAEX object. The CAEX object. The CAEX file, containing the CAEX object. caexObject Gets the associated CAEX schema of the CAEX object. The CAEX object. The Schema associated to the CAEX object. caexObject Creates a CAEX object of the given type from the specified XML element. CAEX element type. The XML node. CAEX object in the given type. Finds the descendants of the provided CAEX object which are of the given type. CAEX element type of the descendants. The CAEX object. The descendants of the CAEX object which are of the given type. caexObject Finds the descendants of the provided CAEX object which are of the given type. . The CAEX object. CAEX element type of the descendants. The descendants of the CAEX object which are of the given type. caexObject Finds the descendants of the provided CAEX object which are of the given type. CAEX element type of the descendants. The CAEX object. if true, the provided caex object is included in the enumeration. The descendants of the CAEX object which are of the given type. caexObject Finds the CAEX object with the specified id and the specified Type. CAEX element type of the searched CAEX object. CAEX object, used to identify the document for the search. Id of the CAEX object. CAEX object with the given id or null, if not found. caexObject Finds the CAEX object with the specified CAEX path and the specified Type. CAEX element type of the searched CAEX object. CAEX object, used to identify the document for the search. The CAEX path of the searched CAEX object. CAEX object with the given path or null, if not found. caexObject Finds the first ancestor of the specified CAEX object in the given Type. CAEX element type of the ancestor. The CAEX object. First ancestor of the specified CAEX object or null, if no ancestor with this Type exists. caexObject Finds the first ancestor of the specified CAEX object with the given Tag name The CAEX object. Name of the tag. First ancestor of the specified CAEX object or null, if no ancestor with this Tag name exists. caexObject Finds the first ancestor of the specified CAEX object which fulfils the specified predicate The CAEX object. The condition for the ancestor object. First ancestor of the specified CAEX object or null, if no ancestor meeting the condition exists. caexObject Tries to get a CAEX parent with the specified Type of the provided caexObject. If the parent is not assignable to the provided type, the result is null. The expected type of the parent. The CAEX object. The parent with the specified Type or null. caexObject Gets the Library which contains this CAEX object. The CAEX object. The containing Library. caexObject Gets a names for the specified caex wrapper object. If the specified object is a , the Name is returned; otherwise the TagName of the CAEX item. The caex object. Adds an new Copyright node to this object if it doesn't exists. The CAEX object. A new Copyright node Adds an new Description node to this object if it doesn't exists. The CAEX object. A new Description node Adds an new Version node to this object if it doesn't exists. The CAEX object. A new Version node This class defines extension methods for the class. Tries to locate a CAEX object from the specified ID. If the ID 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 identifier. if set to true tries to resolve an alias reference with an ExternalReferenceResolver service. The CAEXObject if it is found; otherwise null. Tries to locates a CAEX object from the specified CAEX path. 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 CAEX path. if set to true tries to resolve an alias reference with an ExternalReferenceResolver service. The CAEXObject if it is found; otherwise null. Extension methods for the CAEX element "ExternalInterface" Determines whether the specified ExternalInterface is referenced by other ExternalInterface objects called 'Mirrors'. The ExternalInterface CAEX element. true if the specified element is a 'Master'-ExternalInterface; otherwise, false. Determines whether the specified ExternalInterface is related to other ExternalInterfaces using InternalLinks. The external interface. true if the specified external interface is related; otherwise, false. Gets all ExternalInterface objects from the specified , which are derived from an InterfaceClass, identified with the given . The object with external interface. The interface class path. An enumeration of selected ExternalInterfaces of the given object. Gets the related external interfaces of the specified ExternalInterface connected with InternalLinks. Either the or the of the InternalLink is equal to the specified ExternalInterface. The ExternalInterface CAEX element. An enumeration of related ExternalInterface elements Gets the related instances (SystemUnitClass or InternalElement) of the specified ExternalInterface connected with InternalLinks. Either the or the of the InternalLink is equal to the specified ExternalInterface. The ExternalInterface CAEX element. An enumeration of related Instances Gets the related InternalElements of the specified ExternalInterface connected with InternalLinks, which have a role reference to the provided . Inheritance is considered here. Either the or the of the InternalLink is equal to the specified ExternalInterface. The ExternalInterface CAEX element. The role class path. An enumeration of selected related InternalElements. Extension methods for all objects with ExternalInterface collections. Determines whether an object with ExternalInterfaces has an associated reference to the specified InterfaceClass. If inheritance relations between InterfaceClasses should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified InterfaceClass is either identical to a referenced InterfaceClass or a referenced InterfaceClass is derived from the specified InterfaceClass. The InterfaceClass object. if set to true inheritance relations are regarded (default is false). true if this CAEX Element object has an associated reference to the specified InterfaceClass; otherwise, false. InterfaceClass This sample shows how to call the method using a standard base InterfaceClass from the var amlInterfaceClassLib = AutomationMLInterfaceClassLibType.InterfaceClassLib (myDocument); InternalElementType internalElement; ... internalElement.HasInterfaceClassReference (amlInterfaceClassLib.COLLADAInterface); Determines whether this Object with ExternalInterfaces has an associated InterfaceClass reference with the specified CAEX path interface reference. If inheritance relations between interface classes should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified InterfaceClass is either identical to a referenced InterfaceClass or a referenced InterfaceClass is derived from the specified InterfaceClass. The interface reference. if set to true inheritance relations are regarded (default is false). true if this object has an associated InterfaceClass reference with the specified CAEX path interface reference; otherwise, false. interfaceReference This sample shows how to call the method using a standard base InterfaceClass path from the InternalElementType internalElement; ... internalElement.HasInterfaceClassReference (AutomationMLInterfaceClassLib.COLLADA); All external Interfaces of this Object with ExternalInterfaces with an associated InterfaceClass reference with the specified CAEX path interface reference. If inheritance relations between interface classes should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified InterfaceClass is either identical to a referenced InterfaceClass or a referenced InterfaceClass is derived from the specified InterfaceClass. The interface reference. if set to true inheritance relations are regarded (default is false). All external interfaces with an associated InterfaceClass reference with the specified CAEX path interface reference. interfaceReference Extension methods for the SystemUnitClass element and its defining class Gets the supported Roles and the inherited roles from base classes. List<SupportedRoleClassType>. Inserts the provided SystemUnitClass object as a subordinate child into this SystemUnitClass The SystemUnitClass ancestor. The SystemUnitClass Adding a new SystemUnitClass to this SystemUnitFamily. The SystemUnitFamily object Name of the SystemUnitClass element. A new SystemUnitClass Gets all descendant Objects in the SystemUnitClass. SystemUnitClasses on all levels are returned. The SystemUnitClass. An enumeration of all descendant SystemUnitClass objects. Extension methods for the SystemUnitClassLib element and its defining class Inserts the provided SystemUnitClass into this SystemUnitClass library. The system unit class library. The system unit class. Adding a new SystemUnitClass to this SystemUnitClassLib. The SystemUnitClassLib object Name of the SystemUnitClass element. A new SystemUnitClass Gets all descendant Objects in the SystemUnitClassLib. SystemUnitClasss on all levels are returned. The SystemUnitClassLib. IEnumerable<SystemUnitFamilyType>. Extension methods for the RoleClassLib element and its defining class Inserts the provided RoleClass into this RoleClass library. The role class library. The role class. Adding a new RoleClass to this RoleClassLib. The RoleClassLib object Name of the RoleClass element. A new RoleClass Gets all descendant Objects in the RoleClassLib. RoleClasss on all levels are returned. The RoleClassLib. Enumeration of the RoleClass descendants. Extension methods for an InterfaceClassLib element and its defining class . Inserting an InterfaceClass element to the InterfaceClassLib object. The InterfaceClassLib object The InterfaceClass object to insert Gets all descendant Objects in the InterfaceClass Library. InterfaceClasses on all levels are returned. The InterfaceClassLib object IEnumerable<InterfaceFamilyType>. A new InterfaceClass is added to the specified InterfaceClassLib object. The InterfaceClassLib object The name of the InterfaceClass to add The new InterfaceClass element Extension methods for an InterfaceClass element and its defining class . Create an InterfaceClass from this interface (e.g. ExternalInterface). An InterfaceClass is of type InterfaceFamilyType and may contain InterfaceFamilyTypes as child elements. InterfaceFamilyType. Inserting the new InterfaceClass element to the provided InterfaceClass object. The InterfaceClass object The InterfaceClass object to insert Gets all descendant Objects of the InterfaceClass. InterfaceClasses on all levels are returned. The InterfaceClass object IEnumerable<InterfaceFamilyType>. A new InterfaceClass is added to the specified InterfaceClass object. The InterfaceClass object The name of the InterfaceClass to add The new InterfaceClass element Extension methods for an Mapping element and its defining class . Appends the AttributeNameMapping object to the defined Mapping object The Mapping object The AttributeNameMapping. Appends the InterfaceNameMapping object to the defined Mapping object The Mapping object The interface name mapping. Use of this method is restricted to CAEX Version 2.15. Adding a new AttributeNameMapping to the defined Mapping object. An AttributeNameMapping allows the definition of the mapping between attribute names of corresponding RoleClasses and SystemUnitClasses. The Mapping object The attribute name of the SystemUnitClass The attribute name of the RoleClass The new AttributeNameMapping element Adding a new InterfaceIDMapping to the defined Mapping object. An InterfaceIDMapping allows the definition of the mapping between Interfaces of corresponding RoleClasses and SystemUnitClasses. The Mapping object The ID of the interface in the SystemUnitClass The ID of the interface in the RoleClass The new InterfaceIDMapping element Use of this method is restricted to CAEX Version 3.0 and above. Adding a new InterfaceIDMapping to the defined Mapping object. An InterfaceIDMapping allows the definition of the mapping between Interfaces of corresponding RoleClasses and SystemUnitClasses. The Mapping object The interface in the SystemUnitClass The interface in the RoleClass The new InterfaceIDMapping element Use of this method is restricted to CAEX Version 3.0 and above. Adding a new InterfaceNameMapping to the defined Mapping object. An InterfaceNameMapping allows the definition of the mapping between Interface names of corresponding RoleClasses and SystemUnitClasses. The Mapping object The name of the interface in the SystemUnitClass The name of the interface in the RoleClass The new InterfaceNameMapping element Use of this method is restricted to CAEX Version 2.15. Extension methods for the RoleClass element and its defining class . Inserts the provided RoleClass as a subordinate child to this RoleClass. The role class ancestor. The role class to be inserted. Adding a new RoleClass to this RoleClassFamily. The RoleClass object Name of the RoleClass. A new RoleClass Gets all descendant Objects in the RoleClass. RoleClasses on all levels are returned. The RoleClass object. Enumeration of all descendant RoleClass objects. The Aml.Engine.CAEX.Extensions Namespace contains extension methods for most of the specific CAEXObject classes. The most of these extension methods are methods which are obsolete and only kept to be downward compatible to AMLEngine the versions prior to v5.0.0. For most of these methods, better alternatives are provided either via a specific service or are available in the namespace. Extension methods for all objects with Attribute collections. Copies all attribute of the source object with attributes to the target object including children the target object the source object true if the copy process should include the attribute values, not recommended for classes nothing Gets the first attribute with the specified name from the attribute collection of the CAEX object. The CAEX object. The attribute name. Gets the Attribute with the provided name. Appends a new Attribute object with the defined name to the specified CAEX object. The CAEX object the name of the new Attribute object The new Attribute Sets the value for the attribute with the specified name from the attribute collection of the CAEX object. If no attribute with that name exists, it is created. the CAEX object with an Attribute collection. The attribute name The attribute value The modified attribute. Modifies the attribute with the specified name from the attribute collection of the CAEX object, using the provided values. If no attribute with that name exists, it is created. parent object attribute name attribute value attribute unit attribute data type The modified attribute. Modifies the attribute with the specified name from the attribute collection of the CAEX object, using the provided values. If no attribute with that name exists, it is created. parent object attribute name attribute value attribute defaultValue attribute description attribute unit attribute data type The modified attribute Modifies the attribute with the specified name from the attribute collection of the CAEX object, using the provided values. If no attribute with that name exists, it is created. Sets the AttributeDataType to xs:double parent object attribute name attribute value of type double The modified attribute Modifies the attribute with the specified name from the attribute collection of the CAEX object, using the provided values. If no attribute with that name exists, it is created. Sets the AttributeDataType to xs:double parent object attribute name attribute value of type double attribute defaultValue attribute description attribute unit The modified attribute Extensions for all classes which implement the interface. Deletes the inherited element. According to CAEX [DIN EN 62424:2008-08 A.2.4.1 (pp.48-49)], deleting of inherited properties is possible by redefinition of the corresponding data again in the child object with the ChangeMode attribute set to "deleted". The class with base class. Name of the element which should be deleted. Type of the element which should be deleted. true, if an inherited property was found and could be deleted; otherwise false. Gets a list of Attribute objects that are inherited from base classes. The List will also contain the elements own Attribute objects, if the parameter is set (default). If an Attribute is overwritten, only the last defined is contained. The class with a possible base class reference for inheritance. if set to true includes the elements own ExternalInterface objects; otherwise not A list of Attribute objects Gets a list of Attribute objects that are inherited from base classes. The List will also contain the elements own Attribute objects, if the parameter is set (default). If an Attribute is overwritten, only the last defined is contained. The class with a possible base class reference for inheritance. if set to true includes the elements own ExternalInterface objects; otherwise not A list of Attribute objects Gets a list of ExternalInterface objects that are inherited from base classes. The List will also contain the elements own ExternalInterface objects, if the parameter is set (default). If an ExternalInterface is overwritten, only the last defined is contained. The class with a possible base class reference for inheritance. if set to true includes the elements own ExternalInterface objects; otherwise not A list of ExternalInterface objects Gets a list of ExternalInterface objects that are inherited from base classes. The List will also contain the elements own ExternalInterface objects, if the parameter is set (default). If an ExternalInterface is overridden, only the last defined is contained. The result also contains the nested interface descendants of an external interface. The class with a possible base class reference for inheritance. if set to true includes the elements own ExternalInterface objects; otherwise not A list of ExternalInterface objects Gets a collection of Attribute objects that are inherited from base classes. The own attributes are included in the enumeration. The class with a possible base class reference for inheritance. if set to true includes the own attributes. A collection of Attribute objects Gets a collection of InternalElement objects that are inherited from base classes. As default, the own InternalElements are included in the enumeration. The class with a possible base class reference for inheritance. if set to true includes the own Internal Elements. A collection of InternalElement objects Gets a collection of ExternalInterface objects that are inherited from base classes. The class with a possible base class reference for inheritance. if set to true includes the own interfaces. A collection of ExternalInterface objects Gets a collection of objects of the defined InheritedElement-Type that are inherited from base classes. The type of the inherited element. the base class containing the element if set to true the own elements are included. An enumeration of all inherited elements. Determines, if the specified element is an inherited element. To be an inherited element, it has to be an AttributeType, ExternalInterfaceType or InternalElementType element. the class providing the inheritance relation the element to test true, if a base class contains the element Determines, if an element of a class with an inheritance relation to a base class is an overridden element, what means a base class contains an element which is considered as equal to the provided element. In most cases, equality is defined by equality of the element names. the base class containing the element the element to test true, if an element of a class with an inheritance relation to a base class is an overridden element true if the specified element is overridden; otherwise, false. Determines, if an element of a class with an inheritance relation to a base class has an overridden element with the specified name and type, what means a base class contains an element which name is equal to the provided elementName. the base class containing the element Name of the element. Type of the element. The overridden element if it exists; otherwise null. Name of the referenced Class without path information. Any object with a class reference. Name of the referenced Class, if exists; otherwise string.Empty Name of the referenced SystemUnitClass without path information. The internal element. Name of the referenced Class, if exists; otherwise string.Empty Name of the referenced InterfaceClass without path information. The interface Class. Name of the referenced Class, if exists; otherwise string.Empty Deletes the inherited element. According to CAEX [DIN EN 62424:2008-08 A.2.4.1 (pp.48-49)], deleting of inherited properties is possible by redefinition of the corresponding data again in the child object with the ChangeMode attribute set to "deleted". The class with base class. Name of the element which should be deleted. Type of the element which should be deleted. true, if an inherited property was found and could be deleted; otherwise false. Gets a list of Attribute objects that are inherited from base classes. The List will also contain the elements own Attribute objects, if the parameter is set (default). If an Attribute is overwritten, only the last defined is contained. The type of the CAEX class. The class with a possible base class reference for inheritance. if set to true includes the elements own ExternalInterface objects; otherwise not A list of Attribute objects Gets a list of ExternalInterface objects that are inherited from base classes. The List will also contain the elements own ExternalInterface objects, if the parameter is set (default). If an ExternalInterface is overwritten, only the last defined is contained. The type of the CAEX class. The class with a possible base class reference for inheritance. if set to true includes the elements own ExternalInterface objects; otherwise not A list of ExternalInterface objects Gets a collection of Attribute objects that are inherited from base classes. The own attributes are included in the enumeration. The type of the CAEX class. The class with a possible base class reference for inheritance. if set to true [include own]. A collection of Attribute objects Gets a collection of InternalElement objects that are inherited from a base class. The own InternalElements are included in the enumeration. The type of the CAEX class. The class with a possible base class reference for inheritance. if set to true [include own]. A collection of InternalElement objects Gets a collection of ExternalInterface objects that are inherited from base classes. Type of the CAEX class. The class with a possible base class reference for inheritance. if set to true the interfaces of the provided class are included. A collection of ExternalInterface objects Gets a collection of objects of the defined InheritedElement-Type that are inherited from base classes. The type of the inherited element. The type of the class. the base class containing the element if set to true own elements are included. An enumeration of all inherited elements. Determines, if an element of a class with an inheritance relation to a base class is an overridden element, what means a base class contains an element which is considered as equal to the provided element. In most cases, equality is defined by equality of the element names. the base class containing the element the element to test true, if an element of a class with an inheritance relation to a base class is an overridden element Determines, if an element of a class with an inheritance relation to a base class has an overridden element with the specified name and type, what means a base class contains an element which name is equal to the provided elementName. the base class containing the element Name of the element. Type of the element. The overridden element if it exists; otherwise null. Factory to create CAEX-Elements according to a provided Type. Factory method to create a new CAEX object in the provided CAEX document. The CAEX element is derived from the specified CAEX object Type. To insert the new CAEX object into the document an appropriate insertion method has to be used. The CAEX object Type. The CAEX document. The created CAEX object. document Factory method to create a new CAEX object in the provided CAEX document. The CAEX element is derived from the specified CAEX object Type. To insert the new CAEX object into the document an appropriate insertion method has to be used. The CAEX document. Name of the CAEX tag. The created CAEX object. document This class defines extension methods for the CAEXFile Element Imports the provided library as a new library to this caexFile. If the library contains external references which are not resolvable in the target document, the needed external references are copied from the source document also. the CAEXFile the library which should be imported the imported library. Importing elements with different schema's is not supported Performs a document wide fast search and returns a CAEXObject given by its ID. the CAEXFile the ID ob the object which is subject of the search Optional parameter to enable this methods (default=false), to search in referenced documents also. Referenced Documents can only be considered, if they are loaded via the ExternalReference. the found CAEXObject or null if not found External references are resolved in the search if a service is registered. Performs a document wide fast search and returns an object of type 'T' given by its ID. Type of the expected CAEX object. the CAEX file the ID ob the object which is subject of the search Optional parameter to enable this methods (default=false), to search in referenced documents also. Referenced Documents can only be considered, if they are loaded via the ExternalReference. the found CAEXObject or null if not found External references are resolved in the search if a service is registered. Performs a document wide fast search and returns a CAEXObject given by its Path, e.g. "plant/unit" or -in case the document is based on CAEX 2.15 - "GUID:Interface". the CAEXFile the path of the object which is subject of the search new optional parameter to enable this method (default=false), to search in referenced documents also. the found CAEXObject or null if not found External references are resolved in the search if a service is registered. Performs a document wide fast search and returns an object of type 'T' given by its Path, e.g. "plant/unit" or -in case the document is based on CAEX 2.15 - "GUID:Interface". Type of the expected CAEX object. the CAEX file the path of the object which is subject of the search new optional parameter to enable this method (default=false), to search in referenced documents also. the found CAEXObject or null if not found External references are resolved in the search if a service is registered. Imports the provided library into the AttributeTypeLib collection of this CAEX file. the CAEX file. The source AttributeTypeLib object. The imported AttributeTypeLib. Imports the provided source instance hierarchy into the InstanceHierarchy collection of this CAEX file. the CAEX file. The source InstanceHierarchy object. The imported InstanceHierarchy. Imports the provided library into the InterfaceClassLib collection of this CAEX file. the CAEX file. The source InterfaceClassLib. The imported InterfaceClassLib. Imports the provided library into the RoleClassLib collection of this CAEX file. the CAEX file. The source RoleClassLib. The imported RoleClassLib. Imports the provided library into the SystemUnitClassLib collection of this CAEX file. the CAEX file The source SystemUnitClassLib. The imported SystemUnitClassLib. Inserts the ExternalReference into the CAEX file. The CAEX file. The ExternalReference object. Insert an existing InstanceHierarchy to this CAEX file as the last InstanceHierarchy. The InstanceHierarchy to insert. The CAEX file. Insert an existing InterfaceClassLib to this CAEX file as the last InterfaceClassLib. The CAEX file. The InterfaceClassLib to insert. Insert a RoleClassLib to this CAEX file as the last RoleClassLib. The CAEX file. The RoleClassLib to insert. Append a SystemUnitClassLib to this CAEX file as the last SystemUnitClassLib. The CAEX file. The SystemUnitClassLib to insert. A new ExternalReference node is added to the CAEX file. the CAEX file. The path value of this external reference. The alias value of this external reference. A new ExternalReference Adding a new InstanceHierarchy with the given name to this CAEX file. The Instance Hierarchy is always added as the last Instance Hierarchy. the CAEX file. The name of the new InstanceHierarchy. A new InstanceHierarchy Adding a new InterfaceClassLib to this CAEX file. the CAEX file The name of the new InterfaceClassLib. A new InterfaceClassLib Adding a new RoleClassLib to this CAEX file. the CAEX file. The name of the RoleClassLib. A new RoleClassLib Adding a new SystemUnitClassLib to this CAEX file. the CAEX file The name of the new SystemUnitClassLib. The new SystemUnitClassLib. Traversal method for a hierarchical tree, with identical childSelector for all tree nodes. The method uses a pre-order algorithm without recursion for the deep traversal of the complete tree. the CAEXFile The source. The child selector. IEnumerable. This class defines extension methods for the CAEXObject Element This method sets a description. If no description exists, it is created. the CAEX object the description Gets the full node path of the provided CAEX object, which includes the object names of all ancestor hierarchy levels and the name of the object itself. The CAEX object. Please note that this method returns a different result than the method, which returns the CAEX path used for referencing objects. The path to the XML node. Method to add a new element 'AdditionalInformation' to a CAEXObject The CAEX Object Insertion position the new element Generic method to add a new element with the provided name of a specific Type to a CAEXSequence. The type of the added object The CAEX Sequence The name of the new element Insertion position the wrapper of type T containing the new element Static class supporting the generation and analysis of CAEXPath's The alias separator used after Alias The attribute separator used before attribute hierarchies. CAEX 3.0 doesn't define a special attribute separator character any more The interface separator used before an interface CAEX 3.0 doesn't define a special interface separator character any more The object separator used between object hierarchies The begin of a path part, used if the object name contains a Path Separator The escaped , used in an object name, if it contains this character The end of a path part, used if the object name contains a Path Separator The escaped , used in an object name, if it contains this character The end of a path part, used if the object name contains a Path Separator Gets the alias name from a reference. If the reference is not a reference with an alias, the return value is string.Empty. The class reference. The CAEX schema version. The Alias Name without the Ending AliasSeparator or string.empty Builds the Reference-Path which includes all Names of CAEXObjects in the given list of CAEX objects. The CAEX objects. The CAEX Path, build from the object list. Builds the Reference-Path which includes all Names of CAEXObjects in the given list of elements. The XML nodes of the CAEX objects. The CAEX Path, build from the element XML nodes. Builds the Reference-Path which includes all names of CAEX objects in the given name array. The names, which build the path parts. The CAEX schema version. The CAEX path created from the names array. Determines whether the specified path can be normalized because it contains path part delimiters The path. true if this instance can normalize the specified path; otherwise, false. Determines whether the specified name contains path separator chars. The name. The document. true if the specified name contains path separator chars; otherwise, false. Gets the ID of the master parent instance from a reference defined in an Attribute mirror object in the specified CAEX document. The reference from the Attribute mirror object. The document. if set to true, if the reference is an Attribute reference in a mirror. The master parent ID Only valid since CAEX Version 3.0 Gets the InternalElement ID from a reference defined in an InternalLink object. The reference from the InternalLink object. if set to true [is interface reference]. The InternalElement ID Only valid for CAEX Version 2.15 Check, if the provided reference is a reference to an attribute of an ExternalInterface, using the ID of an ExternalInterface. The reference. The CAEX document. if set to true a valid ID is used to reference an ExternalInterface. This method only recognizes GUIDs in a reference. the normalized ID if the reference contains an ID Builds the reference Path for an Interface-Reference in an InternalLink The system unit class. The interface class. System.String. gets the reference path for an Interface-Reference in an InternalLink The interface Parent (SystemUnitClass or InternalElement) The external Interface. System.String. Determines whether the specified part of a path is an alias. The path part. true if the specified path part is an alias; otherwise, false. Determines, if the path is an Attribute reference. This method is able to distinguish if an UUID is combined with a CAEX path The document, where the reference is tested. The attribute reference. true, if the provided reference is an attribute reference. This method should only be used for CAEXDocuments based at least on CAEX Version 3.0 Determines whether the specified object reference is an alias reference to an ID in the specified document The object reference. The document. Optional parameter to specify the type of the reference. If not set, all possible types are checked true if the specified object reference is an alias reference to an ID; otherwise, false. enumeration type specifying possible ID Reference types ID reference to an attribute ID reference to an interface ID reference to an internal element all possible references Determines, if the path is build using an interface separator. This method is able to distinguish if an interface separator char is used in an interface name and is escaped This method should only be used for CAEXDocuments based on CAEX Version 2.15 The class reference. true, if the provided class reference is an interface reference. Determines whether the specified classReference is an alias reference to the provided AutomationML class path. The class reference. The automation ml class path. The CAEX schema version. true if [is object reference with alias] [the specified class reference]; otherwise, false. Determines whether the specified reference is defined with an alias separator. The class reference string. The CAEX schema version. true if the reference is a reference with an alias; otherwise, false. Determines whether the ID is valid to be used in an attribute mirror reference. The identifier string. The document. true if the ID is valid to be used in an attribute mirror reference; otherwise, false. Determines whether the specified string can represent an ID The identifier string. true if the specified identifier string can be used as an identifier; otherwise, false. This method should only be used for testing strings which are retrieved from an attribute where an ID is a valid value. It is not possible to distinguish a Name from an ID, because it exists neither a defined syntax for object names nor for object IDs. Only if the UUID format is used to represent an ID the ID format is recognized. Normalization of a CAEXPath. A normalized path is freed of all path part delimiters '[' and ']' in case that there is no path part name containing a path separator character like '/'. The path. if set to true [is normalized]. A CAEX schema version. the normalized path Since CAEX Version 3.0 a '.' and ':' is no longer used as a path separator. Names, containing such a character will be normalized in Version 3.0 also. Returns the Path Part object names of a CAEX Path. If any object name contains a path separator character the path part is enclosed in square brackets '[', ']'. The square brackets are removed from the object name in the returned result (default behaviour). If keepPathPartBrackets is set to true, square brackets are not removed. The full CAEX path. The CAEX schema version. false (default); if true, object names may be enclosed in square brackets Array of path part names Returns the Path Part object names of a CAEX Path with the Separator Char at the Names End as an array of strings. The full CAEX path. The CAEX schema version. optional parameter, specifying that only the alias char should be kept. Array of path part names. Returns the Path Part object names of a CAEX Path with the Separator Char at the Names End as an array of strings. The full CAEX path. The CAEX schema version. optional parameter, specifying that only the alias char should be kept. Array of path part names. Builds the Path Part for any CAEXObject, which may be part of a CAEX Path. The Path Part is build from the object Names and the Part - Syntax, according to chapter 2.8 of the CAEX guide: If defined separators are potentially a valid part of object names, the following syntax shall be used: all path elements shall be separated by square brackets “[“ name “]”. This allows for using the original names and the defined separators at the same time. If the conflict case arises that the described brackets are part of object names, the brackets in the object name shall be escaped by means of common XML escape-sequences. If a name contains any Path part - Separator like '[' or ]' this character will be escaped with '\'. The CAEX element which should be part of the Path. if true, the path part is build with the ID-Attribute The Element Representation in the CAEX Path transforms the name of the defined element to a path Part (special characters are escaped). The element. if set to true use the Elements ID, otherwise use its name. System.String. Transforms a name to a path Part (special characters are escaped). Since CAEX Version 3.0 the Path separator characters '.' and ':' are eliminated. The name. This method has different implementations according to the used CAEX Version The transformed name that can be used as a path part. Returns the Path Part object names of a CAEX Path. If any object name contains a path separator character the path part is enclosed in square brackets '[', ']'. The square brackets are removed from the object name in the returned result (default behaviour). If keepPathPartBrackets is set to true, square brackets are not removed. The full CAEX path. The CAEX schema version. false (default); if true, object names may be enclosed in square brackets IEnumerable<System.String>. Returns the Path Part object names of a CAEX Path with the Separator Char at the Names End The full CAEX path. The CAEX schema version. optional parameter, specifying that only the alias char should be kept. IEnumerable<System.String>. Returns the Path part separator for an element, which should be put before that element in a Path Since CAEX Version 3.0 the PathPartSeparator is element independent and always the . The CAEX-Element. The Path Separation character for the given element Returns the Path part separator for an element, which should be put before that element in a Path The Xml-Node of the CAEX-Element. The Path Separation character for the given element Removes the alias from the provided path if the path is . The path. The path without the alias part. Gets the defined Separator characters according to the provided schema version. The schema. The defined separator characters, which can be used in a CAEX path. Gets the Attribute Path from a reference defined in an mirror Attribute object in the specified CAEX document. The reference from the Attribute object. The document. if set to true if the reference is an Attribute reference in a mirror. Attribute Path Only valid since CAEX Version 3.0 Gets the ExternalInterface Name from a reference defined in an InternalLink object. The reference from the InternalLink object. if set to true [is interface reference]. ExternalInterface Name Only valid for CAEX Version 2.15 Determines whether the specified part character is separator. The part character. true if the specified part character is separator; otherwise, false. Determines whether the specified part character is separator. The part character. true if the specified part character is separator; otherwise, false. returns all path - parts build from the element names of the specified elements in the collection. The elements. List<System.String>. returns all path - parts build from the element names of the specified elements in the collection. The elements. List<System.String>. Extension class for collections to be used in LINQ-Expressions Wraps this object instance into an IEnumerable<T> consisting of a single item. Type of the object. The instance that will be wrapped. An IEnumerable<T> consisting of a single item. Extension methods to navigate the inheritance relations Gets the dictionary of derived classes. The dictionary has to be filled manually . This class can be used to improve the performance of the method. If your class library in the AML document is stable, it is possible to add the base classes, which are of interest, into the dictionary. After a class is registered, all derived classes of this class are fast accessible. If not longer needed or if the class library needs an update, the dictionary entries should be updated or removed. Adds the class derivations for the specified class path to the dictionary. The document. The class path. Element name of the class. Determines, if the specified class is directly or indirectly (across multiple generations) a descendant of the class or identical to it, which is uniquely identified with the specified baseClass path. The base class path or the referenced class path may contain alias identifiers. If alias identifiers are present, the method tries to load the external referenced document. The type of the CAEX class. The class with reference. The base class path. true if the class is derived, false if it is not. If no value is returned, some references could not be resolved to get the answer. Determines, if the class, specified with the given class path is directly or indirectly (across multiple generations) a descendant of the class or identical to it, which is uniquely identified with the specified baseClass path. The base class path or the referenced class path may contain alias identifiers. If alias identifiers are present, the method tries to load the externally referenced document. The type of the CAEX class. The document where the classes are searched The class path of the tested class. The base class path. true if the class is derived, false if it is not. If no value is returned, some references could not be resolved to get the answer. Determines, if the specified class is directly or indirectly (across multiple generations) a descendant of the specified base class or identical to it. This method can be used, if the classes are distributed over different CAEX documents, the documents should be referenced by external references and alias references. The type of the CAEX class. The class with reference. The base class. true if the class is derived, false if it is not. If no value is returned, some references could not be resolved to get the answer. Determines whether the specified attribute defines an inheritance relation from the attribute, uniquely identifiable by the given attribute type path. The attribute type path may contain an alias. The attribute, containing a reference - this is either an Attribute or an AttributeType. A class path of a base attribute type, which is tested for a possible inheritance relation to the specified attribute. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified interface class has an inheritance relation from the interface class, uniquely identifiable by the given interface class path. The interface class path may contain an alias. The interface class. Class path of a base interface class which is tested for a inheritance relation to the specified interface class, which is the more specific class in this relation. true if an inheritance relation is resolved; otherwise, false. Determines whether the specified role reference defines an inheritance relation from the role, uniquely identifiable by the given role class path. The role class path may contain an alias. The role reference - this is a supported role class or a role requirement. A class path of a base role, which is tested for a possible inheritance relation to the specified role reference. true if an inheritance relation is resolved; otherwise, false. Extension methods for an InstanceHierarchy element Gets all descendant Objects in the InstanceHierarchy. InternalElements on all levels are returned. The InstanceHierarchy. Enumeration of the InternalElement objects. Extension methods for the CAEX element "InternalElement" Determines whether the specified InternalElement is referenced by other InternalElement objects called 'Mirrors'. The element. true if the specified element is a 'Master'-InternalElement; otherwise, false. Extension methods for string type CAEX attributes (i.e. GUID, Path, etc.) string extension method to check if it as GUID The stringGuid. true if the specified expression is unique identifier; otherwise, false. String extension method to normalize a GUID. If the string cannot be identified as a GUID the original string is returned The stringGuid. The normalized GUID if the provided string is a GUID; otherwise the original string is returned. Determines whether the specified path is an interface path. can only be used in a context with CAEX 2.15 The path. true if [is interface path] [the specified path]; otherwise, false. Determines whether the specified attribute is an attribute, containing a class reference. The name of the attribute. true if the specified attribute name is a class reference; otherwise, false. Determines whether the specified path is an interface path containing an ID Since CAEX Version 3.0 IDs cannot be part of a CAEXPath anymore The path. The identifier. The CAEX Version true if the specified path is an interface path with identifier; otherwise, false. Determines whether the specified path is an interface path with this interface name. The path. Name of the interface. A CAEX schema version. true if the specified path is an interface path with this interface name; otherwise, false. Since CAEX Version 3.0 Names cannot be part of an interface path anymore. Extension methods for the . Inserts a new class instance to the InternalElement collection of the parentInternalElement. If there are existing instances of the same Type, the Element is inserted after the last Element of that Type. Before Insertion, the Uniqueness of the Name among the siblings of that Type is checked. The Parent-InternalElement The instance of a class to be inserted at the parentInternalElement. The instance can be of type InternalElementType or InterfaceClassType True if insertion was successful, otherwise false (name is not unique or wrong type of newInstanceObject) Creates a new InternalElement and inserts it after the last InternalElement of the parent if the elementName is unique among the child's. The ChangeMode is set to the Value 'Create' Parent of the new InternalElement Name of the new InternalElement the new InternalElement or null, if the elementName is not unique Returns all SystemUnit Classes which are ancestors of this. This SystemUnit Class is included in the enumeration as the first Element, The farthest is the last Element in the enumeration. The SystemUnitClass. Enumeration of all SystemUnitClass ancestors. Inserts the InternalElement object after the defined Predecessor in the InternalElement collection of the SystemUnitClass. If the Predecessor is null, the InternalElement object is inserted at the first position of the InternalElement collection. The SystemUnitClass object The internal element. The internal element predecessor. Inserts an Attribute object in the Attribute collection of the . Any object with an Attribute collection. The Attribute object to insert Inserting an ExternalInterface to the ExternalInterface-Collection of the . The Element is inserted at the first Element of any existing ExternalInterfaces if no other position is defined. Any object with an ExternalInterface collection. The ExternalInterface object. Explicit definition of the position asFirst (true) or asLast (false) Inserting an InternalElement to the InternalElement-Collection of the . Any object with an InternalElement collection. The InternalElement to insert. Insert as first if set to true (default), otherwise append as last Inserts the specified InternalLink as the first InternalLink if nothing else if explicit defined. The SystemUnitClass object The internal link element. Inserted at first position if set to true, otherwise appended at last position Inserts the SupportedRoleClass as the first SupportedRoleClass if nothing else if explicit defined. The SystemUnitClass object The supported role class element. Inserted at first position if set to true, otherwise appended at last position Adding a new ExternalInterface instance to the ExternalInterface-Collection of the . The New ExternalInterface is inserted as the first ExternalInterface of any existing Interfaces if nothing else is explicit defined. Any object with an ExternalInterface collection. The name of the new ExternalInterface If set to true, the interface is insert at first, otherwise at last Interface. The new ExternalInterface Adding a new ExternalInterface instance to the ExternalInterface-Collection of the referencing a specific InterfaceClass. The New ExternalInterface is inserted as the first ExternalInterface of any existing Interfaces if nothing else is explicit defined. The provided is set as the RefBaseClassPath value. Any object with an ExternalInterface collection. The name of the new ExternalInterface The CAEX Path of the InterfaceClass which should be referenced. If set to true, the interface is insert at first, otherwise at last Interface. The new ExternalInterface Adding a new InternalElement instance to the InternalElement-Collection of the . The New InternalElement is inserted as the first InternalElement of any existing InternalElement objects if nothing else is explicit defined. Any object with an InternalElement collection. Name of the InternalElement If set to true, the InternalElement is insert at first, otherwise at last. The new InternalElement Inserts a new InternalLink as the first InternalLink if nothing else if explicit defined. The SystemUnitClass object The name of the InternalLink if true insert at first InternalLink, otherwise at last InternalLink The new InternalLink element Inserts a new SupportedRoleClass as the first SupportedRoleClass if nothing else if explicit defined. The SystemUnitClass object The path to the role class that is referenced Inserted at first position if set to true, otherwise appended at last position The new SupportedRoleClass This enum defines possible changes of a CAEX object. The changes are notified in a or a . empty mode A CAEX object has been added. A CAEX object will be deleted. A CAEX object has got a changed ID attribute. A CAEX object will get a changed ID. A CAEX object has got a changed ID reference. A CAEX object will get a changed ID reference. A CAEX object has been renamed. A CAEX object will be renamed. A CAEX object has got a changed name reference. A CAEX object will get a changed name reference. A CAEX object has got a changed path reference. A CAEX object will get a changed path reference. A CAEX object has been deleted, the element in the change notification is the former parent of the deleted element. . A CAEX object's value has been changed. A CAEX object's value will change. A CAEX object is moving to a new position in its collection. A CAEX object has been moved to a new position in its collection. Combination of all defined changed mode events Combination of all defined modes for changing events Event arguments for a and a Constructs arguments for an element changing event The CAEX element. The CAEX parent. The document. The change mode. Constructs arguments for an element's attribute changing event The CAEX element. The CAEX parent. The document. The attribute. Name of the attribute. The old value. The new value. The change mode. The changed CAEXAttribute Gets the name of the CAEX attribute. Gets the CAEX document. The changed CAEXElement The changed CAEXElement's parent. This Property should be used, to detect a former parent of a CAEXElement, when the CAEXElement has been deleted and has no associated parent. The change mode The new value The old value Initializes a new instance of the class. The moved element. The sibling. if set to true [after sibling]. Moves the element before the specified sibling. the moved element the new sibling of the element if set to true the element is moved after the sibling. Command Execution method Command reverse execution method The Aml.Engine.CAEX.Commands Namespace contains different commands that are provided to add, delete or change elements in a CAEX document. The classes support the implementation of Undo Redo using the command pattern with methods for command execution and reverse execution. If an Undo Redo service is registered, it will be located by the commands and used to push commands on the Undo Redo stack. Command to change the content nodes of an XElement which enables undo and redo of the changes Create a new instance of the command The Element, which value should change The new content element Change the value of an element using a command, if the UndoRedoService is registered. If the service is null, the changes are made without using a command. The changed element The new value which is set when the command is executed The old value of the element before the change was made Command Execution Method (enables redo) Command reverse execution Method (enables undo) This Class defines a WeakEventSource, used to define Events, raised in the AML Engine. The type of the event arguments. Initializes a new instance of the class. Raises an event, defined with this instance The sender. The event argument instance containing the event data. Subscribes the specified handler with this event source. The handler. Unsubscribes the specified handler with this event source. The handler. This is the abstract base class for all CAEX commands, applicable to CAEX elements This event is raised after a CAEXElement has been changed. This event is raised before a CAEXElement will be changed. Gets the CAEX document processing the command Gets the display name of the command Gets the XML document processing the command Raises the for the provided document. The document. The instance containing the event data. Raises the for the provided document. The document. The instance containing the event data. Command Execution method Command reverse execution method Command to add a new Element to an existing sibling which enables undo and redo of the changes Create a new instance of the command The sibling of the element The element Determines the position Adds a Sibling to the specified sibling using a command. the sibling the added element if true element is added after the sibling; otherwise before The added Element Command execution method (enables redo) Command reverse execution Method (enables undo) Command to insert a new Element to an existing parent which enables undo and redo of the changes Create a new instance of the command The designated owner of the element The element Inserts the Element using a command, if the UndoRedoService is registered. If no service is registered, the changes are made without using a command. The New added Element The Owner of the Element Command execution method (enables redo) Command reverse execution Method (enables undo) Command to insert a new Element to an existing parent which enables undo and redo of the changes Create a new instance of the command The designated owner of the new element The XName of the new element Inserts a new Element using a command, if the UndoRedoService is registered. If the service is null, the changes are made without using a command. The New added Element The XName of the Element The Owner of the Element Command execution method (enables redo) Command reverse execution Method (enables undo) Command to remove an Element which enables undo and redo of the changes Create a new instance of the command The element Removes the Element using a command, if the UndoRedoService is registered. If the service is null, the changes are made without using a command. the removed element The New added Element The Owner of the Element Command execution method (enables redo) Command reverse execution Method (enables undo) Command to add a new Element to an existing parent which enables undo and redo of the changes Create a new instance of the command The designated owner of the new element or sibling The XName of the new element The content for the new element If set to true the provided element is the sibling, otherwise the parent Command execution method (enables redo) Adds a new Element using a command. The designated owner or the sibling of the new element The XName of the new element The content for the new element If set to true the provided element is the sibling, otherwise the parent The content of the Element The XName of the Element The Owner of the Element Command to change the value of an Attribute of an XElement which enables undo and redo of the changes Create a new instance of the command The Element, which owns the attribute. The name of the attribute. The new value. Change the value of an attribute using a command, if the UndoRedoService is registered. If the service is null, the changes are made without using a command. The Element Name of the attribute Attribute value The Name of the Attribute The New value for the attribute The Old Value of the attribute or null if no attribute existed before The Owner of the attribute Command Execution Method (enables redo) Command reverse execution Method (enables undo) Command to change the value of an XElement which enables undo and redo of the changes Create a new instance of the command The Element, which value should change The new value Change the value of an element using a command, if the UndoRedoService is registered. If the service is null, the changes are made without using a command. The changed element The new value which is set when the command is executed The old value of the element before the change was made Command Execution Method (enables redo) Command reverse execution Method (enables undo) Interface for CAEXCommands. If Commands implement this interface, they can use a to enable undo and redo. Gets the CAEX document. Gets the display name. Command Execution Method (enables redo) Command reverse execution Method (enables undo) This class is a wrapper for the CAEX element 'Copyright'. Initializes a new instance of the class. The XML node. This class is a wrapper for the CAEX element 'Description'. Initializes a new instance of the class. The XML node. 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 . Gets all the CAEXValue objects for the defined value attributes of this instance. Gets and sets the attribute value for the named attribute using the decoding and encoding methods of . Gets the Attribute datatype which is valid for all attribute values of this element Gets the attribute, which specifies the attribute data type for the attribute values. Gets the CAEXValue for the named value attribute which allows type-coded access to the value property using appropriate encoding and decoding methods. Interface class implemented by which comprises a basic set of attributes and header information which exist for all CAEX elements. Gets the collection of AdditionalInformation values contained in this instance. Gets and sets the change mode for a CAEX element (Optional in CAEX). Gets and sets the Copyright for this object. For CAEX 2.15 documents the content of the Copyright object is transformed to a string. Gets the wrapper for the Copyright element. Gets and sets the Description for this object. For CAEX 2.15 documents the content of the Description object is transformed to a string. Gets the wrapper for the Description element. Gets the collection of Revision objects contained in this instance. Gets the collection of SourceObjectInformation objects contained in this instance. Gets and sets the Version for this object. For CAEX 2.15 documents the content of the Version object is transformed to a string. Gets the wrapper for the Version element. Gets the CAEXSequence owned by this instance, which contains the specified CAEX object. For example, if the specified object is a revision object, the sequence of the revision objects is returned. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Gets the CAEXSequence for elements of type T, which is owned by this CAEX object. The CAEX container Inserts the specified CAEX object in it's associated sequence. The CAEXBasicObject defines the and sequences. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the CAEX object has been inserted into this sequence. Inserts the specified CAEX object in it's associated sequence at the defined position. The CAEXBasicObject defines the and sequences. The position The CAEX object. true, if a sequence could be identified and the CAEX object has been inserted into this sequence. Creates a new Revision object and inserts it to the collection of Revision objects either at the beginning or at the end of the sequence, according to the specified optional value. The Revision object is initialized with the provided values. The date. The author. if set to true the created Revision is prepended, otherwise appended. A Revision object. This interface class is implemented by all CAEXObject classes and defines accessors for the attributes of a CAEX object. Gets or sets the identifier. Gets or sets the name. Gets the CAEX path for this object. A path can be used to uniquely reference an object, for example in inheritances and instances. The path syntax for an object is defined differently in CAEX 2.15 and CAEX 3.0. The engine uses the to generate the CAEX path of an object according to the documents CAEX version. Paths require the definition of separators between different path elements. CAEX 2.15 distinguishes between 4 separator types: Alias separator, object separator, interface separator and attribute separator. In CAEX 3.0 only the separator types Alias separator and object separator are used. Please note that this method returns a different result than the method, which always returns the path including the object names of all ancestor hierarchy levels. The CAEX path. This interface defines a sequence of CAEX elements. Gets a wrapper for the first CAEX element in this sequence, if the sequence contains no elements null is returned. Gets a wrapper for the last CAEX element in this sequence, if the sequence contains no elements null is returned. Gets the first CAEX object with a specific attribute value from the sequence of elements Pair of attribute name and attribute value the first CAEX object, which matches this condition. Gets a wrapper for the CAEX element in this sequence at the given position index position of the element The created CAEX wrapper. Creates a new CAEX object and appends it to already existing elements in this sequence. the created CAEX object raised, when this parent child relation violates the CAEX schema. Creates a new CAEX object and appends it to already existing elements. The content of the new element can be optionally defined using an array of tuples defining attribute names and their values. The attribute value tuples. the created CAEX object. This sample shows how to apply this method: var doc = CAEXDocument.New(); var at = doc.CAEXFile.AttributeTypeLib.Append (new Tuple <string,object>[] { Tuple.Create<string,object>("Name", "ALIB") }); Gets the CAEX object at the specified index. The index. the CAEX object from the given index, or null. Gets the enumerator for this sequence. The enumerator Gets the Index of the specified CAEX object in this sequence of elements. the CAEX object the Index of the specified CAEX object. Inserts the specified CAEX object into this sequence. If no position is specified the element is appended. If 'asFirst' is set to true, the element is prepended to already existing ones. the CAEX object optional parameter, if set to true (default) the object is prepended to already existing ones, otherwise it is appended. Inserts the specified CAEX object into this sequence at the defined index. The Position of the element The CAEX object Moves the CAEX object at the specified index to a new location in the collection. The zero-based index specifying the location of the CAEX object to be moved. The zero-based index specifying the new location of the CAEX object. Creates a new CAEX object and prepends it to already existing elements. The created CAEX object. Creates a new CAEX object and prepends it to already existing elements. The content of the new element can be defined using an array of tuples defining attribute names and their values. The attribute value tuples. The created CAEX object. Removes the provided CAEX object from this sequence. The CAEX object. This interface is defined for CAEXObjects, which may contain different types of CAEX objects like the . 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. Inserts the specified CAEX object in its associated container. The CAEX object. if set to true insert it at the first position. true, if inserted; otherwise false. 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. Gets and sets the mapped ExternalInterface of the role reference Gets and sets the mapped ExternalInterface of the SystemUnitClass This interface is implemented by the CAEX elements, which are possible children of the . Gets the mapping object which contains this Mapping Element. Interface class, implemented by any CAEX object, which can be mirrored Creates a mirror. Gets a value indicating whether this instance is a master. Gets a value indicating whether this instance is mirror. Gets the master. Gets the master identifier. 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. Inserts the provided CAEX object as a new sibling after this CAEX object, if both are of the same type. The CAEX object to be inserted. Inserts the provided CAEX object as a new sibling before this CAEX object, if both are of the same type. The CAEX object to be inserted 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 interface. An associated collection of Attributes is wrapped in an . Since CAEX Version 3.0 an Attribute element can be instantiated from an AttributeType element . The Attribute element and the AttributeType element share the same base class . Initializes a new instance of the class. An 'AttributeType' XML node The constructor function for the . Gets and sets the AttributeType of an Attribute object, defining a new instance to class relation, using the CAEX attribute . Gets a value indicating whether this instance is a master attribute referenced by mirror attributes. Gets a value indicating whether this instance is a mirror of another Attribute object. Gets the master Attribute object if this is a mirror and the master can be found in this CAEX document. Gets the owner of the Attribute Tree. This is the first ancestor, which is not an AttributeType object. The TreeOwner Gets the master, if this is a mirror attribute Gets the identifier of the master Attribute if this is a Mirror. The identifier contains the ID of the attribute owner followed by the Attribute path. Gets the ID of the master attributes parent instance, if this is a mirror Attribute object. If it is not a mirror, null is returned. Creates an AttriuteType from this Attribute instance. Creates a new mirror element from this AttributeType returns the attribute path, which is equal to the attribute name for any attribute, which is not a nested attribute or a concatenation of attribute names separated by the attribute path delimiter for nested attributes. Replaces the content of this Attribute object with the specified attribute type. This Attribute object is changed to an instance of the provided Attribute Type. Type of the attribute. Equality comparer for values of Attributes of XML-Elements Creates a new instance of an AttributeValueComparer for the provided Attribute name The name of the attribute. Compares the values of the provided attributes The first object which should be compared. The second object which should be compared. true, if values are equal Returns a hash code for this instance. The object. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. This class is a generic base class for CAEX elements with simple values. This class is used by the CAEX adapter only. The type of the element data type. Initializes a new instance of the class. The XML node. Optionally describes the change state of a CAEX object. If used, the ChangeMode shall have the following value range: state, create, delete and change. This information should be used for further change management applications. 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. The singleton instance of the CAEXType Dictionary A dictionary, containing creation methods for CAEX elements, the type name is used as a dictionary key Initialization of the Type Dictionary Prevents a default instance of the class from being created. Gets or sets the data type associated with the specified key. The key. The caexTagName is concatenated with the "Type" extension, to match a Type name of a CAEX wrapper class. Type. The Key for Dictionary access Name of the CAEX tag. System.String. Determines whether this dictionary's key collection contains the specified CAEX Tag name as a key. The CAEX Tag name, which is used to construct the dictionary key. true if the dictionary contains an element with the specified key; otherwise, false. Tries to get the constructor function which can be used to create a CAEX wrapper for an CAEX element with the provided element name. The local name of the CAEX element. The function to create the CAEX wrapper. if a function exists. Tries to get the value. Name of the CAEX tag. The type. true if type is registered, false otherwise. 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 . This class supports direct enumeration of the AttributeType's children in the AttributeType tree. This class was introduced with CAEX Version 3.0 and can only be used with CAEX documents, based on Version 3.0. Creates a wrapper for the specified XElement which is an AttributeType An AttributeType XML node. The constructor function for the . Gets and set the AttributeDataType. If the AttributeDataType is not defined for this AttributeType but a exists, the AttributeDataType of the BaseClass is returned. If this optional attribute is not defined, the data type is assumed to be "xs:string", according to CAEX (DIN EN 62424:2008-08) Gets a collection of the subordinate AttributeTypes (the direct children) in the AttributeType tree of this AttributeType. Gets and sets the base class for this AttributeType. Setting a base class creates a class to class inheritance relation. Base classes are defined using the CAEX-Attribute which is set to the CAEX-path of the base class. According to CAEX, a class shall not inherit from itself or from a derivative of itself, therefore any cyclic reference is denied. Gets and set the DefaultValue. If the DefaultValue is not defined for this AttributeType but a exists, the DefaultValue of the BaseClass is returned. Gets all attributes, including the inherited attributes of the base classes in the inheritance tree. Gets all constraints, including the inherited constraints of the base classes in the inheritance tree. Gets and sets the RefAttributeType CAEX attribute of the Attribute object. This property is used to create class to class relations between AttributeType objects (classes). According to CAEX, a class shall not inherit from itself or from a derivative of itself, therefore any cyclic reference is denied. Gets the reference base class path. The reference base class path. Gets the name (not the full path) of the referenced base class. The name of the referenced class. Gets and set the Unit. If the Unit is not defined for this AttributeType but a exists, the Unit of the BaseClass is returned. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Creates a class instance for this AttributeType object. All inherited base classes are resolved in the resulting Attribute. The Attribute collection of the new Attribute instance contains all inherited attributes from base classes."/> The created Attribute object. Creates a class instance for this AttributeType object. All inherited base classes are resolved in the resulting Attribute. A CAEXWrapper of the created Attribute object. Gets the Enumerator for the enumeration of the field. An enumerator that can be used to iterate through the collection. Gets the Enumerator for the enumeration of the field. An -object, that can be used to iterate through the collection.. Gets the reference (inheritance) hierarchy. The reference hierarchy includes this instance and the reference hierarchy of an associated defining a class to class relation. Collection, containing this instance and the reference hierarchy of a base class. Gets the reference (inheritance) hierarchy. The reference hierarchy includes this instance and the reference hierarchy of an associated defining a class to class relation. Type of the CAEX class. Queue, containing this instance at the first element, followed by the reference hierarchy of a base class. Inserts the specified CAEX object in it's associated sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given index. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. This class is a wrapper for the CAEX element 'AttributeNameMapping' which defines mappings between attributes of an AML object and any associated role class. The constructor Initializes the class. Creates a wrapper for the specified XElement which is an AttributeNameMapping Element An AttributeNameMapping XML node. Gets the collection of possible mapping identifiers for this AttributeNameMappingType for elements of the mapped SystemUnitClass. The Collection contains all attributes (including inherited attributes) of the SystemUnitClass and also the attributes of the ExternalInterfaces (including inherited external interfaces) of the SystemUnitClass. The Attribute Identifiers are the unique CAEXPath's of the attributes relative to the SystemUnitClass. The possible mapping identifiers to map Attributes of the SystemUnitClass and its ExternalInterface objects. Gets the collection of possible mapping identifiers for this AttributeNameMappingType for elements of the mapped RoleClass. The Collection contains all attributes (including inherited attributes) of the RoleClass and also the attributes of the ExternalInterfaces (including inherited external interfaces) of the RoleClass. The Attribute Identifiers are the unique CAEXPath's of the attributes relative to the RoleClass. The MultipleRole Concept in AutomationML 2.0 based on CAEX 2.15 allows the definition of Mappings to SupportedRoleClass objects. These Elements are only included in this collection, if a qualified element has been already assigned to the RoleRequirements object. To get the possible qualified RoleClass Attributes, which are not already assigned to the RoleRequirements object, the method can be used. If an instance supports multiple roles and the requirements to the different roles shall be stored at the instance, this shall be done using the CAEX element "RoleRequirements" whereas the corresponding attributes or interfaces are directly assigned including the role name, a separator string "." and the attribute or interface name. The possible mapping identifiers to map Attributes of the RoleClass and its ExternalInterface objects. Gets the RoleClass element which can be identified with the or sets the retrieved from the provided value. If the identifies a RoleRequirements Attribute and a RoleClass Attribute as well, the RoleClass Attribute is returned by the Getter. The role attribute. Gets and Sets the 'RoleAttributeName' for this instance Gets or sets the system unit attribute which is defined using the CAEX attribute . The system unit attribute. Gets and sets the identifier for the mapped RoleClass element. The role class element identifier. Gets or sets the identifier for the mapped SystemUnitClass element. The system unit class element identifier. Gets and Sets the 'SystemUnitAttributeName' for this instance This Class is the generic base class for 'Attribute' and 'AttributeType' elements and defines base structures for Attribute- and AttributeType definitions. Initializes a new instance of the class. An 'AttributeType' XML node. Gets the type-decoded value and sets the type-encoded value for the value attribute with the defined name. The allowed Names as and . The XSD data types which are supported. Gets a collection of Attributes contained in this instance. Gets the attributes and all nested attributes. Gets and sets the AttributeDataType attribute of this Attribute object. If the referenced attribute type does not base on an XML standard base type, the AttributeDataType may remain empty or not present. Gets the Attribute datatype which is valid for values of all of this element. For this class, it is the instance itself. Gets the collection of AttributeValueRequirement objects contained in this instance. Gets and sets the DefaultValue element of this Attribute object. Use the property , to get or set the type encoded default value according to the Attribute Data Type. Gets and sets the RefAttributeType CAEX attribute of the Attribute object. This property is used to create instance to class relations between Attributes (instances) and AttributeType objects (classes). Gets the collection of RefSemantic objects contained in this instance Gets and sets the Unit attribute for this Attribute object. Gets and sets the Value for this Attribute object. The correct XML-String representation for the defined has to be ensured by the caller. It is possible to use the Indexer to set a type based value which is correctly encoded/decoded according to the specified or use the property , which provides the same value access. This sample shows how to use this property: // setting a value if the AttributeDataType is defined as 'xs:Duration'. TimeSpan processingTime = new TimeSpan(days: 0, hours: 0, minutes: 0, seconds: 5); AttributeType at = ReadMyAttribute (); at["Value"] = processingTime; at["DefaultValue"] = new TimeSpan(0); // checking the appropriate type setting: if (at.ValueAttributes[0].TypeCodeOfAttribute == System.Xml.Schema.XmlTypeCode.Duration) { } Gets all the CAEXValue objects for the defined value attributes of this instance. Recognized value attributes are and . Gets and set the encoded/decoded attribute value according to the defined AttributeDataType. Gets and set the encoded/decoded default attribute value according to the defined AttributeDataType. Gets the xmlType type for the specified CLR type. The Mapping is done according to Mapping XML Data Types to CLR Types. This reverse mapping is not unambiguous. If more than one mapping is possible, the most common used description is generated. If No mapping is defined the 'xs:string' is used. You can use the encoding and decoding methods of the object, to receive a type conform result for the attribute value elements. .Net data Type. the name of the XML type clrType Conversion to get access to specific AutomationML defined Attributes The 'AttributeType' CAEX object. The AttributeType object, converted to an type, which provides access to specific AML defined attributes. attributeType Gets the CLR type for the specified xmlType. The Mapping is done according to Mapping XML Data Types to CLR Types. The name of the XML type a .NET data Type xmlType Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Gets the for the value attribute with the defined attribute name. The allowed Names as and . Parse the Attribute Value string as dateTime. If the string can not be parsed, a format exception is returned. This method uses the XmlConvert method. The date time option. DateTime. Parse the Attribute Value string as double. If the string can not be parsed, a format exception is returned. This method uses the XmlConvert method and a fall back conversion, if the first conversion fails. Double. Inserts the specified CAEX object in it's associated sequence. The AttributeType defines additional sequences for , and . The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the defined position. The AttributeType defines additional sequences for , and . the position The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the provided CAEX object as a new sibling after this CAEX object. The CAEX object to be inserted. caexObject The provided object is not allowed to be a sibling of this instance. Inserts the provided CAEX object as a new sibling before this CAEX object. The CAEX object to be inserted caexObject The provided object is not allowed to be a sibling of this instance. Sets the specified dateTime value as the attribute value. The AttributeDataType is set to xs:dateTime The value. The serialization mode, use UTC Sets the specified double value as the attribute value. The AttributeDataType is set to xs:double The value. Tries to parse the Attribute Value string as dateTime. This method uses the XmlConvert method. The DateTime value. The date time option. true if success, false otherwise. Tries to parse the Attribute Value string as double. This method uses the XmlConvert method and a fall back conversion, if the first conversion fails. The double value. true if success, false otherwise. 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 (). This class was introduced with CAEX Version 3.0 and can only be used with CAEX documents, based on Version 3.0. Gets the collection of AttributeType objects contained in this AttributeTypeLib element. Initializes the class. Initializes a new instance of the class. An 'AttributeTypeLib' XML node Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given index. The insertion index The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. 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. The constructor Initializes the class. Initializes a new instance of the class. A 'Constraint' XML node. Gets and sets the name of the attribute value constraint. Gets the 'NominalScaledType' constraint. Gets the 'OrdinalScaledType' constraint. Gets the 'UnknownType' constraint. Inserts the specified CAEX object in it's associated sequence. The AttributeValueRequirementType defines the , the and the as possible child elements. Only one of these types is allowed as a child. The CAEX object. ignored for this type. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the defined position. The AttributeValueRequirementType defines the , the and the as possible child elements. Only one of these types is allowed as a child. The position. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. A new 'NominalScaledType' constraint is defined if no constraint has been defined before. The new 'NominalScaledType' constraint. A new 'OrdinalScaledType' constraint is added if no constraint has been defined before. The new 'OrdinalScaledType' constraint. A new 'UnknownType' constraint is added if no constraint has been defined before. The new 'UnknownType' constraint. This class implements a specific enumeration type which wraps an XElement with a CAEXWrapper during enumeration. The enumerator for this class is Type of the CAEX wrapper Creates a new instance for a CAEXEnumerable with an associated CAEXSequence. The CAEXSequence containing the Xml-Element collection. If null, the specified Xml-Element collection is not associated with a CAEXSequence. The Xml-Element collection. If not associated to a CAEXSequence the specified sequence should be set to null. Creates a new instance for the CAEX enumerable without an associated CAEXSequence. The Xml-Element collection. Gets the CAEXSequenceEnumerator An enumerator that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. A object that can be used to iterate through the collection. Base class for all CAEX objects which may define a class to class relation referencing some base class. Type parameter, specifying the CAEX class type. Initializes a new instance of the class. Any CAEX class XML node. Name of the CAEX attribute, used to store a class to class reference. Gets the Name of the attribute of the wrapped Xml-Element, which is used to define the reference to the base class. Inserts the provided CAEX object as a new sibling after this CAEX object. The CAEX object to be inserted. caexObject The provided object is not allowed to be a sibling of this instance. Inserts the provided CAEX object as a new sibling before this CAEX object. The CAEX object to be inserted caexObject The provided object is not allowed to be a sibling of this instance. This class implements the CAEX sequence enumerator which creates a CAEXWrapper for each enumerated XML-Element. Initializes a new instance of the class. The CAEXSequence, defining the sequence of XML elements. The collection of XML elements of the CAEX sequence. Gets the item in the collection at the current position of the enumerator. Gets the item in the collection at the current position of the enumerator. Dispose this instance. Sets the enumerator to the next item in the collection. , if the enumerator was successfully set to the next element, , if the enumerator has exceeded the end of the collection. Resets the enumerator. User defined exception that is thrown when an error occurs during instantiation of a class. Initializes a new instance of the class with serialized data. object containing the serialize data. context information about source or target. Standard constructor Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner Message. This interface class is implemented by all CAEX - object classes and defines accessors to the wrapped XML node. Gets the CAEXParent of this CAEX object Gets the first child of this CAEX object with the defined CAEX tag name. The CAEX tag name of the child. The child, if it exists; otherwise null. Gets all children of this CAEX object with the defined CAEX tag name. The CAEX tag name of the child. The children, if existing; otherwise Enumerable.Empty. Removes this object 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. Gets the reference (inheritance relations) hierarchy including the actual class as a queue. The type of the CAEX class. A Queue of the base classes including the actual class. Gets the reference base class path. The reference base class path. Gets the name (not the full path) of the referenced base class. The name of the referenced class. This interface class is derived from 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. Type of the class with a base class relation. Gets and sets the base class to define a class to class relation. The base class. Gets the reference hierarchy for all class to class relations, starting with this class. A collection, containing this class and the reference hierarchy of the base class, if existing. Interface IInstantiable is implemented by all CAEX classes. Creates the class instance. The CAEX object. Generic interface IInstantiable defining the instantiation method and the instance type. The type of the created instance. Creates the class instance. an instance of this class, which is of the defined type. 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. This class is defined for CAEX 2.15 only and is replaced since CAEX 3.0 with the . Initializes a new instance of the class. An 'InterfaceNameMapping' XML node. Gets the collection of possible mapping identifiers for this InterfaceNameMappingType for elements of the mapped SystemUnitClass. The Collection contains all ExternalInterfaces (including inherited) of the SystemUnitClass. The ExternalInterface Name is used as the Mapping identifier. The possible mapping identifiers to map ExternalInterfaces of the SystemUnitClass. Gets the collection of possible mapping identifiers for this InterfaceNameMappingType for elements of the mapped RoleClass. The Collection contains all ExternalInterfaces (including inherited) of the RoleClass. The ExternalInterface Name is used as the Mapping identifier. The MultipleRole Concept in AutomationML 2.0 based on CAEX 2.15 allows the definition of Mappings to SupportedRoleClass objects. These Elements are only included in this collection, if a qualified element has been already assigned to the RoleRequirements object. To get the possible qualified RoleClass ExternalInterfaces, which are not already assigned to the RoleRequirements object, the method can be used. If an instance supports multiple roles and the requirements to the different roles shall be stored at the instance, this shall be done using the CAEX element "RoleRequirements" whereas the corresponding attributes or interfaces are directly assigned including the role name, a separator string "." and the attribute or interface name. The possible mapping identifiers to map ExternalInterfaces of the RoleClass. Gets and sets the mapped ExternalInterface of the role reference Gets and sets the Name of the mapped ExternalInterface of the role reference Gets and sets the mapped ExternalInterface of the SystemUnitClass Gets and sets the identifier for the mapped RoleClass element. The role class element identifier. Gets or sets the identifier for the mapped SystemUnitClass element. The system unit class element identifier. Gets and sets the Name of the mapped ExternalInterface of the SystemUnitClass 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. This class is defined since CAEX 3.0 and is a replacement for the . Initializes a new instance of the class. An 'InterfaceIDMapping' XML node. Gets and sets the mapped ExternalInterface of the role reference Gets and sets the ID of the mapped ExternalInterface of the role reference Gets the collection of possible mapping identifiers for this InterfaceIDMappingType for elements of the mapped SystemUnitClass. The Collection contains all ExternalInterfaces (including inherited and descendants) of the SystemUnitClass. The ExternalInterface ID is used as the Mapping identifier. The possible mapping identifiers to map ExternalInterfaces of the SystemUnitClass. Gets the collection of possible mapping identifiers for this InterfaceIDMappingType for elements of the mapped RoleClass. The Collection contains all ExternalInterfaces (including inherited and descendants) of the RoleClass. The ExternalInterface ID is used as the Mapping identifier. The possible mapping identifiers to map ExternalInterfaces of the RoleClass. Gets and sets the mapped ExternalInterface of the SystemUnitClass Gets and sets the ID of the mapped ExternalInterface of the SystemUnitClass Gets and sets the identifier for the mapped RoleClass element. The role class element identifier. Gets or sets the identifier for the mapped SystemUnitClass element. The system unit class element identifier. This class defines a sequence of CAEX 'Attribute' elements. A sequence of Attribute's can be associated with each class which implements the interface. Initializes a new instance of the class. The owner. The constructor function to create an Attribute wrapper. Gets the CAEX attribute with the provided attribute path from the Attribute sequence. This method can be used to direct access a nested attribute using the complete attribute path. The Path root should be the top level attribute. The attribute path. Gets the CAEX attribute with the provided attribute name array from the Attribute sequence. This method can be used to direct access a nested attribute using the complete attribute path splittet into a part name array. The Path root should be the top level attribute. The part names. Creates the 'AttributeType' CAEX wrapper for the XML node. The node. The AttributeType Creates a new CAEX Attribute XML element. The owner. The XML node. This class defines a sequence of CAEX 'ExternalInterface' elements. A sequence of ExternalInterfaces can be associated to each class, which implements the interface. Initializes a new instance of the class. The owner. The constructor function to create an ExternalInterface object. Gets all external interfaces and the external interface descendants (The external interface tree). an enumeration of all ExternalInterface object of this instance and their nested ExternalInterface objects. available since CAEX Version 3.0. This class defines a sequence of CAEX 'InternalElement' elements. A sequence of InternalElements can be associated with each class which implements the interface. Initializes a new instance of the class. The owner. Function to create an . Adds a new mirror InternalElement to this sequence. The master internal element. The newly created Mirror masterInternalElement Gets all InternalElements and the InternalElement descendants (the InternalElement tree) a collection of all InternalElement objects of this instance and their nested InternalElement objects. Function to create an The 'InternalElemen' XML node. an InternalElementType Creates a new 'InternalElement' XML node. The owner. The created XML node. Equality comparer for Xml-Elements that are InternalLink objects. Determines if two InternalLink objects are equal. Equal InternalLink objects have reference the same ExternalInterfaces. The order of the references doesn't matter. The first internal link. The second internal link. true, if both InternalLink objects are equal. Returns a hash code for this instance. The object. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. This Class is a wrapper for the CAEXElement 'InternalLink' that defines instance to instance relations using ExternalInterfaces to relate InternalElement- and SystemUnitClass-Objects. Initializes a new instance of the class. An 'InternalLink' XML node. Constructs the path to an interface according to the used schema The ExternalInterface Determines, if this InternalLink Instance has defined Interfaces. definition of the separator used for qualifying an interface of an internal element via syntax GUID:Interface Valid for CAEX 2.15 only. In CAEX 3.0 there exists no separator char in internal link attributes. Gets and sets the AInterface of the InternalLink by reading or setting the Attribute. A read access to this property updates the . Gets the related objects for the InternalLink. This property allows to access the listed related objects without recalculation. A direct access to one of the listed properties results in a recalculation of the accessed property. The related objects. This class allows accessing the related objects of an InternalLink without recalculation which improves the performance for consecutive access of the related objects. Gets the A-Interface of the InternalLink by interpretation of the Attribute on first access. Consecutive reads will return the at first calculated value. A Reinterpretation is performed, when the respective InternalLink property is read or set. Gets the B-Interface of the InternalLink by interpretation of the Attribute on first access. Consecutive reads will return the at first calculated value. A Reinterpretation is performed, when the respective InternalLink property is read or set. Gets the A-SystemUnitClass using the preserved value . If this value has not been calculated, a recalculation is performed. Gets the B-SystemUnitClass using the preserved value . If this value has not been calculated, a recalculation is performed. Gets the SystemUnitClass associated to the . Gets and sets the BInterface of the InternalLink by reading or setting the Attribute. A read access to this property updates the . Gets the SystemUnitClass associated to the . Gets and sets the Path to an ExternalInterface, defining the A-Side of the relation. Please notice, that the Path-Syntax has changed with CAEX 3.0 Gets and sets the Path to an ExternalInterface, defining the B-Side of the relation. Please notice, that the Path-Syntax has changed with CAEX 3.0 Creates a new InternalLink object and append it to the lowest common parent of the SystemUnitClass objects, associated with the provided ExternalInterface objects. If no common parent exists, the InternalLink will be associated with the owner of the . The ExternalInterface object, representing the A-Side of the relation. The ExternalInterface object, representing the B-Side of the relation. The name for the InternalLink The newly created InternalLink object. If AInterface or BInterface is null One of the provided ExternalInterface objects is not associated to a SystemUnitClass. It is not allowed to link an ExternalInterface to itself. Inserts the provided CAEX object as a new sibling after this CAEX object. The CAEX object to be inserted. caexObject The provided object is not allowed to be a sibling of this instance. Inserts the provided CAEX object as a new sibling before this CAEX object. The CAEX object to be inserted caexObject The provided object is not allowed to be a sibling of this instance. Gets the Interface from the provided InternalLink Attribute value, which is from or from the attribute. The value of the InternalLink attribute, defining the Interface reference. the external interface Interface that defines methods and properties that apply to all classes that are able to contain ExternalInterface objects. This Interface is implemented by and . Gets and sets the referenced role class Gets and sets the role reference attribute Extensions defined for ExternalInterface Sequence and RoleRequirements sequence Gets all ExternalInterfaces from the specified sequence, which are instances of a specific InterfaceClass The Sequence of External Interfaces The required Interface Class External Interfaces which are instances of the defined class. Gets all RoleRequirements from the specified sequence, which are instances of a specific RoleClass The Sequence of Role Requirements The required Role Class RoleRequirements which are instances of the defined class. Gets all SupportedRoleClasses from the specified sequence, which are instances of a specific RoleClass The Sequence of SupportedRoleClasses The required Role Class SupportedRoleClasses which are instances of the defined class. Interface implemented by Mapping elements , , and . Gets and sets the identifier for the mapped RoleClass element. Gets or sets the identifier for the mapped SystemUnitClass element. Gets the SystemUnitClass, which is either an or a , which provides the mapping elements. Gets the RoleClass, which provides the mapping elements. This class is the base class for Mapping element types which are , , and . Initializes a new instance of the class. An 'MappingElementType' XML node. Gets and sets the identifier for the mapped RoleClass element. The role class element identifier. Gets or sets the identifier for the mapped SystemUnitClass element. The system unit class element identifier. Gets the mapping object which contains this Mapping Element. This method is an extension to the setter in case of MultipleRole assignments in AutomationML 2.0 based on CAEX 2.15. The method can assign a qualified RoleClassElement as a mapping element and will eventually create a missing RoleRequirement element for the qualified element. For Documents, based on CAEX 3.0 the behaviour of this method is identical to the setter. The element. Gets the RoleClass element which can be identified with the or sets the extracted from the provided CAEXObject which shall be an AttributeType for an attribute mapping or an ExternalInterfaceType for an interface mapping. If the provided CAEXobject is not applicable for the Mapping, the is not changed. Gets the SystemUnitClass element which can be identified with the or sets the defined by the provided value. Gets the collection of all possible elements and their mapping identifiers of the mapped SystemUnitClass and its ancestors in the inheritance tree for this mapping element. The mapping identifier uniquely identifies the mapped CAEX object. The syntax of the identifier is defined by the derived mapping element types and is build from the CAEX path of the object. The possible mapping elements and their identifiers of the mapped SystemUnitClass. Gets the collection of all possible elements and their mapping identifiers of the mapped RoleClass and its ancestors in the inheritance tree for this mapping element. The mapping identifier uniquely identifies the mapped CAEX object. The syntax of the identifier is defined by the derived mapping element types and is build from the CAEX path of the object. The possible mapping elements and their identifiers of the mapped RoleClass. Gets the SystemUnitClass, which provides the . Gets the RoleClass, which provides the . Gets the Role reference, which can provide additional . This class is a wrapper for the CAEX element 'Version'. Initializes a new instance of the class. The XML node. The Aml.Engine.CAEX Namespace contains classes that support the generation, retrieval and analysis of CAEX 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 basic XDocument is wrapped with the . Direct access to the XDocument and direct manipulations of XElements by an application are not monitored by the AMLEngine. Schema conformance is only guaranteed if the API methods are used. This class is a wrapper for the CAEXElement 'NominalScaledType" which defined a list of required values for an attribute constraint. Initializes a new instance of the class. A 'NominalScaledType' XML node. Gets the type-decoded value and sets the type-encoded value for the nominal value attribute with the defined value. This indexer should only be used, if the list of nominal values contains distinct values only. Gets the for the for the nominal value attribute with the defined value. Gets the AttributeDataType of the defining attribute. The AttributeDataType can be used to interpret the defined nominal values of this instance. Gets the AttributeType object, defining this instance. Gets the collection of the 'RequiredValue' elements for this nominal scaled attribute constraint. Gets a list of corresponding to the associated nominal values of this instance. This class is a wrapper for the CAEXElement 'OrdinalScaledType" which defined a value range for an attribute constraint. Initializes a new instance of the class. An 'OrdinalScaledType' XML node. Gets the type-decoded value and sets the type-encoded value for the value attribute with the defined name. The allowed Names are and and . A type based object Gets the for the value attribute with the defined attribute name. are and and . The CAEXValue for the named attribute. Gets the Attribute datatype which is valid for values of all of this element. Gets the attribute, which specifies the attribute data type for the value elements of this instance. Gets and sets the required maximal value for this ordinal scaled attribute constraint. Gets and sets the required minimal value for this ordinal scaled attribute constraint. Gets and sets the required value for this ordinal scaled attribute constraint. Gets all the CAEXValue objects for the defined value attributes of this instance. Recognized value attributes are and and . This class is a CAEXWrapper for the CAEX-Element 'RoleRequirements'. Initializes a new instance of the class. A 'RoleRequirements' XML node. Gets a collection of Attribute objects contained in this instance. Gets the attributes and all nested attributes. Gets the collection of ExternalInterface objects including all nested descendant interfaces Gets a collection of ExternalInterface objects contained in this instance. Gets the MappingObject of this RoleRequirements object. Please note, if no MappingObject exists, an empty Wrapper is returned. Use the method to create one. This Property is only defined since CAEX 3.0. Gets and sets the RefBaseRoleClassPath attribute of this RoleRequirements object. The property is equivalent to this. For direct RoleClass assignments use . Gets and sets the referenced RoleClass using the Gets or sets the role reference. The property is equivalent to this. The role reference. Gets the collection of CAEX attributes from the which are qualified with the name of a SupportedRoleClass. This method is valid for documents based on CAEX 2.15 only. The qualification of attributes is a feature to assign multiple roles to an InternalElement. This property supports the Multiple Roles concept in AutomationML 2.0, based on CAEX 2.15. The property is not applicable for documents, based on CAEX 3.0 and later. It gets the role class interfaces of supported role class objects which are not assigned to this RoleRequirements instance. The returned ExternalInterfaces are created with a qualified Name, including the supported role class name, a separator string "." and the interface name. This property supports the Multiple Roles concept in AutomationML 2.0, based on CAEX 2.15. The property is not applicable for documents, based on CAEX 3.0 and later. It gets the role class attributes of supported role class objects which are not assigned to this RoleRequirements instance. The returned Attributes are created with a qualified Name, including the supported role class name, a separator string "." and the attribute name. This method supports the Multiple Roles concept in AutomationML 2.0, based on CAEX 2.15. The method is not applicable for documents, based on CAEX 3.0 and later. It tests, if the provided attribute is a role class attributes of a supported role class object which can be used in a Multiple role mapping and is assignable to this RoleRequirements instance The tested attribute. true if the attribute is an assignable role class attribute; otherwise, false. This method supports the Multiple Roles concept in AutomationML 2.0, based on CAEX 2.15. The method is not applicable for documents, based on CAEX 3.0 and later. It tests, if the provided Attribute object is a role class attribute of a supported role class object which can be used in a Multiple role mapping and assigns it to this RoleRequirements instance. The tested attribute. the newly created and assigned Attribute, if the Attribute object is assigned to the role class interface; otherwise, null. This method supports the Multiple Roles concept in AutomationML 2.0, based on CAEX 2.15. The method is not applicable for documents, based on CAEX 3.0 and later. It tests, if the provided ExternalInterface object is a role class interface of a supported role class object which can be used in a Multiple role mapping and is assignable to this RoleRequirements instance The tested external interface. true if the ExternalInterface object is an assignable role class interface; otherwise, false. This method supports the Multiple Roles concept in AutomationML 2.0, based on CAEX 2.15. The method is not applicable for documents, based on CAEX 3.0 and later. It tests, if the provided ExternalInterface object is a role class interface of a supported role class object which can be used in a Multiple role mapping and assigns it to this RoleRequirements instance. The tested external interface. the newly created and assigned ExternalInterface, if the ExternalInterface object is assigned to the role class interface; otherwise, null. Gets the collection of CAEX External Interfaces from the which are qualified with the name of a SupportedRoleClass. This method is valid for documents based on CAEX 2.15 only. The qualification of ExternalInterfaces is a feature to assign multiple roles to an InternalElement and apply a mapping to the Interface objects. Retrieves the and gets the according original RoleClass Attribute of each qualified Attribute. This method is valid for documents based on CAEX 2.15 only. The qualification of attributes is a feature to assign multiple roles to an InternalElement. Retrieves the and gets the according original RoleClass Interfaces of each qualified ExternalInterface. This method is valid for documents based on CAEX 2.15 only. The qualification of attributes is a feature to assign multiple roles to an InternalElement. Conversion to get access to specific AutomationML defined Attributes from the RoleRequirements object. The RoleRequirements object The result of the conversion. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The RoleRequirementsType defines the and sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The RoleRequirementsType defines the and sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Adding a new MappingObject element to this RoleRequirements object. The new MappingObject element if not existing, otherwise the existing. A RoleRequirements object doesn't exist! If the Document Schema Version is prior to Version 3.0. Applicable since CAEX Version 3.0 Determines whether this RoleRequirements object has an associated reference to the provided RoleClass. If inheritance relations between RoleClasses should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified RoleClass is either identical to the referenced RoleClass or the referenced RoleClass is derived from the provided RoleClass. The RoleClass object. if set to true inheritance relations are regarded (default is false). true if this RoleRequirement object has an associated reference to the specified RoleClass; otherwise, false. roleClass Exception for violations of the CAEX Schema. An example for a violation is the insertion of more than one RoleRequirement object into an InternalElement. Initializes a new instance of the class with serialized data. serialize object information. context information. Initializes a new instance of the class. Initializes a new instance of the -class with the defined error message. message containing error information. Initializes a new instance of the class. The message. The inner. 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. Initializes a new instance of the class. A 'SupportedRoleClass' XML node. Gets the MappingObject associated with a SupportedRoleClass. Mapping objects are used to define mappings between properties of the associated object and the role class itself. Gets and sets the Attribute of this SupportedRoleClass object. Gets and sets the RoleClass, referenced from this SupportedRoleClass object using the . Gets or sets the role reference. This property is equivalent to . The role reference. Gets the associated SystemUnitClass for this SupportedRoleClass object. Inserts the specified CAEX object in it's associated sequence. The SupportedRoleClassType defines the The CAEX object if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The SupportedRoleClassType defines the The CAEX object true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Adding a new MappingObject element to this SupportedRoleClass. The new MappingObject element if not existing, otherwise the existing. A SupportedRoleClass object doesn't exist! This class is a CAEXWrapper for the 'UnknownType' Element which is a choice for an Gets and sets the value of the Requirements element Initializes a new instance of the class. An 'UnknownType' XML node. A Sequence of XML elements related to a specific element name. An XML element may contain different NamedElementSequences with different names. The element selection condition used to select elements to create the sequence. Gets or sets the value at the specified index. The index of the element in the collection. Creates a new instance of the XElementSequence for the specified owner and the specified name which has to be a valid name for child elements, which can be filtered out from the owner by this name. The owner. The name. Initializes a new instance of the class. The owner. Name of the element. The condition. Gets the CAEX owner of this sequence Gets the number of elements in this sequence Gets the name of the elements in this sequence Gets a list of unwrapped CAEX elements (XElements) of this sequence Determines, if the sequence contains any element Gets the owner of this sequence Gets the first element in this sequence. Gets the last element in this sequence Determines, if the local names are equal. Determines, if the local names are equal. Returns an enumerator that iterates through the collection. An enumerator that can be used to iterate through the collection. Removes all CAEX objects from this sequence. Removes the element at the given index. The index. true, if element at index exists and is removed. Gets the Index of the specified element in the sequence of elements with the same name The element. The index of the element. Removes the XML node. The XML node. This class implements methods to work with a sequence of CAEX elements and indexed access to their values. The Value type Gets the value of the CAEX object in this sequence at the given position index position of the element The value. The value converter Gets the Index of the specified element in the sequence of elements with the same name The element. The index of the element. Creates a new instance of the ValueSequence for the specified owner and the specified name which has to be a valid name for child elements, which can be filtered out from the owner by this name. The owner. The element name. Creates a new instance of the ValueSequence for the specified owner and the specified name which has to be a valid name for child elements, which can be filtered out from the owner by this name. The specified condition is used as an additional filter criteria. The owner. The element name. Filter criteria. Gets the collection of Xml-Elements and their associated Values in this ValueSequence. Gets a collection of values of the CAEX elements of this sequence Creates a new CAEX object and appends it to the value sequence. The value of the appended object is set to the provided value. The value. The created XML node. The element could not be appended. Gets the value from the element at the specified index. The index. The value. Gets the enumerator for this sequence which enumerates the . An enumerator that can be used to iterate through the collection. Creates a new CAEX object with the provided value and prepends it to already existing elements. The value. The XML node of the created CAEX object. Could not add class defining an Xml-Element and its associated Value Creates the ElementValue structure for the defined Element and Value The element The value The Xml-Element The Value of the Xml-Element transformed to the DataType The type of the data type. Function to convert data from the XML-representation to the defined DataType Function to convert data to an XML-representation Initializes a new instance of the ElementValueConverter class. Sets custom value converters to support conversion from objects to user defined types. The convert from. The convert to. Sets the element value. The element. The value. Gets the element value. The element. 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. this is any CAEXWrapper type Creates a new instance of the CAEXSequencce for the specified owner and the specified name which has to be a valid name for child elements, which can be filtered out from the owner by this name. The owner CAEX-Name of the items in this sequence The constructor function Gets a wrapper for the first CAEX element in this sequence, if the sequence contains no elements null is returned. Gets a wrapper for the last CAEX element in this sequence, if the sequence contains no elements null is returned. Gets a collection of all CAEX descendants of this sequence in document order Gets a wrapper for the CAEX element in this sequence at the given position index position of the element The created CAEX wrapper. Gets the first CAEX object with a specific attribute value from the sequence of elements Pair of attribute name and attribute value the first CAEX object, which matches this condition. Moves the CAEX object at the specified index to a new location in the collection. The zero-based index specifying the location of the CAEX object to be moved. The zero-based index specifying the new location of the CAEX object. Creates a new CAEX object and appends it to already existing elements in this sequence. the created CAEX object raised, when this parent child relation violates the CAEX schema. Creates a new CAEX object and appends it to already existing elements. The content of the new element can be optionally defined using an array of tuples defining attribute names and their values. The attribute value tuples. the created CAEX object. This sample shows how to apply this method: var doc = CAEXDocument.New(); var at = doc.CAEXFile.AttributeTypeLib.Append (new Tuple <string,object>[] { Tuple.Create<string,object>("Name", "ALIB") }); Gets the CAEX object at the specified index. The index. the CAEX object from the given index, or null. Gets the enumerator for this sequence. The enumerator Gets the Index of the specified CAEX object in this sequence of elements. the CAEX object the Index of the specified CAEX object. Inserts the specified CAEX object into this sequence. If no position is specified the element is appended. If 'asFirst' is set to true, the element is prepended to already existing ones. the CAEX object optional parameter, if set to true (default) the object is prepended to already existing ones, otherwise it is appended. The inserted CAEX object. If the provided CAEX object already belongs to a sequence, a copy of the CAEX object is inserted and returned as the result. If the provided CAEX object already has an associated parent, a deep copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object into this sequence at the defined index. The Position of the element The CAEX object The inserted CAEX object. If the provided CAEX object already belongs to a sequence, a copy of the CAEX object is inserted and returned as the result. If the provided CAEX object already has an associated parent, a deep copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Creates a new CAEX object and prepends it to already existing elements. The created CAEX object. Creates a new CAEX object and prepends it to already existing elements. The content of the new element can be defined using an array of tuples defining attribute names and their values. The attribute value tuples. The created CAEX object. Removes the provided CAEX object from this sequence. The CAEX object. This method creates a CAEXWrapper for the provided node by invoking the constructor delegate. This method can be overridden if a direct constructor can be called which can be faster. the wrapped XML node The CAEXWrapper for the provided node. This method uses the Schema manager to create a new sequence member. This Method can be overridden if a faster method is provided without using the schema manager (if the requirements to create a schema conform element are known). The sequence owner. The new XML element which can be added to this sequence. Generic base class for all library objects of CAEX, which are: , , , , . Initializes a new instance of the class. Any CAEX library XML node. Gets or sets the constructor function to create the element sequence. Gets the collection of LibraryElements contained in this instance. Gets the enumerator to iterate through the collection of library objects. An enumerator that can be used to iterate through the collection of library objects. Gets the enumerator to iterate through the collection of library objects. An enumerator that can be used to iterate through the collection of library objects. Inserts the provided CAEX object as a new sibling after this CAEX object. The CAEX object to be inserted. caexObject The provided object is not allowed to be a sibling of this instance. Inserts the provided CAEX object as a new sibling before this CAEX object. The CAEX object to be inserted caexObject The provided object is not allowed to be a sibling of this instance. This Class is a wrapper for the CAEXElement 'ExternalInterface' Initializes a new instance of the class. An 'ExternalInterface' XML node. The constructor function for the . Determines, if this external interface is associated to a SystemUnitClass, InternalElement, InterfaceClass, RoleClass or RoleRequirement and returns the Wrapper for this associated object. Also works for nested Interfaces. The associated object. Gets a value indicating whether this instance is a master. Determines, if this instance is a Mirror Gets and sets the Master. A Master is only defined, if this instance is a . Setting a master will transform this instance into a mirror. The master. Gets the master, if this is a mirror object. Gets the master identifier, if this ExternalInterface is a mirror . Conversion to get access to specific AutomationML defined Attributes, assigned to the specified External Interface object. The CAEX External Interface object. The InterfaceClass object, converted to an type, which provides access to specific AML defined attributes. interfaceClass Creates a new Mirror of this ExternalInterface, using this instance as the new master of the created mirror. The created mirror ExternalInterface. Removes this ExternalInterface. After that it is no longer assigned to a document and has no owner anymore. If this ExternalInterfaces has InternalLink relations, the InternalLink relations are removed too. Gets or sets the references interface class. Determines whether this ExternalInterface object has an associated reference to the specified InterfaceClass. If inheritance relations between InterfaceClasses should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified InterfaceClass is either identical to a referenced InterfaceClass or a referenced InterfaceClass is derived from the specified InterfaceClass. The InterfaceClass object. if set to true inheritance relations are regarded (default is false). true if this ExternalInterface object has an associated reference to the specified InterfaceClass; otherwise, false. interfaceClass This Class is a wrapper for the CAEXElement 'ExternalReference' which is a container element for the alias definition of external CAEX files. Initializes a new instance of the class. The 'ExternalReference' XML node. Gets and sets the alias name of an external CAEX file to enable referencing elements of the external CAEX file from other elements Gets and sets the path of the external CAEX file. According to CAEX absolute and relative paths are allowed. Inserts the provided CAEX object as a new sibling after this CAEX object. The CAEX object to be inserted. caexObject The provided object is not allowed to be a sibling of this instance. Inserts the provided CAEX object as a new sibling before this CAEX object. The CAEX object to be inserted. caexObject The provided object is not allowed to be a sibling of this instance. Interface to define elements which contain a collection of internal elements Gets the collection of InternalElement objects contained in this instance. This Class is a wrapper for the CAEXElement 'InterfaceClassLib' Initializes a new instance of the class. An 'InterfaceClassLib' XML node. Gets a collection of the InterfaceClass objects contained in this InterfaceClass Library. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The InterfaceClassLib defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given position. The InterfaceClassLib defines the sequence. The position The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Interface that defines methods and properties that apply to all classes that are able to contain attributes. Get the collection of all attributes of this object. Inherited Attributes are not included. Gets the attributes and all nested attributes. Interface that defines methods and properties that apply to all classes that are able to contain ExternalInterface objects. Gets the collection of ExternalInterface objects Gets the collection of ExternalInterface objects including all nested descendant interfaces This class is a CAEXWrapper for the CAEX element 'RefSemantic' used in an . Initializes a new instance of the class. A 'RefSemantic' XML node. Gets and sets the Attribute 'CorrespondingAttributePath' of the RefSemantic object. This Class is a wrapper for the CAEXElement 'RoleClassLib' which is a Container element for a hierarchy of Role class definitions wrapped into . CAEX supports multiple role class libraries. Initializes a new instance of the class. The 'RoleClassLib' XML node. Gets the collection of RoleClass objects contained in this library. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The RoleClassLibType defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given position. The RoleClassLibType defines the sequence. The position The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. This Class is a wrapper for the CAEXElement 'SourceDocumentInformation' which a structure to model information about the data source of the present CAEX document. Initializes a new instance of the class. A 'SourceDocumentInformation' XML node. gets and sets the Date and time of the creation of the CAEX document. Gets and sets an identifier of the origin of the CAEX document, e.g. a unique identifier of a source engineering tool or an exporter software. The ID shall not change even if the origin gets renamed Gets and sets the Name of the origin of the CAEX document, e.g. the source engineering tool or an exporter software Gets and sets a unique identifier of the corresponding source project (optional in CAEX) Gets and sets the title of the corresponding source project (optional in CAEX) Gets and sets the release information of the origin of the CAEX document, e.g. the version of the source engineering tool or the exporter software (optional in CAEX) Gets and sets the vendor of the data source of the CAEX document (optional in CAEX) Gets and sets the vendors URL of the data source of the CAEX document (optional in CAEX) Gets and sets the Version of the origin of the CAEX document, e.g. the version of the source engineering tool or the exporter software. This class is a wrapper for the CAEX element 'SourceObjectInformation'. This element can be assigned to a 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. Initializes a new instance of the class. A 'SourceObjectInformation' XML node. Gets and sets a value for the OriginID attribute of a SourceObjectInformation object. Gets and sets a value for the SourceObjID attribute of a SourceObjectInformation object. This class is the base CAEXWrapper class, defined for all CAEX objects. The CAEXWrapper class supports notifications of changes. A new CAEXWrapper instance is constructed to wrap the provided XML element. The XML element. The Change event raised when any property is modified. Gets the CAEX document of this CAEX object. If the CAEX object has not been inserted into a document or has been removed from the document, the value is null. Gets the CAEXParent of this instance if it exists. Gets the CAEXSequence containing this CAEX object The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Gets the XDocument of the wrapped XML-Element Determines if this is a wrapper around an existing XML-Element Gets the wrapped XML-Element Gets the wrapped Xml-Element's parent Gets the name of the CAEX tag for this CAEX object. operator overload (compares the wrapped nodes) The obj1. The obj2. The result of the operator. operator overload (compares the wrapped nodes) The obj1. The obj2. The result of the operator. Gets the first child of this CAEX object with the defined CAEX tag name. The CAEX tag name of the child. The child, if it exists; otherwise null. Gets all children of this CAEX object with the defined CAEX tag name. The CAEX tag name of the child. The children, if existing; otherwise Enumerable.Empty. Creates a deep copy of this CAEX object if set to true a deep copy is created; otherwise only the attributes are included in the copy. if set to true all IDs, defined in the Node and the descendants get new IDs. if set to true sub classes of SystemUnitClasses, InterfacesClasses, RoleClasses and AttributeTypes are included in the copy. The default value is false. The copied CAEX object. Equality of CAEX wrapper instances is defined on the equality of the wrapped XML elements. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Gets the Hash code for this instance, using the wrapped XML element. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Gets the value of the Xml-Attribute with the specified attribute name of the wrapped Xml-Element. The name of the attribute. The attribute value if the attribute is defined, otherwise null. This method can be used to create an XML node, if this CAEX wrapper was instantiated without an XML node. This method can only be applied, if an is defined. The new created CAEX object is inserted as a new child of the owner. true, if the XML node could be created and inserted as a new child of the owner. Removes this element. After that it is no longer assigned to a document and has no owner anymore. Sets the value of an attribute, adds an attribute, or removes an attribute (if the value is null). The name of the attribute The attribute value. This methods creates the delegate for the constructor of the wrapped items. Gets the first child of the wrapped XML element with the defined element name. The element name (Tag name). The child, if it exists; otherwise null. Gets the list of all child's of the wrapped XML element with the defined element name. The element name (Tag name). An enumeration of all child's with the defined element name. Gets the XName for the provided tagName suitable to this Nodes Namespace Raise the event for the property with the defined name. Tries to extract a class qualifier from a path Collection of available class names The path. 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. The type of the data type. Initializes a new instance of the class. The XML node. XML node - Tried to create a Wrapper without an XML node. Gets the wrapped XML node. Gets and sets the value of the wrapped XML node, according to the defined DataType. If the element doesn't exists, it is created and inserted into the document as a child of the defined owner. The value. The class CAEXBasicObject comprises a basic set of attributes and header information which exist for all CAEX elements. Initializes a new instance of the class. Any CAEX BasicObject XML node. Gets the collection of AdditionalInformation values contained in this instance. Gets and sets the change mode for a CAEX element (Optional in CAEX). Gets and sets the Copyright for this object. For CAEX 2.15 documents the content of the Copyright object is transformed to a string. Gets the wrapper for the Copyright element. Gets and sets the Description for this object. For CAEX 2.15 documents the content of the Description object is transformed to a string. Gets the wrapper for the Description element. Gets the collection of Revision objects contained in this instance. Gets the collection of SourceObjectInformation objects contained in this instance. Gets and sets the Version for this object. For CAEX 2.15 documents the content of the Version object is transformed to a string. Gets the wrapper for the Version element. Gets the CAEXSequence owned by this instance, which contains the specified CAEX object. For example, if the specified object is a revision object, the sequence of the revision objects is returned. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Gets the CAEX Container for elements of type T, which is owned by this CAEX object The CAEX container Inserts the specified CAEX object in it's associated sequence. The CAEXBasicObject defines the and sequences. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the CAEX object has been inserted into this sequence. Inserts the specified CAEX object in it's associated sequence at the defined position. The CAEXBasicObject defines the and sequences. The position The CAEX object. true, if a sequence could be identified and the CAEX object has been inserted into this sequence. Creates a new Revision object and inserts it to the collection of Revision objects either at the beginning or at the end of the sequence, according to the specified optional value. The Revision object is initialized with the provided values. The date. The author. if set to true the created Revision is prepended, otherwise appended. A Revision object. 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 interface. Creation of new documents with lower schema versions is possible, but in this case, the schema version has to be defined explicitly. Enumeration type defining existing and supported CAEX Versions CAEX Schema Version 2.15 CAEX Schema Version 3.0 This value is used, if the CAEX document couldn't be associated to a specific schema version private constructor setting the schema The CAEX schema version. The Commanding class, which provides events for changes of CAEX objects This event is raised after a CAEXElement has been changed. This event is raised before a CAEXElement will be changed. The Default schema for new CAEX documents Gets the CAEXFile which is the wrapper for the root element in the CAEX document Gets the command instance for this document, which enables registration of change events Gets the Schema of the CAEXDocument Gets the schema manager for this document Gets the schema version string for the assigned schema Gets a value indicating whether this instance has an active schema transformation. true if this instance is transformation active; otherwise, false. Gets the schema manager for the CAEX document which contains the provided XML node. The XML node. The AML schema manager. Gets the schema manager for the CAEX document which contains the provided CAEX object. The CAEX object. The AML schema manager. Gets the CAEX document which contains the specified CAEX object. If the CAEX object has not been inserted into a CAEX document, no CAEX document is returned. The CAEX object. The CAEX document. Gets the CAEX document which contains the specified XML node. The CAEXDocument, containing the XML node. Loading a CAEX file from the specified Byte-Array. The CAEX file to load A CAEXDocument containing the CAEX-Nodes Create a CAEX document with content, loaded from a file. The schema version of the CAEX document is set accordingly to the SchemaVersion-Attribute of the CAEXFile object. The file path. The created CAEX document. filePath Create a CAEX document with content, loaded from a stream. The schema version of the CAEX document is set accordingly to the SchemaVersion-Attribute of the CAEXFile object. The content stream. The CAEX document. inStream Creates a new empty CAEX document containing only the CAEXFile Element as the root element. The CAEX document is created, using the default schema version . The created CAEX document containing the CAEXFile root element. Creates a new empty CAEX document containing only the CAEXFile element as the root element. The CAEX document is created using the specified schema version. The specified schema version defines the applicable editing methods. The schema version which defines the CAEX document. The created CAEX document containing the CAEXFile root element. Saves the CAEX document to the specified file path. The file path to save the document to. Set to true, if pretty printing is desired. filename Saves the CAEX document to the specified file path. Set to true, if pretty printing is desired The stream, containing the CAEX document content. Checks if the document is schema compliant. Log of schema violations. true, if the CAEX document is schema compliant; otherwise false. Gets the correct XName for the provided CAEX element name (Tag name).The XName contains a namespace, if the assigned schema requires a namespace. If no namespace is defined for the assigned schema (as in CAEX 2.15), no namespace is added to the XName. The XName has to be used for all Xml.Linq queries, used to access objects with the CAEX element name. A CAEX Tag name which should be transformed to a XName. The generated XName. tag name This method is called when a transformation service notifies the end of a schema transformation. The finalization performs a final scan and deletes elements and attributes which are not schema conform and adds required attributes and elements which are missing. This method is called when a transformation service notifies the start of a schema transformation. The transformation is initialized with a new schema conform CAEX document, containing the content of the source document. The target schema (needs to be different to the actual schema). the prepared document, returned to the transformation service for further processing. This class is a wrapper for the CAEX element 'CAEXFile' which is the root-element of any CAEX document. Initializes the class. Initializes a new CAEXWrapper of the 'CAEXFile' element. The CAEXFile XML node. Gets the collection of AttributeTypeLib objects contained in the CAEXFile. Gets the collection of ExternalReference objects contained in the CAEXFile. Gets and sets the FileName attribute of the CAEXFile Gets the collection of InstanceHierarchy objects contained in the CAEXFile. Gets the collection of InterfaceClassLib objects contained in the CAEXFile. Gets a value indicating whether this instance is empty. Gets the collection of RoleClassLib objects contained in the CAEXFile. Gets and sets the SchemaLocation attribute of the CAEXFile. Gets and sets the SchemaVersion attribute of the CAEXFile. Gets the collection of SourceDocumentInformation objects contained in the CAEXFile. Gets the collection of SuperiorStandardVersion objects contained in the CAEXFile. The value of the SuperiorStandardVersion object is defined as a string. Gets the collection of SystemUnitClassLib objects contained in the CAEXFile. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Gets an enumerator that enables enumeration of all libraries in the CAEX file. Libraries enumerator of the CAEX file Retrieves the file name including full path out of the CAEX document. the file name including full path of the CAEX document copied from externalization extensions Inserts the specified CAEX object in it's associated sequence. The CAEXFile defines the , , , , and sequences. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given position. The CAEXFile defines the , , , , and sequences. the position The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. The class CAEXObject is derived from CAEXBasicObject, augmented by the CAEX Attributes Name(required) and ID(optional). Specifies the format used for GUIDs. Format "D" is NOT adding {} around the GUID Initializes a new instance of the class. Any CAEX object XML node. Gets and sets a unique identifier of the CAEX object (optional in CAEX). AutomationML requires IDs for some Elements. These IDs are automatically set when such elements are created. Gets and sets the name of the CAEX object (required in CAEX). Assigns the new unique identifier as a new ID to this CAEX object. Gets the CAEX path for this object. A path can be used to uniquely reference an object, for example in inheritances and instances. The path syntax for an object is defined differently in CAEX 2.15 and CAEX 3.0. The engine uses the to generate the CAEX path of an object according to the documents CAEX version. Paths require the definition of separators between different path elements. CAEX 2.15 distinguishes between 4 separator types: Alias separator, object separator, interface separator and attribute separator. In CAEX 3.0 only the separator types Alias separator and object separator are used. Please note that this method returns a different result than the method, which always returns the path including the object names of all ancestor hierarchy levels. The CAEX path. Gets a new unique identifier. Creates a deep copy of this CAEX object, containing all child elements. The created copy will have replaced unique IDs and updated references, if the is set to true (default). When a CAEX class is copied, the nested classes that can exist for AttributeType, RoleClass, SystemUnitClass, and InterfaceClass are not included in the created copy. if set to true a deep copy is created; otherwise only the attributes are included in the copy. The default value is true. if set to true all elements with IDs get unique IDs and the ID references will be updated. The default value is true. if set to true sub classes of SystemUnitClasses, InterfacesClasses, RoleClasses and AttributeTypes are included in the copy. The default value is false. A copy of this CAEX object with unique IDs. Returns the value of the 'Name' attribute of this CAEX object as the string representation of the object. A that represents this instance. Class CAEX_CLASSModel_TagNames. gets the CAEX-Tag name for the CAEX-wrapper type. Type of the CAEX wrapper. System.String. caexWrapperType The Name of the CAEX-Element 'AdditionalInformation'. This Element has no special CAEX-Wrapper. The Name of the CAEX-Attribute 'Alias'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Element 'NominalScaledType'. CAEX-Wrapper is The Name of the CAEX-Attribute 'RequiredValue'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Attribute 'RequiredMaxValue'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Attribute 'RequiredMinValue'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Element 'OrdinalScaledType'. CAEX-Wrapper is The Name of the CAEX-Attribute 'RequiredValue'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Element 'Constraint'. The CAEX-Wrapper is The Name of the CAEX-Element 'Requirements'. This is a Child of the CAEX-Wrapper The Name of the CAEX-Element 'UnknownType'. The CAEX-Wrapper is The Name of the CAEX-Element 'AttributeDataType' contained in the The Name of the CAEX-Attribute 'DefaultValue'. This is a Property in the CAEX-Wrapper The Name of the Attribute 'CorrespondingAttributePath' of the CAEX-Element The Name of the Attribute 'FileName' of the CAEX-Element The Name of the CAEX-Attribute 'RefPartnerSideA'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Attribute 'RefPartnerSideB'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Attribute 'RefAttributeType'. This is a Property in the CAEX-Wrapper Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'RefBaseClassPath'. This is a Property in all Classes that implement The Name of the CAEX-Attribute 'RefBaseRoleClassPath'. This is a Property in The Name of the CAEX-Attribute 'RefBaseSystemUnitPath'. This is a Property in The Name of the CAEX-Attribute 'RefRoleClassPath'. This is a Property in The Name of the Xml-Schema Location Attribute 'xsi:noNamespaceSchemaLocation' The Name of the Xml-Schema Version Attribute 'SchemaVersion' of the CAEX-Element The Name of the CAEX-Attribute 'RefSemantic'. A Property in . The Name of the CAEX-Attribute 'RoleAttributeName' in an AttributeNameMapping. The CAEX-Wrapper is . The Name of the CAEX-Attribute 'RoleInterfaceID' in an InterfaceIDMapping. The CAEX-Wrapper is . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'RoleInterfaceName' in an InterfaceNameMapping. The CAEX-Wrapper is . Changed to in CAEX 3.0 The Name of the CAEX-Element 'Attribute'. The CAEX-Wrapper is . The Name of the CAEX-Attribute 'SystemUnitAttributeName' in an AttributeNameMapping. The CAEX-Wrapper is . The Name of the CAEX-Attribute 'SystemUnitInterfaceID' in an InterfaceIDMapping. The CAEX-Wrapper is . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'SystemUnitInterfaceName' in an InterfaceNameMapping. The CAEX-Wrapper is . Changed to in CAEX 3.0 The Name of the CAEX-Attribute 'Unit' of the CAEX-Element The Name of the CAEX-Element 'AttributeValueRequirement'. This is a Property in the CAEX-Wrapper The Name of the CAEX-Attribute 'Value'. A Property in the CAEX-Wrapper . The TypeName of the CAEX-Element 'AttributeType'. The CAEX-Wrapper is for the Type. Applicable since CAEX-Version 3.0 The TypeName of the CAEX-Element 'AttributeType'. The CAEX-Wrappers are . Applicable since CAEX-Version 3.0 The TypeName of the CAEX-Element 'AttributeTypeLib'. The CAEX-Wrappers are . Applicable since CAEX-Version 3.0 The Name of the CAEX-Element 'CAEXFile'. The CAEX-Wrapper is . The Type Name of any CAEXBasicObject. The CAEX-Wrapper is . The Type Name of any CAEXObject. The CAEX-Wrapper is . The Name of the CAEX-Attribute 'ChangeMode'. This is an attribute of any . The Name of the CAEX-Element 'Copyright'. This is an element in any Header . The Name of the CAEX-Element 'Copyright'. This is an element in any Header . The Name of the CAEX-Element 'ExternalInterface'. The CAEX-Wrapper is . The Name of the CAEX-Element 'ExternalReference'. The CAEX-Wrapper is . The Name of the CAEX-Attribute 'ID'. This is defined for every . The Name of the CAEX-Element 'InstanceHierarchy'. CAEX-Wrapper is . The Name of the CAEX-Element 'InterfaceClass'. The CAEX-Wrappers are and The Name of the CAEX-Element 'InterfaceClassLib'. The CAEX-Wrapper is . The TypeName of the CAEX-Element 'InterfaceClass'. The CAEX-Wrappers are and for the Type. The Name of the CAEX-Element 'InternalElement'. The CAEX-Wrapper is . The Name of the CAEX-Element 'InternalLink'. The CAEX-Wrapper is . The Name of the CAEX-Attribute 'LastWritingDateTime' defined in Applicable since CAEX-Version 3.0 The Name of the CAEX-Element 'AttributeNameMapping'. The CAEX-Wrapper is . The Name of the CAEX-Element 'InterfaceIDMapping'. The CAEX-Wrapper is . Applicable since CAEX-Version 3.0 The Name of the CAEX-Element 'InterfaceNameMapping'. The CAEX-Wrapper is . Changed to since CAEX-Version 3.0 The Name of the CAEX-Element 'MappingObject'. The CAEX-Wrapper is . The Name of the Type of the CAEX-Element 'MappingObject'. The CAEX-Wrapper is . The Name of the additional AutomationML-CaexFile-Attribute 'AutomationMLVersion'. Deprecated since CAEX-Version 3.0 The meta attribute name document identifier is used to identify . The meta attribute name document version is used to identify defined in the of a . The Name of the additional AutomationML-CaexFile-Element 'WriterHeader'. Deprecated since CAEX-Version 3.0 The meta WriterID string The meta WriterName string The meta WriterProjectID string The meta WriterProjectTitle string The meta WriterRelease string The meta WriterVendor string The meta WriterVendorURL string The meta WriterVersion string The Name of the CAEX-Attribute 'Name'. This is an Element in every . The Name of the CAEX-Attribute 'OriginID'. This is an Element in every . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'OriginName'. This is an Element in every . The Name of the CAEX-Attribute 'OriginProjectID'. This is an Element in every . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'OriginProjectTitle'. This is an Element in every . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'OriginRelease'. This is an Element in every . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'OriginVendor'. This is an Element in every . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'OriginVendorURL'. This is an Element in every . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'OriginVersion'. This is an Element in every . The Name of the CAEX-Attribute 'Path'. This is defined in The Name of the CAEX-Element 'RefSemantic'. This is a CAEX-Element with the CAEX-Wrapper The Name of the CAEX-Element 'AuthorName'. This is an element in . The Name of the CAEX-Element 'Comment'. This is an element in . The Name of the CAEX-Element 'RevisionDate'. This is an element in . The Name of the CAEX-Element 'NewVersion'. This is an element in . The Name of the CAEX-Element 'OldVersion'. This is an element in . The Name of the CAEX-Element 'Revision'. The CAEX-Wrapper is . The Name of the CAEX-Element 'RoleClass'. The CAEX-Wrappers are and . The Name of the CAEX-Element 'RoleClassLib'. The CAEX-Wrapper is . The TypeName of the CAEX-Element 'RoleClass'. The CAEX-Wrappers are and for the Type. The Name of the CAEX-Element 'RoleRequirements'. The CAEX-Wrapper is . The Name of the CAEX-Element 'SourceDocumentInformation'. CAEX-Wrapper is . Applicable since CAEX-Version 3.0 The Name of the CAEX-Element 'SourceObjectInformation'. CAEX-Wrapper is . Applicable since CAEX-Version 3.0 The Name of the CAEX-Attribute 'SourceObjID'. This Attribute is defined in . Applicable since CAEX-Version 3.0 The TypeName of the CAEX-Element 'SuperiorStandardVersion'. Applicable since CAEX-Version 3.0 The Name of the CAEX-Element 'SupportedRoleClass'. The CAEX-Wrapper is . The Name of the CAEX-Element 'SystemUnitClass'. The CAEX-Wrappers are and . The Name of the CAEX-Element 'SystemUnitClassLib'. The CAEX-Wrapper is . The TypeName of the CAEX-Element 'SystemUnitClass'. The CAEX-Wrappers are and for the Type. The Name of the CAEX-Element 'Version'. This may be defined in every . The CAEXNamespace of a CAEX Document Applicable since CAEX-Version 3.0 Enumeration defining possible ChangeMode values of the ChangeMode Attribute corresponds to attribute value 'state' corresponds to attribute value 'create' corresponds to attribute value 'delete' corresponds to attribute value 'change' corresponds to a null attribute value This Class is a wrapper for the CAEXElement 'InstanceHierarchy' which is a Container element for a hierarchy of InternalElements. Initializes a new instance of the class. An 'nstanceHierarchy' XML node. The constructor function for the . Gets the List of wrappers for the InternalElements of the top level of the InstanceHierarchy. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The InstanceHierarchy defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given position. The InstanceHierarchy defines the sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. This Class is a wrapper for the CAEXElement 'InterfaceClass' Creates a Wrapper for the specified XElement, if it is a CAEX InterfaceClass. An 'InterfaceClass' or 'ExternalInterface' XML node. Gets the collection of Attributes for this Instance Gets the attributes and all nested attributes. Gets the collection of ExternalInterface objects including all nested descendant interfaces Gets and sets the ReferencedBaseClass for this instance. Gets the collection of ExternalInterfaces for this Instance. Nested Interfaces are allowed only in AMLDocuments based on CAEX Version 3.0 and later. Gets and sets the path which references a base class Conversion to get access to specific AutomationML defined Attributes, assigned to the specified InterfaceClass object. The CAEX InterfaceClass object. The InterfaceClass object, converted to an type, which provides access to specific AML defined attributes. interfaceClass Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The InterfaceClass defines the and sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given position. The InterfaceClass defines the and sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. This Class is a wrapper for the CAEXElement 'InterfaceFamilyType' Initializes a new instance of the class. An 'InterfaceClass' XML node. The constructor function for the . Gets and sets the ReferencedBaseClass for this instance. Gets the collection of InterfaceClass objects contained in this instance. Gets and sets the path which references a base class. This property is used to create class to class relations between InterfaceClass objects. According to CAEX, a class shall not inherit from itself or from a derivative of itself, therefore any cyclic reference is denied. Gets the name (not the full path) of the referenced base class. The name of the referenced class. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Creates an ExternalInterface object as an instance of this InterfaceClass object. All Base-Class references are resolved to create the instance - copying the Attribute and ExternalInterface objects to the created ExternalInterface object. The IDs of the ExternalInterface objects are made unique. The ExternalInterface object Creates a ExternalInterface object as an instance of this InterfaceClass object. All Base-Classes are resolved to create the instance. The CAEXWrapper for the ExternalInterface Gets the Enumerator for the enumeration of the field. Enumerator for InterfaceClass Gets the Enumerator for the enumeration of the field. Enumerator for InterfaceClass Gets the reference (Inheritance) hierarchy including this instance in an ordered sequence of ancestors. Collection of base classes Gets the reference (Inheritance) hierarchy including this instance in an ordered sequence of ancestors. Type of the CAEX class in the hierarchy. a queue of ancestors. this instance is first in the queue Inserts the specified CAEX object in it's associated sequence. The InterfaceFamilyType defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The InterfaceFamilyType defines the sequence. The position The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. This Class is a wrapper for the CAEXElement 'InternalElement'. Initializes a new instance of the class. An 'InternalElement' XML node. The constructor function for the . Gets a value indicating whether this instance is a master. Determines, if this instance is a Mirror Gets the MappingObject of an InternalElement Only valid for CAEX 2.15. Don't use this property for later versions of CAEX. Gets and sets the Master. A Master is only defined, if this instance is a . Setting a master will transform this instance into a mirror. Gets the master. Gets the master identifier, if this InternalElement is a mirror . Gets and sets the RefBaseSystemUnitPath Attribute of an InternalElement. For Class assignments the property is appropriate. Gets all role references for the InternalElement. The collection includes all RoleRequirement objects and SupportedRoleClass objects. Gets the collection of RoleRequirements objects contained in this instance. Gets and sets the referenced SystemUnitClass using the Adds a RoleClass reference to this InternalElement object using the provided RoleClass object. The RoleClass reference is added as a object. For CAEX documents which are based on CAEX version 2.15, only one RoleRequirement is allowed for an InternalElement. Additional RoleClass references are automatically added as SupportedRoleClass objects. The RoleClass to be assigned to the InternalElement. if set to true [add supported role class]. if set to true, the RoleClass reference is not added, if a reference to the provided RoleClass already exists. if set to true, the reference is created as am instance of the RoleClass, containig all ExternalInterfaces and Attributes of the RoleClass. The new added RoleClass reference, which is either a RoleRequirement or a SupportedRoleClass. roleClass The default behaviour is, that only a reference to the role class is added and no instance of the class containing all Attributes and ExternalInterface objects. If an instance is required, set the optional parameter 'addInstance' to true or use the and the methods. This sample shows how to call the method using a standard base RoleClass from the var amlBaseRoleClassLib = AutomationMLBaseRoleClassLibType.RoleClassLib (myDocument); var myIH = myDocument.CAEXFile.InstanceHierarchy.Append ("myIH"); var myIE = myIH.InternalElement.Append("myIH"); myIE.AddRoleClassReference (amlBaseRoleClassLib.AutomationMLBaseRole); Adds a RoleClass reference to this InternalElement object using the provided CAEX path, referencing a RoleClass object. The RoleClass reference is added as a object. For CAEX documents which are based on CAEX version 2.15, only one RoleRequirement is allowed for an InternalElement. Additional RoleClass references are added as SupportedRoleClass objects. The CAEX path referencing a RoleClass to be assigned to the InternalElement. if set to true the reference is not added, if the same reference already exists. if set to true, the reference is created as an instance of the RoleClass, identified by the provided roleClassReference, containig all ExternalInterfaces and Attributes of the RoleClass. The new added RoleClass reference, which is either a RoleRequirement or a SupportedRoleClass. roleClassReference The default behaviour is, that only a reference to the role class is added and no instance of the class containing all Attributes and ExternalInterface objects. If an instance is required, set the optional parameter 'addInstance' to true or use the and the methods, This sample shows how to call the method using a standard RoleClass path defined in the var myIH = myDocument.CAEXFile.InstanceHierarchy.Append ("myIH"); var myIE = myIH.InternalElement.Append("myIH"); myIE.AddRoleClassReference (AutomationMLBaseRoleClassLib.AutomationMLBaseRole); Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Creates a new mirror element from this InternalElement Creates a system unit class from this InternalElement instance. RoleRequirements are transformed to SupportedRoleClasses. Attributes and ExternalInterfaces of RoleRequirements are removed. Determines whether this InternalElement object has an associated reference to a RoleClass which is a generalization of the specified which means, that the specified RoleClass is more specific than any already associated RoleClass of this InternalElement. The RoleClass object. true if this InternalElement object has an associated RoleClass, which is a generalization of the specified RoleClass; otherwise, false. roleClass Determines whether this InternalElement object has an associated RoleClass reference which is a generalization of the specified CAEX path role reference. The role reference. true if this InternalElement object has an associated RoleClass reference which is a generalization of the specified CAEX path role reference; otherwise, false. roleReference Determines whether this InternalElement object has an associated reference to the specified RoleClass. If inheritance relations between role classes should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified RoleClass is either identical to a referenced RoleClass or a referenced RoleClass is derived from the specified RoleClass. The RoleClass object. if set to true inheritance relations are regarded (default is false). true if this InternalElement object has an associated reference to the specified RoleClass; otherwise, false. roleClass This sample shows how to call the method using a standard base RoleClass from the var amlBaseRoleClassLib = AutomationMLBaseRoleClassLibType.RoleClassLib (myDocument); InternalElementType internalElement; ... internalElement.HasRoleClassReference (amlBaseRoleClassLib.AutomationMLBaseRole); Determines whether this InternalElement object has an associated reference to the specified SystemUnitClass. If inheritance relations between systemUnitClasses should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified SystemUnitClass is either identical to a referenced SystemUnitClass or a referenced SystemUnitClass is derived from the specified SystemUnitClass. The SystemUnitClass object. if set to true inheritance relations are regarded (default is false). true if this InternalElement object has an associated reference to the specified SystemUnitClass; otherwise, false. roleClass Determines whether this InternalElement object has an associated RoleClass reference with the specified CAEX path role reference. If inheritance relations between role classes should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified RoleClass is either identical to a referenced RoleClass or a referenced RoleClass is derived from the specified RoleClass. The role reference. if set to true inheritance relations are regarded (default is false). true if this InternalElement object has an associated RoleClass reference with the specified CAEX path role reference; otherwise, false. roleReference This sample shows how to call the method using a standard base RoleClass path from the InternalElementType internalElement; ... internalElement.HasRoleClassReference (AutomationMLBaseRoleClassLib.AutomationMLBaseRole); Inserts the specified CAEX object in it's associated sequence. The InternalElement defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given position. The InternalElement defines the sequence. The position. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Adding a new MappingObject element to this InternalElement. The new MappingObject element if not existing, otherwise the existing. An InternalElement object doesn't exist! Raised if applied to CAEX 3.0 and later versions. Only valid for CAEX 2.15. Don't use this method for later versions of CAEX. If used for later versions, a SchemaConformanceException is raised. Replaces an existing role class reference to the provided role or any generic base role of the provided role by a new instance of the role class. The role class. if set to true a supported role class is created. roleClass roleClass This Class is a wrapper for the CAEXElement 'MappingObject' Initializes a new instance of the class. A 'MappingObject' XML node. Gets the Role reference, which can provide additional RoleClass Mapping elements/>. Gets the collection of AttributeNameMapping objects contained in this instance. Gets the collection of InterfaceIDMapping objects contained in this instance. InterfaceIDMapping Elements are only defined since CAEX Version 3.0. Gets the collection of InterfaceNameMapping objects contained in this instance. InterfaceNameMapping Elements are only defined in CAEX Version 2.15. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The MappingType defines the , and sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence at the given position. The MappingType defines the , and sequence. The position The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. This Class is a wrapper for the CAEXElement 'Revision' which contains organizational information about the state of the revision of a CAEX object Initializes a new instance of the class. The 'Revision' XML node. Gets or sets the name of the author. The name of the author. Gets or sets the comment. The comment. Gets or sets the new version. The new version. Gets and sets the provided CAEX object as the new version. Gets or sets the old version. The old version. Gets and sets the provided CAEX object as the old version. Gets or sets the revision date. The revision date. This Class is a wrapper for the CAEXElement 'RoleClass' Initializes a new instance of the class. A 'RoleClass' XML node. Gets the collection of Attribute objects contained in this instance. Gets the attributes and all nested attributes. Gets the collection of ExternalInterface objects including all nested descendant interfaces Gets the collection of ExternalInterface objects contained in this instance. Conversion to get access to specific AutomationML defined Attributes The CAEX object. The result of the conversion. caexObject Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Gets the CAEX Container for elements of type T, which is owned by this CAEX object The CAEX container Inserts the specified CAEX object in it's associated sequence. The RoleClass defines the and sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The RoleClass defines the and sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. 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 Initializes a new instance of the class. A 'RoleClass' XML node. The constructor function for the . Gets and sets the BaseClass for this instance. According to CAEX, a class shall not inherit from itself or from a derivative of itself, therefore any cyclic reference is denied. Gets and sets the path which references a base class. According to CAEX, a class shall not inherit from itself or from a derivative of itself, therefore any cyclic reference is denied. Gets the name (not the full path) of the referenced base class. The name of the referenced class. Gets the collection of RoleClass objects contained in this instance. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Creates a RoleRequirements object as an instance of this RoleClass object. All Base-Class references are resolved to create the instance - copying the Attribute and ExternalInterface objects to the created RoleRequirements object. The IDs of the ExternalInterface objects are made unique. The RoleRequirements object Creates a RoleRequirement as an instance of this RoleClass object. All Base-Class references are resolved to create the instance. The CAEXWrapper as a RoleRequirement Creates a SupportedRoleClass object from this RoleClass. The created SupportedRoleClass Gets the Enumerator for the enumeration of the field. An enumerator that can be used to iterate through the collection. Gets the Enumerator for the enumeration of the field. An enumerator that can be used to iterate through the collection. Gets the reference (Inheritance) hierarchy including this instance in an ordered sequence of ancestors. Enumerator of base classes. Gets the reference (Inheritance) hierarchy including this instance in an ordered sequence of ancestors. The class type. A queue of ancestors. this instance is first in the queue Inserts the specified CAEX object in it's associated sequence. The RoleFamilyType defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The RoleFamilyType defines the sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. This Class is a wrapper for the CAEXElement 'SystemUnitClassLib'. Gets a collection of SystemUnitClass objects contained in this instance. Initializes the class. Initializes a new instance of the class. A 'SystemUnitClassLib' XML node. Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Inserts the specified CAEX object in it's associated sequence. The SystemUnitClassLibType defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The SystemUnitClassLibType defines the sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. 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. Initializes a new instance of the class. A 'SystemUnitClass' or 'InternalElement' XML node. Gets the collection of Attribute objects for this instance. Gets the attributes and all nested attributes. Gets the collection of ExternalInterface objects including all nested descendant interfaces Gets a collection of ExternalInterface objects contained in this instance. Gets the collection of InternalElement objects for this instance. Gets the collection of InternalLink objects contained in this instance. Gets all role references for the SystemUnitClass. The collection includes all RoleRequirement objects and SupportedRoleClass objects. Gets the collection of SupportedRoleClass objects contained in this instance. Get the RoleClass from the sequence of with the provided . Name of the role class. The supported RoleClass object with the provided name if existent, otherwise null. Conversion to get access to specific AutomationML defined Attributes The CAEX object. The result of the conversion. caexObject Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Enumeration of contained InternalElement objects An enumerator that can be used to iterate through the collection. Enumeration of contained InternalElement objects An enumerator that can be used to iterate through the collection. Inserts the specified CAEX object in it's associated sequence. The SystemUnitClass defines the , , , , and sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The SystemUnitClass defines the , , , , and sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the provided CAEX object as a new sibling after this CAEX object. The CAEX object to be inserted. caexObject The provided object is not allowed to be a sibling of this instance. Inserts the provided CAEX object as a new sibling before this CAEX object. The CAEX object to be inserted caexObject The provided object is not allowed to be a sibling of this instance. Gets the Lowest common parent to this SystemUnitClass and the provided SystemUnitClass. The common parent is used to store an InternalLink relating this two SystemUnitClass objects. An InternalLink is not allowed to leave the boundary of a SystemUnitClass which means, that no common parent is defined for two different SystemUnitClass objects. If one Element is a SystemUnitClass the other one should be an InternalElement descendant of the SystemUnitClass. The system unit class. the SystemUnitClass object which is the lowest common parent systemUnitClass Determines whether this CAEX Element has an associated reference to the specified InterfaceClass. If inheritance relations between InterfaceClasses should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified InterfaceClass is either identical to a referenced InterfaceClass or a referenced InterfaceClass is derived from the specified InterfaceClass. The InterfaceClass object. if set to true inheritance relations are regarded (default is false). true if this CAEX Element object has an associated reference to the specified InterfaceClass; otherwise, false. roleClass This sample shows how to call the method using a standard base InterfaceClass from the var amlInterfaceClassLib = AutomationMLInterfaceClassLibType.InterfaceClassLib (myDocument); InternalElementType internalElement; ... internalElement.HasInterfaceClassReference (amlInterfaceClassLib.COLLADAInterface); Adds an InterfaceClass reference to this SystemUnitClass object using the provided InterfaceClass object. The InterfaceClass reference is added as a object. The InterfaceClass to be assigned to the SystemUnitClass. if set to true, the InterfaceClass reference is not added, if a reference to the provided InterfaceClass already exists. if set to true, the reference is created as am instance of the InterfaceClass, containig all ExternalInterfaces and Attributes of the InterfaceClass. The new added InterfaceClass reference. interfaceClass The default behaviour is, that only a reference to the interface class is added and no instance of the class containing all Attributes and ExternalInterface objects. If an instance is required, set the optional parameter 'addInstance' to true or use the and the methods. This sample shows how to call the method using a standard base InterfaceClass from the var amlInterfaceClassLib = AutomationMLInterfaceClassLibType.InterfaceClassLib (myDocument); var myIH = myDocument.CAEXFile.InstanceHierarchy.Append ("myIH"); var myIE = myIH.InternalElement.Append("myIH"); myIE.AddInterfaceClassReference (amlInterfaceClassLib.AutomationMLBaseInterface); Adds an InterfaceClass reference to this SystemUnitClass object using the provided CAEX path, referencing an InterfaceClass object. The InterfaceClass reference is added as a object. The CAEX path referencing a InterfaceClass to be assigned to the SystemUnitClass. if set to true the reference is not added, if the same reference already exists. if set to true, the reference is created as an instance of the InterfaceClass, identified by the provided interfaceClassReference, containig all ExternalInterfaces and Attributes of the InterfaceClass. The new added InterfaceClass reference. interfaceClassReference The default behaviour is, that only a reference to the interface class is added and no instance of the class containing all Attributes and ExternalInterface objects. If an instance is required, set the optional parameter 'addInstance' to true or use the and the methods, This sample shows how to call the method using a standard InterfaceClass path defined in the var myIH = myDocument.CAEXFile.InstanceHierarchy.Append ("myIH"); var myIE = myIH.InternalElement.Append("myIH"); myIE.AddInterfaceClassReference (AutomationMLInterfaceClassLib.AutomationMLBaseInterface); 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. Initializes a new instance of the class. A 'SystemUnitClass' XML node. Gets and sets the BaseClass for this instance. According to CAEX, a class shall not inherit from itself or from a derivative of itself, therefore any cyclic reference is denied. Gets and sets the path which references a base class. According to CAEX, a class shall not inherit from itself or from a derivative of itself, therefore any cyclic reference is denied. Gets the name (not the full path) of the referenced base class. The name of the referenced class. Gets a collection of SystemUnitClass objects of this instance. The constructor function for the . Adds a RoleClass reference to this SystemUnitClass object using the provided RoleClass object. The RoleClass reference is added as a object. The RoleClass to be assigned to the SystemUnitClass. if set to true, the RoleClass reference is not added, if a reference to the provided RoleClass already exists. The new added RoleClass reference. roleClass This sample shows how to call the method using a standard base RoleClass from the var amlBaseRoleClassLib = AutomationMLBaseRoleClassLibType.RoleClassLib (myDocument); var mySlib = myDocument.CAEXFile.SystemUnitClassLib.Append ("mySlib"); var mySuc = mySlib.SystemUnitClass.Append("mySuc"); mySuc.AddRoleClassReference (amlBaseRoleClassLib.AutomationMLBaseRole); Adds a RoleClass reference to this SystemUnitClass object using the provided CAEX path, referencing a RoleClass object. The RoleClass reference is added as a object. The CAEX path referencing a RoleClass to be assigned to the SystemUnitClass. if set to true the reference is not added, if the same reference already exists. The new added RoleClass reference, which is a SupportedRoleClass. roleClassReference This sample shows how to call the method using a standard RoleClass path defined in the var mySlib = myDocument.CAEXFile.SystemUnitClassLib.Append ("mySlib"); var mySuc = mySlib.SystemUnitClass.Append("mySuc"); mySuc.AddRoleClassReference (AutomationMLBaseRoleClassLib.AutomationMLBaseRole); Gets the CAEXSequence owned by this CAEX object, which contains the specified CAEX object. The CAEX object, contained in a sequence, owned by this CAEX object. The CAEX sequence or null, if no sequence exists, containing the specified CAEX object. Creates an InternalElement as an instance of this class. All References to Base classes are resolved. If the document is based on CAEX 2.15 and the SystemUnitClass provides only one Supported role class, the created Internal Element will contain a role requirement object, representing the role. The InternalElement Creates an InternalElement as an instance of this class. All References to Base classes are resolved. CAEXWrapper for the InternalElement Gets the Enumerator for the enumeration of the field. An enumerator that can be used to iterate through the collection. Gets the Enumerator for the enumeration of the field. An enumerator that can be used to iterate through the collection. Gets a collection of SupportedRoleClasses objects of this SystemUnitClass and of all inherited BaseClasses. Duplicates are removed from the result. A collection of SupportedRoleClass objects for this instance and its BaseClasses. Getting a referenced SystemUnitClass. Full path to a SystemUnitClass The referenced SystemUnitClass systemUnitClassReference Gets the reference (Inheritance) hierarchy including this instance in an ordered sequence of ancestors. Collection of base classes Gets the reference (Inheritance) hierarchy including this instance in an ordered sequence of ancestors. Type of the CAEX class in the hierarchy. a queue of ancestors. this instance is first in the queue Determines whether the specified RoleClass is more specific than any already associated RoleClass of this SystemUnitClass. This method doesn't check inherited RoleClass references from ancestors. If an assigned RoleClass is identical to the specified RoleClass, the result is false. The RoleClass object. true if this SystemUnitFamilyType object has an associated RoleClass reference which is a generalization of the specified RoleClass (the RoleClass is more specific); otherwise, false. roleClass Determines whether the specified roleReference is more specific than any already associated SupportedRoleClass of this SystemUnitClass. This method doesn't check inherited RoleClass references from ancestors. If an assigned RoleClass is identical to the specified RoleClass, the result is false. The RoleReference object. true if this SystemUnitFamilyType object has an associated SupportedRoleClass reference which is a generalization of the specified RoleClass (the RoleClass is more specific); otherwise, false. roleClass Determines whether this SystemUnitClass object has a SupportedRoleClass with a reference to the specified RoleClass. If inheritance relations between role classes should be regarded, the optional parameter 'regardInheritance' should be set. In this case the specified RoleClass is either identical to a referenced RoleClass or a referenced RoleClass is derived from the specified RoleClass. Independently of the value, always the Role assignments to this SystemUnitClass and any ancestors of this SystemUnitClass are checked, using the method. The RoleClass object. if set to true inheritance relations are regarded (default is false). true if this SystemUnitClass object has a SupportedRoleClass with a reference to the specified RoleClass; otherwise, false. roleClass This sample shows how to call the method using a standard base RoleClass from the var amlBaseRoleClassLib = AutomationMLBaseRoleClassLibType.RoleClassLib (myDocument); SystemUnitFamilyType systemUnitClass; ... systemUnitClass.HasRoleClassReference (amlBaseRoleClassLib.AutomationMLBaseRole); Determines whether this SystemUnitClass object has a SupportedRoleClass with the specified CAEX path reference. If inheritance relation should be regarded, the optional parameter 'regardInheritance' should be set. The CAEX path to a RoleClass object. if set to true inheritance relations are regarded (default is false). true if this SystemUnitClass object has a SupportedRoleClass with the specified CAEX path reference. roleClass This sample shows how to call the method using a standard base RoleClass path from the SystemUnitFamilyType systemUnitClass; ... systemUnitClass.HasRoleReference (AutomationMLBaseRoleClassLib.AutomationMLBaseRole); Inserts the specified CAEX object in it's associated sequence. The SystemUnitFamilyType defines the sequence. The CAEX object. if set to true it is inserted as the first item in its associated sequence. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Inserts the specified CAEX object in it's associated sequence. The SystemUnitFamilyType defines the sequence. The CAEX object. true, if a sequence could be identified and the provided CAEX object is inserted; If a copy of the CAEX object has been inserted or the provided CAEX object doesn't represent a valid member of any sequence the result is false. If the provided CAEX object already has an associated parent, a copy of the CAEX object and not the original provided CAEX Object is inserted. Please keep in mind, that the copied object contains identical attributes and elements. It might not represent a valid AutomationML object, because IDs and references are not automatically modified. Replaces an existing role class reference to the provided role or a generic base role of the provided role by a new instance of the role class. The role class. roleClass The Aml.Engine.Resources Namespace gives public access to the XSD Datatype resource strings. Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. Sucht eine lokalisierte Zeichenfolge, die xs:anyURI ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:base64Binary ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:boolean ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:byte ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:dateTime ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:date ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:decimal ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:double ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:duration ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:ENTITIES ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:ENTITY ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:float ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:gDay ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:gMonthDay ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:gMonth ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:gYearMonth ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:gYear ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:hexBinary ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:IDREFS ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:IDREF ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:ID ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:integer ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:int ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:language ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:long ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:Name ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:NCName ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:negativeInteger ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:NMTOKENS ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:NMTOKEN ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:nonNegativeInteger ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:nonPositiveInteger ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:normalizedString ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:positiveInteger ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:QName ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:short ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:string ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:time ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:token ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:unsignedByte ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:unsignedInt ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:unsignedLong ähnelt. Sucht eine lokalisierte Zeichenfolge, die xs:unsignedShort ähnelt. Extension class which provides an empty lookup table The type of the key. The type of the element. Gets the empty lookup table instance. This interface is defined for all CAEXObjects to which a split point can be assigned. SplitPoints are allowed on and . This is the basic interface for an AML service. This interface has to be implemented by any AML service This is a special interface for an AML service, which uses a registry to store data about an XML Document. Removes the document from the internal registry of the service. The XML document. Interface defined for services, which support automatic updates of cross references between AutomationML objects. Updates are executed, when a referenced object changes its identification (its Name or its ID). 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. Occurs when any reference has been updated. Event arguments used to inform about update events in the service. Initializes a new instance of the class. The referenced element. The reference. Initializes a new instance of the class. The referenced element. The reference. The updated new value for the reference Gets the updated reference. Gets the updated new value (used in changing event notifications, if the reference has not updated). Gets the referenced element which is triggered by the update This interface is used to query references to CAEXObjects like references using the ID of objects or references using the CAEXPath of objects like RoleClass or InterfaceClass objects. Gets the CAEX object which owns the reference. Gets the name of the reference attribute which contains the value of the reference. To get or set the attribute value the an methods can be used. Gets the reference attribute value. This service interface defines methods to resolve external references of an AutomationML document. If references are resolved, queries will be able to find referenced objects. Be aware, that the resolved documents will not be merged and the references, containing an alias will not be changed. Loads the external reference in a new CAEXDocument. The new CAEXDocument is a separate document and no libraries are merged to the current document. This Method doesn't change any references, which use the alias of this external reference. Use the service to achieve this. the external reference 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 if it is already resolved. If the reference has not been resolved it is resolved. The CAEX document. The path. 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 ExternalRefrence objects. An enumeration of all resolved documents. The Query service provides methods to query relations modeled in an AutomationML document. The AMLEngine provides a default query service based on Linq (System.Xml.Linq). To get a better performance for queries, users can register a Lookup service which also implements this query interface but uses dictionary based queries. If ExternalReferences should be queried too, a service should be registered. 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. 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. Gets all the elements which are descendants of the provided CAEX object 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. 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. 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. 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. 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. 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 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 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 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 Tries to locate a CAEX object from the specified ID. If the ID 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 identifier. if set to true tries to resolve an alias reference with an ExternalReferenceResolver service. The CAEX object if it is found; otherwise null. Tries to locates a CAEX object from the specified CAEX - Path. 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 CAEXObject if it is found; otherwise null. 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 Returns all Mirrors of the specified InternalElement The master. An enumeration of mirror InternalElements. Gets all InternalLinks that reference the specified InternalElement or SystemUnitClass. The InternalElement or SystemUnitClass. a collection of InternalLinks. Gets all InternalLinks that reference the specified ExternalInterface. The ExternalInterface. a collection of InternalLinks. Determines whether the specified InternalElement is referenced by other InternalElement objects called 'Mirrors'. The element. true if the specified element is a 'Master'-InternalElement; otherwise, false. Determines whether the specified ExternalInterface is referenced by other ExternalInterface objects called 'Mirrors'. The element. true if the specified element is a 'Master'-ExternalInterface; otherwise, false. Determines whether the specified AttributeType is referenced by other AttributeType objects called 'Mirrors'. The attribute type 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. This service interface is used to get statistic data from a CAEX document. 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 AttributeType objects and returns the result. The CAEX file. Total number of all AttributeTypes Counts all AttributeType reference 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 objects and returns the result. The CAEX file. Total number of all RoleClasses 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 This interface 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 AML Engine will automatically call this service for a unique name generation whenever a new element is added to the sequence which requires a unique name for its members. 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 a new default name for the generation of unique names for the specified element. The CAEX Tag name defining the elements which should get the default. 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 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 This interface defines properties for a validation result, generated for a single XML element. The validation results for XML elements of a CAEX document are generated by the service. Gets the element which has been validated. Gets information about the result of a repair operation for one element. Gets information about the validation of one element. This service interface is defined for the validation of an AML document. Additionally the service can also be used to repair specific invalid properties in a document and to automatically updated references to objects if the source changes. 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 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 This service interface is defined for the validation of an AML document. The type parameter of this generic interface defined the validation result type. The type of the validation result 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 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. 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. 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 for each validation issue. This interface defines methods for a merge service. A merge service can merge ExternalReferences into an AML document. Merges the defined ExternalReference into the provided CAEXDocument. The source is loaded from the file path in the external reference. 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 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 This interface defines the service interface for a split service. A split service is able to split one into multiple files using split points. Removes the split point for the provided CAEX object. The CAEX object. 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 name used to define the ExternalReference. The file path to the saved Split parts. The CAEX document containing the split parts. Splits the specified document on only the specified split point. The created library is 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 this SplitPoints any more. The document. The split point defining the split content. The alias name used to define the ExternalReference. The file path to the saved Split parts. The CAEX document containing the splitted part. Gets a collection of all split points for the provided document. The document. all split points for this document. This interface class defines a service interface for a schema transformation 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 Raised from the ShemaTransform service when a transformation has ended. Raised from the ShemaTransform service when a transformation has started. Event arguments for schema transformation events Initializes a new instance of the class. The source document. The target schema. Gets the source document. Gets or sets the target document. Gets the target schema. The UndoRedo service supports undo and redo of all changes made to a CAEXDocument. 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 the specified document; otherwise, false. Determines, if the service can undo a command The document. true if this instance can undo the specified document; otherwise, false. Clears the undo and redo stacks. The document. Ends the current transaction. The document. If the transaction ended Gets the date of the most recently executed command for the specified document. The document. if set to true the date of the last undo operation is returned; otherwise the date of the last redo operation. Request to not record changes of the specified document. If the recording of document changes is paused the and methods can not be applied. The document. A new command is pushed on the undo stack of this service. The command. Redo the most recently operation, which was undone The document. Gets all command names of the actions in the redo stack for the provided CAEX document. The document. List of command names Request to resume recording changes of the specified document. The document. Undo of the last operation The document. Gets all command names of the actions in the undo stack for the provided CAEX document. The document. List of command names This class is used in queries to provide information about objects, which contain references to other objects. Initializes a new instance of the class. The element. Name of the reference attribute. Gets the CAEX object which contains the reference. Gets the XML element, which contains the reference. Gets the name of the reference attribute which contains the value of the reference. To get or set the attribute value for the attribute with this name the and methods can be used. Gets the reference attribute value. This class supports the interpretation of the queryResult table which is the result of some queries, defined in Gets the CAEX objects from the query result. The queryResult. An enumeration of all CAEX objects in the query result. Gets all the elements which are identifiable by a CAEX path. Elements having the same path are grouped together. Use this method to validate the existence of not unique CAEXPaths. The document. Groups of elements which are identifiable by a CAEX path. Gets all the elements with an alias reference. Elements referencing the same Alias are grouped together. Use this method to validate the existence of referenced externals. The document. group of elements with Alias references. The Alias part of the CAEXPath is used as a group key. Gets all the elements with a path reference. Elements referencing the same path are grouped together. Use this method to validate the existence of referenced classes. The document. group of elements with path references. The CAEXPath is used as a group key. Gets all the elements with identifier references. Elements referencing the same ID are grouped together. Use this method to validate the existence of referenced IDs. The document. group of elements with ID references. The ID is used as a group key. Gets all the elements with IDs. Elements using the same ID are grouped together. Use this method to validate the uniqueness of IDs. The document. group of elements with IDs. The ID is used as a group key. Gets all the elements with a name reference. Elements referencing the same name are grouped together. Use this method to validate the existence of referenced elements. The document. group of elements with path references. The CAEXPath is used as a group key. Gets all InternalElement objects from the document which are masters. The document. An enumeration of all InternalElement objects which are InternalElement master objects. Gets all InternalElement objects from the document which are mirrors. The document. An enumeration of all InternalElement mirror objects. Gets the CAEX objects of the specified type from the query result. Type of the required CAEX object. The queryResult. An enumeration of all CAEX objects of the specified type in the query result. Gets alls the elements from the document which use the provided Alias in a reference The document. The Alias. A collection of elements which use the provided Alias in a reference Gets alls the elements from the document which have a reference to the provided Path. The document. The path. a collection of elements which have a reference to the provided Path Gets alls the elements from the document which have a reference to the provided ID. The document. The identifier. a collection of elements which have a reference to the provided ID Returns all InternalElements and SystemUnitClasses in the defined Document, which are related to others via InternalLinks. the Document A collection of related SystemUnitClass objects Gets the ExternalInterface objects from the query result. The queryResult. An enumeration of all ExternalInterface objects in the query result. Returns all Mirrors of the specified InternalElement. The master. An enumeration of mirror InternalElements. Gets the InternalElement objects from the query result. The queryResult. An enumeration of all InternalElement objects in the query result. Gets the InternalLink objects from the query result. The queryResult. An enumeration of all InternalLink objects in the query result. Gets all InternalLink referencing the provided SystemUnitClass object. The SystemUnitClass object. An enumeration of all InternalLink objects referencing the provided SystemUnitClass. Gets all InternalLinks that reference the specified ExternalInterface. The ExternalInterface. a collection of InternalLinks. Gets all the references with the provided name from the query result. The queryResult. The name. An enumeration of all references with the provided name in the query result. This class defines the default query service for a . The query methods of this service are based on System.Xml.Linq and System.Xml.XPath. 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. The CAEX object. Gets all classes which have references to the provided CAEX object and their referencing classes (recursive) The CAEX object. 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. Groups of elements which are identifiable by a CAEX path. 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. The CAEX object. If parameter is set, only elements with the given element Name are considered. group of elements with Alias references. The Alias part of the CAEXPath is used as a group 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. Gets all the elements which are descendants of the provided CAEX object 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. 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 group key. 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. 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. 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 which are instances of the Interface class defined by the provided . The document. The CAEX ClassPath of the InterfaceClassType Optional parameter. If set only descendants of this object are searched. 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. 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 Gets alls the elements which are descendants of the provided CAEX object which have a reference to the provided CAEXPath. The CAEX object. The path. If parameter is set, only elements with the given element Name are considered. a collection of elements 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 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 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 Finds the first element in the defined document, which ID is equal to the provided ID. The XDocument The ID to look at if set to true tries to resolve an alias reference with an ExternalReferenceResolver service. the CAEXObject or null, if no element with the specified ID could be found. doc This method tries to find the first element in the defined document, which CAEXPath is equal to the provided path. If the path uses an alias to reference an object in a external document it is tried to locate an service. If such a service is registered, the CAEXObject is tried to be found in the resolved document. The XDocument The CAEXPath to look at if set to true [resolve alias]. the CAEXObject or null, if no element with the specified path could be found. caexDocument 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 Returns all Mirrors of the specified InternalElement The master. An enumeration of mirror InternalElements Gets all InternalLink objects referencing the provided SystemUnitClass object via an external interface attached to the SystemUnitClass. The SystemUnitClass object An enumeration of InternalLinks. Gets all InternalLinks that reference the specified ExternalInterface. The ExternalInterface. a collection of InternalLinks. Determines whether the specified InternalElement is referenced by other InternalElement objects called 'Mirrors'. The element. true if the specified element is a 'Master'-InternalElement; otherwise, false. Determines whether the specified ExternalInterface is referenced by other ExternalInterface objects called 'Mirrors'. The element. true if the specified element is a 'Master'-ExternalInterface; otherwise, false. Determines whether the specified attribute is a master attribute. The attribute. true if the specified attribute is master; otherwise, false. Determines whether the specified CAEX object is referenced. The CAEX object. true if the specified CAEX object is referenced; otherwise, false. This class provides methods to register and locate services which can support the processing of AML documents. There can always exist only one service of the same type at one time. The available service types are recognized to be assignable to the interface. Initializes the class and registers the default service. Gets the registered Query-Service. If no Query-Service is registered, a default Query-Service - which is based on LinqToXml - is returned. As an alternative, a Query-Service based on Dictionaries for keyed access is available. The dictionary based service has to be registered to be used. If no such service has been registered, the default query service is returned. The actual registered Query-Service is located by the engine and used for all queries. Gets the registered UndoRedo-Service. The actual registered UndoRedo-Service is located by the engine and used to push executed commands on the undo stack. If no UndoRedo-Service is registered executed commands are not pushed and cannot be undone. Gets the registered UniqueName-Service.The actual registered UniqueName-Service is located by the engine to automatically assign unique names to CAEXObjects if they are inserted into a sequence. If no UniqueName-Service is registered no names are generated. Gets the automatic update service. Gets a service for the provided service interface The located service. Registers a service which will be locatable The service type. The service. Unregisters a service of this type which will afterwards no more locatable Class AMLSchemaManager extends the XMLSchemaManager. Methods which create new objects are overridden to add required properties and values to some objects which is not defined in the underlying CAEX schema but in the AML standard. Defines the resource path of the assembly Constructor for schema manager Schema stream Namespace path The specified node is checked, and made to an AML object, if additional properties and values are defined for this node. The XML node. The node gets a UUID Method overrides the . The created node is made to an AML node. Name of the child's parent Name of the child optional parameter to define, that not only required attributes, but all possible attributes should be created. The created XML node. Sets the schema version. The node. Singleton Class: Schema manager for CAEX-Schema Version 2.15 used in AutomationML Singleton private constructor reads the schema from an embedded resource stream Sets the schema version. The node. Called for newly creates XML-Elements to make it an AutomationML object. Here you can add required properties and dependencies which are not defined in the CAEX-Schema creates the singleton instance of the Schema manager Instance of AMLSchemaManager2_15 Gets the static default SchemaManager Instance for the CAEX-Schema Version 2.15 used in AutomationML SchemaLocation attribute defining noNamespaceSchemaLocation This method will adjust the provided CAEXFile element to this schema instance. The method can be used in a schema transformation. Adjusts the name of the provided XML element and the names of the elements attributes to schema. The element. Extracts the schema from the embedded resource and writes it to a file in the specified folder The folder path. Returns the name of the created file or null, if user has no access rights to the folder. If no schema location is set in the specified root, a new schema location with a relative path to a schema file is defined. The schema file is extracted from an embedded resource an copied to the specified folderPath. The Document root Folder Path for schema extraction Singleton Class: Schema manager for CAEX-Schema Version 3.0 used in AutomationML Singleton private constructor reads the schema from an embedded resource stream Sets the schema version. The node. Called for newly creates XML-Elements to make it an AutomationML object. Here you can add required properties and dependencies which are not defined in the CAEX-Schema Gets the Namespace defined for CAEX Version 3.0. The Namespace name is http://www.dke.de/CAEX. Gets the static default SchemaManager Instance for the CAEX-Schema Version 3.0 used in AutomationML Gets the SchemaLocation attribute This method will adjust the provided CAEXFile element to this schema instance. The method can be used in a schema transformation. This method will adjust the name of the provided element to this schema instance. The method can be used in a schema transformation to add the to the element's name. The XML element. Extracts the schema from the embedded resource and writes it to a file in the specified folder Returns the name of the created file or null, if user has no access rights to the folder. If no schema location is set in the specified root, a new schema location with a relative path to a schema file is defined. The schema file is extracted from an embedded resource an copied to the specified folderPath. The Document root Folder Path for schema extraction The Aml.Engine.Schema Namespace contains a schema parser which is used to parse the document assigned CAEX schema. All changes made to a document with API methods are supported by a schema specific schema manager which assures, that all insertions and changes are schema conform. Currently schema managers exist for CAEX version 2.15, which is and CAEX version 3.0, which is . The schema managers are made public to supply methods for schema conform CAEX document processing capabilities to users who don't like to use the API wrapper-classes and methods. This class defined methods and properties to access schema information for a schema element. creates an instance for the defines schema element The schema element. Gets the schema elements for all attributes of this instance Gets the names for all choices defined for this instance. Gets the maximum occurrence. Gets the names for all optional elements defined for this instance. Gets the names for all required elements defined for this instance. Gets the names for all required attributes defined for this instance. Gets the defining schema element for this instance Gets the names of all elements in this instance which don't provide choices Sets the schema information for this instance and the provided namespace Class supports the creation of schema conform xml documents for a given schema. It can be used to create elements with all required attributes and child elements and default values associated. Insertion of new child elements for a given parent at a schema is supported, guaranteeing schema conform sequences and occurrences of all children. The Dictionary of Schema Elements contains all schema elements of child's in a parent child relationship. The Dictionary Key contains the name of the parent (fist) and the name of the child (second) Create an instance of the schema manager for the given schema. The Schema is compiled and parsed the parsed Xml-Schema Registered schema information about an element The p. The c. The information. Gets the Schema Namespace Gets the SchemaLocation string Gets the actual XSD schema set Determines if the schema element accepts values of any type. The schema element. true, if any types are accepted as values. Creates a new Xml-Element with the provided content and inserts it to the provided parent according to this schema instance. The parent XML element. The name of the child element. Initial content of the child. The created XML element. Creates a new Xml-Element with the provided content and inserts it behind the provided sibling according to this schema instance. the sibling of the new added element. the name of the new added element. the content of the new added element. The created XML element. Gets the Attribute names of the specified child element of the specified parent element. name of the child's parent name of the child optional parameter, defining of only required attributes Enumeration of attribute names Gets the Schema Elements for all attributes of the specified child element of the specified parent element, if the defined parent child relation exists in the xml schema. If required is set to true, only the required attributes are returned. The default behaviour is, that all attributes - optional and required attributes - are returned. name of the child's parent name of the child optional parameter, defining of only required attributes are returned, or all attributes. Enumeration of attribute definitions Gets the List of Attribute value restrictions for the attribute with the defined name. The Attribute should be an attribute of a child defined by the given name, which exists in the defined parent child relation defined by the parent name. The name of the child's parent the name of the child (owner of the attribute) Name of the attribute. list of restrictions for an attribute value - object type has to be interpreted by the caller Gets the Attribute value types for the attribute with the defined name of a child element which belongs to the given parent. If XmlTypeCode.Item is returned, the value type is equal to the schema internal any type. Name of the parent. Name of the child. Name of the attribute. The type code defined for the value. Gets the type code for the schema attribute. The schema attribute. The XML type code. Determines, if a child with the specified name can be added to the parent node. The method checks the specified minimal and maximal occurrences, defined for this relation in the xml schema. The parent node name of the child true, if a child with that name can be added; false otherwise Gets the Names for all elements, which can be added to the child which is defined with the name of it's parent and the name of itself. Name of the child's parent. Name of the child if set to true [include choice]. Enumeration of all names of possible child elements. Gets the SchemaDefinition for all elements, which can be added to the child which is defined with the name of it's parent and the name of itself. Name of the child's parent. Name of the child if set to true [include choice]. Enumeration of all SchemaDefinitions of possible child elements. Gets the names of all alternative child nodes, which can be added to a parent node with the given name. The specified child itself is included. Choices only exists, if returns true for the defined child name. Name of the child's parent Name of the child Enumeration of names, representing the possible alternatives for child elements. Creates the attribute with the provided name if this attribute is defined in this schema instance. The element. Name of the attribute. The created XML attribute. Creates a new node with the specified child name in the given xmlDocument. The node is created with all required attributes and elements but is not inserted in the document tree at this point. Use for insertion or for a combined creation and insertion. Name of the child's parent Name of the child Optional parameter to define, that not only required attributes, but all possible attributes should be created. The created XML element. The Method can be overridden by specific schema managers, to add additional properties to the created node, which can not be derived directly from the schema. Gets the annotation from the schema element. The schema element. The annotation of the schema element, as it is defined in the schema. Gets the annotation from the schema attribute element. The schema attribute. The annotation of the schema attribute, as it is defined in the schema. Gets the annotation from the annotated schema element. The schema element. The annotation. Determines, whether the schema element representing the parent - child relation has a content, which is restricted to a choice of elements. If onlyOne is set to true, there can not be more than one element added to the element Name of the parent. Name of the child. if set to true [only one]. true if the specified parent to child relation is restricted to a choice of elements; otherwise, false. Determines, if the schema defines a sequence of simple elements for the provided parent child combination. Name of the parent. Name of the child. if set to true [only one]. true if the provided parent child combination consists of a sequence of simple elements; otherwise, false. Inserts an existing child node into the collection of child nodes of the specified parent node. The parent node The child node true, if the node has been inserted; false otherwise. Creates a new node with the defined child name and inserts the newly created child into the child nodes collection of the specified parent. Optional, it can be specified, if the new node should get all attributes, which are defined in the schema, or only those attributes which are required (default behaviour). The Method can be overridden by specific schema managers, to add additional properties to the created node, which can not be derived directly from the schema. The parent node for insertion. Name of the child optional parameter to specify, that all attributes should be added automatically to the created node. the created and inserted node. Determines, whether the occurrence of a child with that name under a parent with that name is part of a choice (means that there are other exclusive alternatives for child nodes). If not, the child is defined in a sequence. For choices, the names of alternatives are available with . Name of the child's parent Name of the child true if the defining collection is a choice; otherwise the collection of child's is defined as a sequence. Determines if the schema defines a choice of only one element for the provided schema element. The schema element. true if the specified schema element defines a choice of only one element; otherwise, false. Determines, if the Attribute with the provided is defined for this element Name of the parent. Name of the child. Name of the attribute. true if the attribute name is an allowed attribute for the child; otherwise, false. Determines, if the parent is allowed to contain a child with the provided name according to this schema instance. The parent. Name of the child. true if the parent can contain a child element with that name; otherwise, false. Determines, if the Attribute with the provided name is a required attribute when added to the parent child combination. Name of the parent. Name of the child. Name of the attribute. true if the attribute is a required attribute in this parent child combination; otherwise, false. Returned the maximal occurrence for child nodes with the specified name under a parent node with the specified name. For unbounded occurrences, the returned value is . If the occurrence is 0, the existence of a child with that name under a parent with that name is not allowed. Name of the child's parent Name of the child The maximal occurrence of children with the defined name. The minimal occurrence for child node with the defined name under a parent node with the defined name. If 0 is returned, the existence of a child node with that node is optional. If 1 is returned, the existence is mandatory. Name of the child's parent Name of the child 0 for optional occurrence or 1 for mandatory occurrence. A value of -1 indicates that no occurrences are allowed at all. Gets the schema information for the provided parent child combination. name of the parent element name of the child element returns null, if no schema information exists for the parent child combination. This method is a utility method for insert operations. The method will return the node which should be used as the sibling before a newly added child with the defined name. The Insertion has to be done after the returned node or prepended to the parent itself, if no node null is returned. The parent node Name of the child. The child node of the parent, which should be the sibling before a newly added node, or null, if no node exists. Validates a document if it is conform to this schema instance. The source. The messages. true, if the validation was without errors; false, otherwise. Returns the type code for a value that may be associated with the defined child. Name of the parent Name of the child the XML type code. If no schema location is set in the specified root, a new schema location with a relative path to a schema file is defined. The schema file is extracted from an embedded resource an copied to the specified folderPath. The Document root Folder Path for schema extraction Parsing the schema to populate the elements dictionary. This static class provides extension methods for the interpretation of . Gets the CLR-Type for the provided typeCode Source CLR-Type Gets the from the W3C XSD schema type string. W3C XSD schema type, defined as xs:..., like xs:double and others. the XmlTypeCode. If the schemaType is not recognized, is returned. Returns the default value for an XmlTypeCode. The data type of the returned object is the associated CLR type of the provided type code. The CLR type is available with the method. the type code The default CLR type value, according to the provided type code. Returns the default value for XmlTypeCode Source The default value, according to the provided type code. Converts the default value for the specified typeCode to a valid XML value string The The default XML value, according to the provided type code. Interface for a XDocument Wrapper Gets the XDocument. Saves the document to stream. if set to true pretty print for the document is enabled. The document stream. XML related properties of a wrapped instance Gets the XDocument containing the XML node of this object. If the object has not been inserted into a document, the XDocument is null. Direct manipulations of the XML document are not monitored by the AML engine. Determines, if this instance is wrapped around an existing XML node Get the XML node of this instance. Direct manipulations of the XML node are not monitored by the AML engine. Gets the XML parent node of this instance. Direct manipulations of the XML node are not monitored by the AML engine. Gets the Schema Tag name of this instance. This class is an abstract base class for the wrapping of an XDocument, to provide additional schema specific document processing utilities. This class is used by the AMLEngine to provide a CAEXDocument. Other XML Engines, supporting different schemas (PLCopen, COLLADA) could also use this base class. Initializes a new instance of the class. The x document. Gets the underlying XDocument Gets the XDocument wrapper which contains the specified XML node. If the node is not contained in an XML document, no document is returned. The XML node. The XDocument wrapper, containing the XML node. XML node is null. Gets the XDocument wrapper which contains the specified object. If the object has not been inserted into a document, no document is returned. The XNodeWrapper object. The XDocument wrapper . Saves the document to the specified file path. The file path to save the document to. Set to true, if pretty printing is desired. filename Saves the document to the specified file path. Set to true, if pretty printing is desired The stream, containing the document content. Gets the correct XName for the provided element name (Tag name).The XName contains a namespace, if the assigned schema requires a namespace. If no namespace is defined for the assigned schema, no namespace is added to the XName. The XName has to be used for all Xml.Linq queries, used to access objects with the element name. A Tag name which should be transformed to an XName. The generated XName. tag name Unloads this document instance. This method can be used to unload this instance of the CAEXDocument and remove it from all current tables of all registered services. The AMLEngine manages weak references to each created CAEXDocument instance, so explicit unload is normally not required. Returns the CAEX ID of a the XElement if such an Attribute exists. The XElement. The Name or string.empty if the ID-Attribute is missing Returns the CAEX Name of a the XElement if such an Attribute exists. The XElement. The Name or string.empty if the Name-Attribute is missing Returns the CAEX Name of a parent XElement if such an Attribute exists. The XElement. The Name or string.empty if the Parent or the Name-Attribute is missing Returns the CAEX path of this object. Examples: "plant/unit/tank" or GUID:interface. If the full hierarchical Path is required, use the method HierarchyPath instead which delivers the full node path. The element. For classes, it returns the XML full Node Path. For Interface Instances, it returns GUID:InterfaceName if your document is based on CAEX 2.15. For CAEX 3.0 new Path specifications exist concerning Instances (only the ID is used) and Attributes. Attribute Path are combined using the parents CAEX Path followed by the Attribute Name. Gets the value of the element with the defined name as a DateTime Value The owner. Name of the element. DateTime value of the element owner Getting the full path from document root to the specified XmlNode to build a CAEXPath. As name of an XmlNode is the value of the contained attribute "name" taken. Hierarchies are separated via the path separator (slash '/'). The name of the document root element CAEXFile is not contained in the path. The XmlNode to get the full path for The full path from the document root element to the given XmlNode. Getting the full path from document root to the specified XmlNode. As name of an XmlNode is the value of the contained attribute "name" taken. Hierarchies are separated via the path separator (slash '/'). The name of the document root element CAEXFile is not contained in the path. The XmlNode to get the full path for The full path from the document root element to the given XmlNode. Determines whether Attribute is an inheritance attribute. The XML attribute. true if the attribute is an inheritance attribute; otherwise, false. Getting all CAEX path parts from document root to the specified XmlNode. As name of an XmlNode is the value of the contained attribute "name" taken. Hierarchies are separated via the path separator (slash '/'). The name of the document root element CAEXFile is not contained in the path. The XmlNode to get the full path for if set to true separators are added to the path part names. The full path from the document root element to the given XmlNode stored in an array of path part names. The path contains values of the "name" attribute of the XmlNodes. xmlNode Getting all CAEX path parts from document root to the specified XmlNode. As name of an XmlNode is the value of the contained attribute "name" taken. Hierarchies are separated via the path separator (slash '/'). The name of the document root element CAEXFile is not contained in the path. The XmlNode to get the full path for if set to true separators are added to the path part names. The full path from the document root element to the given XmlNode stored in an array of path part names. The path contains values of the "name" attribute of the XmlNodes. xmlNode Getting the path from the defined root to the specified XmlNode. As name of an XmlNode is the value of the contained attribute "name" taken. Hierarchies are separated via the path separator (slash '/'). The name of the root element is not contained in the path. The XmlNode to get the full path for The root. The full path from the root element to the given XmlNode. The path contains of values of the "name" attribute of the XmlNodes. If no such attribute exists in the current node, the xml tag name is used instead. xmlNode Gets the XML node with the provided elementName from the specified owner and returns its value The owner. Name of the element. The node value as a string. owner Gets the value of a CAEX 'Value' element. The XML node. The value of the CAEX 'Value' element. Gets the MasterID of a potential mirror ExternalInterface The XML node. The ID of the master ExternalInterface. Get the IDReferences if this is an InterfaceIDMapping object. The XML node. Enumeration of the ID-references in the InterfaceIDMapping. The returned value tuple contains the name of the attribute and the attribute value. Get the IDReferences if this is an InternalLink. The XML node. Enumeration of the ID-references in an InternalLink. The returned value tuple contains the name of the attribute and the attribute value. Gets the MasterID of a potential mirror InternalElement. The XML node. The ID of the master InternalElement. It is not checked, if this is a GUID. Gets the InternalElementID of a potential mirror Attribute. The XML node. The ID of the master InternalElement to which the Attribute belongs. It is not checked, if this is a GUID. Get the ID of the Master InterfaceClass if this is a Mirror. The element. System.String. Get the ID of the Master InternalElement if this is a Mirror. The element. System.String. Get the RoleReference if this XML node is a RoleRequirement or a SupportedRoleClass The XML node. The value of the role reference attribute of the XML node Sets a date time value for a child-element with the defined name of the defined owner Owner of the element with the defined name Name of the child element DateTime value owner is not a valid element Sets a string value for a child-element with the defined name of the defined owner Owner of the element with the defined name Name of the child element string value Get the SystemUnitClass reference if this is an InternalElement . The element. System.String. Gets the base class for the specified CAEX class, if a class to class relation exists and can be resolved in the current document. The CAEX class. The base class for the specified CAEX class. Gets the reference (Inheritance) hierarchy including the provided CAEX class in an ordered sequence of ancestors. The CAEX class XML node. Enumeration of base classes. Determines whether the specified elementWithDerivedAttributes has a child Element, which has the same ElementName and AttributeValue for the named Attribute as the specified elementWithAttribute The element With Attribute which is tested for derivations. The element With Derived Attributes. Name of the element. Name of the attribute. true if the specified attribute element is derived; otherwise, false. Determines whether the specified element is a descendant of the ancestor. The element. The tested ancestor. true if the specified element is a descendant of the ancestor; otherwise, false. Determines whether this instance is overridden. This can occur in inheritance relations and facet relations. In a facet relation the faceted element has to be detected. In an inheritance relation, the inheritance hierarchy has to be detected. The XML node. true if the specified node is overridden; otherwise, false. Determines whether this XML node represents an overridden CAEX object and returns the overridden elements. This can occur in inheritance relations and facet relations. In a facet relation the faceted element has to be detected. In an inheritance relation, the inheritance hierarchy has to be detected. The XML node. The attribute value, used to define the overridden object. the collection of overridden elements if the specified node is overridden; otherwise, Enumerable.Empty. Gets the name of the path, defining a role reference for the defined mapping element. The mapping element. The path to the RoleClass. This method is designed for CAEX 2.15 where no direct association between a RoleClass and a mapping element exists. Gets the CAEX path of a referenced SystemUnitClass for a Mapping element The mapping element. The path to the SystemUnitClass. Gets the referenced element of this mapping Attribute. The result is an Attribute for Attribute-Mappings or an Interface for Interface-Mappings. If no reference is found, the result is null. The mapping. The referenced element. Gets the RoleRequirement element to which this mapping attribute is assigned. The mapping. The RoleRequirement element or null, if it doesn't exist. Gets the RoleReference for a mapping. The mapping attribute. XElement. Gets the SystemUnitClass element to which this mapping attribute is assigned. The mapping. The SystemUnitClass element or null, if it doesn't exist. Gets the SystemUnitClass-Reference for a mapping. The mapping attribute. XElement. Class, defining extension methods, related to the interpretation of the Schema version of a CAEX file. Gets the correct CAEX schema version for the specified XML node The XML node. The CAEX schema version. Gets the names of the Attributes of the provided node, which can contain an ID reference. The XML node. Array of attribute names of the ID-reference attributes. Determines, if the XML-Element is an Additional Information element XML-Element from a CAEX-Document true, if the XML-Element is an Additional Information element Determines, if the XML-Element is an Attribute XML-Element from a CAEX-Document true, if the XML-Element is an Attribute Determines, if the XML-Element is an Attribute (Basic or Type) XML-Element from a CAEX-Document true, if the XML-Element is an Attribute Determines whether the specified element is a mirror of an Attribute. The element. true if the specified element is a mirror of an Attribute; otherwise, false. Determines, if the XML-Element is an AttributeNameMapping XML-Element from a CAEX-Document true, if the XML-Element is an AttributeNameMapping Determines, if the XML-Element is an AttributeType XML-Element from a CAEX-Document true, if the XML-Element is an AttributeType Determines whether the Element is a CAEXClass: RoleClass, SystemUnitClass or InterfaceClass The element. if library types should be handled as classes true if the specified element is a CAEXClass; otherwise, false. Determines whether the XML node is an element with an ID. The node. true if the specified node is an element with identifier reference; otherwise, false. Determines whether the XML node is an element with an ID reference. The node. true if the specified node is an element with identifier reference; otherwise, false. Determines whether the XML node is an element with an ID reference to the provided ID The node. The ID true if the specified node is an element with identifier reference; otherwise, false. Determines whether the XML node is an element which references another element using the name of the element The node. true if the specified node is an element which references another element using the name of the element; otherwise, false. Determines whether the XML node is an element with a path reference The node. true if the specified node is an element with path reference; otherwise, false. Determines whether the XML node is an element with a path reference to the provided path The node. The Path true if the specified node is an element with this path reference; otherwise, false. Determines whether the specified element is an ExternalInterface. The element. true if the specified element is an ExternalInterface; otherwise, false. Determines whether the specified element is an ExternalReference element The element. true if the specified element is an ExternalReference; otherwise, false. Determines whether this instance is an AMLFacet. The node. true if the specified node is a facet; otherwise, false. Determines whether the specified element is a mirror of an ExternalInterface. The element. true if the specified element is a mirror of an ExternalInterface; otherwise, false. Determines whether the specified element is a mirror of an InternalElement. The element. true if the specified element is a mirror of an InternalElement; otherwise, false. Determines whether the specified element is an InterfaceClass. The XML node. true if the specified element is an InterfaceClass; otherwise, false. Determines whether the specified element is an InterfaceClass. The XML node. true if the specified element is an InstanceHierarchy; otherwise, false. Determines whether the specified element is an InterfaceIDMapping. The XML node. true if the specified element is an InterfaceIDMapping; otherwise, false. Determines whether the specified element is an InterfaceNameMapping. The XML node. true if the specified element is an InterfaceNameMapping; otherwise, false. Determines whether the specified element is an InternalElement. The XML node. true if the specified element is an InternalElement; otherwise, false. Determines whether the specified element is an AttributeTypeLib. The XML node. true if the specified element is an AttributeTypeLibrary; otherwise, false. Determines whether the specified element is a SystemUnitClassLib. The XML node. true if the specified element is an SystemUnitClassLib; otherwise, false. Determines whether the specified element is a RoleClassLib. The XML node. true if the specified element is a RoleClassLib; otherwise, false. Determines whether the specified element is a InterfaceClassLib. The XML node. true if the specified element is a InterfaceClassLib; otherwise, false. Determines whether the specified element is an InternalLink. The XML node. true if the specified element is an InternalLink; otherwise, false. Determines whether the specified XML object is an InternalLink attribute. The XML attribute object. true if the specified XML object is an InternalLink attribute; otherwise, false. Determines whether the specified element is a CAEX Library. The XML node. true if the specified element is a Library; otherwise, false. Determines whether the specified element defines a Mapping which means, the element is either a , a or a . The XML node. true if the specified element defines a Mapping; otherwise, false. Determines whether the Element can define a mirror object. The element. true if whether the Element can define a mirror object; otherwise, false. Determines whether the specified element is a RoleClass . The XML node. true if the specified element is a RoleClass; otherwise, false. Determines whether the specified element is a RoleRequirement . The XML node. true if the specified element is a RoleRequirement; otherwise, false. Determines whether the specified element is a SupportedRoleClass . The XML node. true if the specified element is a SupportedRoleClass; otherwise, false. Determines whether the specified element is a SystemUnitClass . The XML node. true if the specified element is a SystemUnitClass; otherwise, false. Gets the names of the Attributes of the provided node, which can contain an ID reference. The XML node. An array of attribute names, which are used to reference objects using the objects name. Gets the name of the path reference attribute of the specified element. The XML node. For an the result is . For all other classes, the result is . Gets the names of the Attributes of the provided XML node, which can contain a path reference. The XML node. An array of attribute names, which can contain a path reference. Gets the element which is referenced by the specified attribute. The attribute, defining the reference. The referenced element Gets the schema manager, used to manage any modifications of the provided XML node. The XML node. The schema manager, used to manage any modifications of the provided XML node. Gets the correct XName for the provided CAEX Tag name. The XName may contain a namespace, according to the default namespace of the provided node. A Node used to get the namespace information A CAEX Tag name which should be transformed to an XName. The XName build from the provided tag name. This class defines extension methods for XElements. These methods are useful, if any XElement should be queried for some CAEX properties without using a CAEXWrapper for this element. Wraps the provided Xml-Element into an element specific CAEXWrapper object. the Xml-Element The specific CAEXWrapper object if the element is a CAEX element; otherwise null Gets the elements with the specified CAEX element name (Tag-name) from the provided caexClass and all its base classes in the inheritance tree. If the EqualityComparer is specified, only those elements of a base class are added which are unequal to any element in the derived class. The returned collection contains also those inherited elements, which are marked as deleted. Deletion is possible, when an element is overridden. a derived class The CAEX element name (Tag-name) Equality comparer to exclude equal elements of a base class All inherited elements including those, which are marked as deleted. Gets the elements with the specified CAEX element name (Tag-name) from the provided caexClass and all its base classes in the inheritance tree. If the EqualityComparer is specified, only those elements of a base class are added which are unequal to any element in the derived class. The returned collection contains only inherited elements, which are not marked as deleted. Deletion is possible, when an element is overridden. a derived class The CAEX element name (Tag-name) Equality comparer to exclude equal elements of a base class All inherited elements not including those, which are marked as deleted. Gets the first element of the provided parent The parent. First element if one exists; otherwise null. Gets the first element of the provided parent with the provided local name The parent. The local name of the child element. First element if one exists; otherwise null. Tries to get the element from the owner with the specified element name. If no such element could be found it is appended as a new child with the provided content. The owner of the element. The element name. Some content, which is added to the element, if it is created. if true, element has been deleted when content is null and element is not required. the element owner Gets the Interface from the provided InternalLink Attribute value. The internal link attribute. The XML node of the ExternalInterface. internalLinkAttribute Gets the Master Attribute from the provided RefAttributeType value. The attribute reference. The XML node of the Attribute. refAttribute Gets the last child element of the defined parent The parent. the last child or null, if no child exists. Gets the last child element of the defined parent with the defined local name The parent. the name of the child node to look at. the last child or null, if no child exists with this name.