/// <summary>
        /// When overridden in a derived class, creates a duplicate of the node.
        /// </summary>
        /// <param name="deep">
        /// Specify true to recursively clone the subtree under the specified
        /// node; false to clone only the node itself.
        /// </param>
        /// <returns>The cloned node. </returns>
        public override OpenXmlElement CloneNode(bool deep)
        {
            OpenXmlUnknownElement element = new OpenXmlUnknownElement(this._prefix, this._tagName, this._namespaceUri);

            element._text = this.Text;
            element.CopyAttributes(this);
            if (deep)
            {
                element.CopyChilden(this, deep);
            }

            return(element);
        }
        /// <inheritdoc/>
        public override OpenXmlElement CloneNode(bool deep)
        {
            var element = new OpenXmlUnknownElement(_prefix, _tagName, _namespaceUri)
            {
                _text = Text,
            };

            element.CopyAttributes(this);

            if (deep)
            {
                element.CopyChilden(this, deep);
            }

            return(element);
        }
        /// <summary>
        /// When overridden in a derived class, creates a duplicate of the node. 
        /// </summary>
        /// <param name="deep">
        /// Specify true to recursively clone the subtree under the specified
        /// node; false to clone only the node itself.
        /// </param>
        /// <returns>The cloned node. </returns>
        public override OpenXmlElement CloneNode(bool deep)
        {
            OpenXmlUnknownElement element = new OpenXmlUnknownElement(this._prefix, this._tagName, this._namespaceUri);
            element._text = this.Text;
            element.CopyAttributes(this);
            if(deep)
            {
                element.CopyChilden(this, deep);
            }

            return element;
        }