/// <summary>
        /// Clone an Eiffel ADL archetype as an OpenEhr.V1.Its.Xml.AM.ARCHETYPE.
        /// </summary>
        public ARCHETYPE CloneArchetype(openehr.openehr.am.archetype.ARCHETYPE adlArchetype)
        {
            ARCHETYPE result = CloneArchetypeDetails(adlArchetype);

            object rootNode = Visit(adlArchetype.definition(), 0);
            C_COMPLEX_OBJECT rootComplexObject = rootNode as C_COMPLEX_OBJECT;
            result.definition = rootComplexObject;
            CloneTree(adlArchetype.definition(), rootComplexObject, 0);

            return result;
        }