protected virtual C_ATTRIBUTE CloneAttribute(openehr.openehr.am.archetype.constraint_model.C_ATTRIBUTE o)
        {
            C_ATTRIBUTE result;

            if (o.cardinality() == null)
                result = new C_SINGLE_ATTRIBUTE();
            else
            {
                C_MULTIPLE_ATTRIBUTE cloneMultiple = new C_MULTIPLE_ATTRIBUTE();
                cloneMultiple.cardinality = CloneCardinality(o.cardinality());
                result = cloneMultiple;
            }

            result.rm_attribute_name = o.rm_attribute_name().to_cil();

            if (o.existence() != null)
                result.existence = CloneIntervalOfInteger(o.existence());

            // 0..* children C_OBJECT (set in CloneTree)

            return result;
        }