System.Xml.Schema.XmlSchemaElement.Clone C# (CSharp) Method

Clone() private method

private Clone ( ) : XmlSchemaObject
return XmlSchemaObject
        internal override XmlSchemaObject Clone() {
            XmlSchemaElement newElem = (XmlSchemaElement)MemberwiseClone();

            //Deep clone the QNames as these will be updated on chameleon includes
            newElem.refName = this.refName.Clone();
            newElem.substitutionGroup = this.substitutionGroup.Clone(); 
            newElem.typeName = this.typeName.Clone(); 

            //Clear compiled tables
            newElem.constraints = null;
            return newElem;
        }
    }

Usage Example

        internal static XmlSchemaParticle CloneParticle(XmlSchemaParticle particle)
        {
            XmlSchemaGroupBase groupBase = particle as XmlSchemaGroupBase;

            if (groupBase != null && !(groupBase is XmlSchemaAll))    //Choice or sequence
            {
                XmlSchemaGroupBase newGroupBase = groupBase;

                XmlSchemaObjectCollection newGroupbaseParticles = CloneGroupBaseParticles(groupBase.Items);
                newGroupBase = (XmlSchemaGroupBase)groupBase.Clone();
                newGroupBase.SetItems(newGroupbaseParticles);
                return(newGroupBase);
            }
            else if (particle is XmlSchemaGroupRef)   // group ref
            {
                XmlSchemaGroupRef newGroupRef = (XmlSchemaGroupRef)particle.Clone();
                newGroupRef.RefName = newGroupRef.RefName.Clone();
                return(newGroupRef);
            }
            else
            {
                XmlSchemaElement oldElem = particle as XmlSchemaElement;
                if (oldElem != null && (!oldElem.RefName.IsEmpty || !oldElem.SchemaTypeName.IsEmpty))   //Its element ref or type name is present
                {
                    XmlSchemaElement newElem = (XmlSchemaElement)oldElem.Clone();
                    return(newElem);
                }
            }
            return(particle);
        }
All Usage Examples Of System.Xml.Schema.XmlSchemaElement::Clone