/// <summary>
        /// Gets the metaverse object deletion rules header table.
        /// </summary>
        /// <returns>The metaverse object deletion rules header table.</returns>
        private DataTable GetMetaverseObjectDeletionRulesHeaderTable()
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                var headerTable = Documenter.GetHeaderTable();

                // Header Row 1
                // Object Type
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 0 }, { "ColumnIndex", 0 }, { "ColumnName", "Object Type" }, { "RowSpan", 2 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Deletion Rules
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 0 }, { "ColumnIndex", 1 }, { "ColumnName", "Deletion Rules" }, { "RowSpan", 1 }, { "ColSpan", 3 }
                }).Values.Cast <object>().ToArray());

                // Header Row 2
                // Connector
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 0 }, { "ColumnName", "Connector" }, { "RowSpan", 1 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Synchronization Rule
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 1 }, { "ColumnName", "Synchronization Rule" }, { "RowSpan", 1 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Link Type
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 2 }, { "ColumnName", "Link Type" }, { "RowSpan", 1 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                headerTable.AcceptChanges();

                return(headerTable);
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }
        /// <summary>
        /// Gets the metaverse object type header table.
        /// </summary>
        /// <returns>The metaverse object type header table.</returns>
        private DataTable GetMetaverseObjectTypeHeaderTable()
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                var headerTable = Documenter.GetHeaderTable();

                // Header Row 1
                // Attribute
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 0 }, { "ColumnIndex", 0 }, { "ColumnName", "Attribute" }, { "RowSpan", 3 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Type
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 0 }, { "ColumnIndex", 1 }, { "ColumnName", "Type" }, { "RowSpan", 3 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Multi-valued
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 0 }, { "ColumnIndex", 2 }, { "ColumnName", "Multi-valued" }, { "RowSpan", 3 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Indexed
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 0 }, { "ColumnIndex", 3 }, { "ColumnName", "Indexed" }, { "RowSpan", 3 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Precedence
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 0 }, { "ColumnIndex", 4 }, { "ColumnName", "Precedence" }, { "RowSpan", 1 }, { "ColSpan", 7 }
                }).Values.Cast <object>().ToArray());

                // Header Row 2
                // Precedence Display - Rank or Manual or Equal
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 0 }, { "ColumnName", "Rank" }, { "RowSpan", 2 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Connector
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 1 }, { "ColumnName", "Connector" }, { "RowSpan", 2 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Inbound Sync Rule
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 2 }, { "ColumnName", "Inbound Sync Rule" }, { "RowSpan", 2 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Source
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 3 }, { "ColumnName", "Source" }, { "RowSpan", 2 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Scoping Condition
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 1 }, { "ColumnIndex", 4 }, { "ColumnName", "Scoping Condition" }, { "RowSpan", 1 }, { "ColSpan", 3 }
                }).Values.Cast <object>().ToArray());

                // Header Row 3
                // CS Attribute
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 2 }, { "ColumnIndex", 0 }, { "ColumnName", "CS Attribute" }, { "RowSpan", 1 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Operator
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 2 }, { "ColumnIndex", 1 }, { "ColumnName", "Operator" }, { "RowSpan", 1 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                // Value
                headerTable.Rows.Add((new OrderedDictionary {
                    { "RowIndex", 2 }, { "ColumnIndex", 2 }, { "ColumnName", "Value" }, { "RowSpan", 1 }, { "ColSpan", 1 }
                }).Values.Cast <object>().ToArray());

                headerTable.AcceptChanges();

                return(headerTable);
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }