/// <summary>
        /// Checks to see that each markup object is of a public type.  Used in serialization.
        ///
        /// This implementation checks the base property, checks the item's type, and recursively checks each of
        /// the item's properties.
        /// </summary>
        internal override void VerifyOnlySerializableTypes()
        {
            base.VerifyOnlySerializableTypes();

            if (base.IsComposite)
            {
                foreach (MarkupObject item in Items)
                {
                    MarkupWriter.VerifyTypeIsSerializable(item.ObjectType);

                    foreach (MarkupProperty property in item.Properties)
                    {
                        property.VerifyOnlySerializableTypes();
                    }
                }
            }
        }