System.Xml.Schema.XmlSchemaComplexType.CloneParticle C# (CSharp) Méthode

CloneParticle() static private méthode

static private CloneParticle ( XmlSchemaParticle particle ) : XmlSchemaParticle
particle XmlSchemaParticle
Résultat XmlSchemaParticle
        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;
        }

Usage Example

Exemple #1
0
        internal XmlSchemaObject Clone(XmlSchema parentSchema)
        {
            XmlSchemaGroup newGroup = (XmlSchemaGroup)MemberwiseClone();

            if (XmlSchemaComplexType.HasParticleRef(_particle, parentSchema))
            {
                newGroup._particle = XmlSchemaComplexType.CloneParticle(_particle, parentSchema) as XmlSchemaGroupBase;
            }
            newGroup._canonicalParticle = XmlSchemaParticle.Empty;
            return(newGroup);
        }
All Usage Examples Of System.Xml.Schema.XmlSchemaComplexType::CloneParticle