/// <summary>
        /// The assemble scheme map.
        /// </summary>
        /// <param name="assembleInto">
        /// The assemble into.
        /// </param>
        /// <param name="assembleFrom">
        /// The assemble from.
        /// </param>
        public void AssembleSchemeMap(ItemSchemeMapType assembleInto, IItemSchemeMapObject assembleFrom)
        {
            // Populate it from inherited super
            this.AssembleMap(assembleInto, assembleFrom);

            //// Populate it using this class's specifics
            //// Child maps
            foreach (IItemMap eachMapBean in assembleFrom.Items)
            {
                // Defer child creation to subclass
                ItemAssociationType newMap = this.CreateNewMap(assembleInto);

                //// Annotations
                //// TODO RSG AWAITING MODEL CHANGES
                ////             if(ObjectUtil.validCollection(eachMapBean.getAnnotations())) {
                ////                 newMap.setAnnotations(getAnnotationsType(eachMapBean));
                ////             }
                //// Common source and target id allocation
                LocalItemReferenceType sourceItemReference = this.CreateSourceItemReference(newMap);
                LocalItemReferenceType targetItemReference = this.CreateTargetItemReference(newMap);

                RefBaseType newSourceRef = this.CreateItemRef(sourceItemReference);
                newSourceRef.id = eachMapBean.SourceId;

                RefBaseType newTargetRef = this.CreateItemRef(targetItemReference);
                newTargetRef.id = eachMapBean.TargetId;

                SdmxStructureType stype = this.MapStructureType();
                if (stype != null)
                {
                    newSourceRef.@class = XmlobjectsEnumUtil.BuildV21(stype);
                    newTargetRef.@class = XmlobjectsEnumUtil.BuildV21(stype);
                }
            }
        }
 /// <summary>
 /// The assemble map.
 /// </summary>
 /// <param name="assembleInto">
 /// The assemble into.
 /// </param>
 /// <param name="assembleFrom">
 /// The assemble from.
 /// </param>
 public void AssembleMap(ItemSchemeMapType assembleInto, ISchemeMapObject assembleFrom)
 {
     // Populate it from inherited super
     this.AssembleNameable(assembleInto, assembleFrom);
     ItemSchemeReferenceBaseType sourceReference = this.CreateSourceReference(assembleInto);
     ItemSchemeReferenceBaseType targetReference = this.CreateTargetReference(assembleInto);
     ItemSchemeRefBaseType sourceRef = this.CreateRef(sourceReference);
     ItemSchemeRefBaseType targetRef = this.CreateRef(targetReference);
     this.SetReference(sourceRef, assembleFrom.SourceRef);
     this.SetReference(targetRef, assembleFrom.TargetRef);
 }
 /// <summary>
 /// Create the target reference.
 /// </summary>
 /// <param name="assembleInto">
 /// The assemble into.
 /// </param>
 /// <returns>
 /// The <see cref="ItemSchemeReferenceBaseType"/>.
 /// </returns>
 protected abstract ItemSchemeReferenceBaseType CreateTargetReference(ItemSchemeMapType assembleInto);
 /// <summary>
 /// Create the new map.
 /// </summary>
 /// <param name="assembleInto">
 /// The assemble into.
 /// </param>
 /// <returns>
 /// The <see cref="ItemAssociationType"/>.
 /// </returns>
 protected internal abstract ItemAssociationType CreateNewMap(ItemSchemeMapType assembleInto);