/// <summary>
        /// Protected version of <see cref="Copy"/> - in place as part of a technicality to have <see cref="Copy"/>
        /// return <see cref="ExampleCustomProperty"/> instead of <see cref="XmlProperty"/>
        /// </summary>
        /// <returns>The copy</returns>
        protected override Property CopyProtected()
        {
            ExampleCustomProperty exProp = (ExampleCustomProperty)base.CopyProtected();

            exProp.CustomData = CustomData;
            return(exProp);
        }
        /// <summary>
        /// Protected version of <see cref="Export"/> - in place as part of a technicality to have <see cref="Export"/>
        /// return <see cref="ExampleCustomProperty"/> instead of <see cref="XmlProperty"/>
        /// </summary>
        /// <returns>The export</returns>
        protected override Property ExportProtected(Presentation destPres)
        {
            ExampleCustomProperty exProp = base.ExportProtected(destPres) as ExampleCustomProperty;

            if (exProp == null)
            {
                throw new exception.FactoryCannotCreateTypeException(String.Format(
                                                                         "The property factory can not create a ExampleCustomProperty matching QName {0}:{1}",
                                                                         XukNamespaceUri, XukLocalName));
            }
            exProp.CustomData = CustomData;
            return(exProp);
        }
        public override bool ValueEquals(WithPresentation other)
        {
            if (!base.ValueEquals(other))
            {
                return(false);
            }

            ExampleCustomProperty otherz = other as ExampleCustomProperty;

            if (otherz == null)
            {
                return(false);
            }

            if (CustomData != otherz.CustomData)
            {
                return(false);
            }

            return(true);
        }