System.Xml.Schema.RangeContentValidator.ExpectedParticles C# (CSharp) Méthode

ExpectedParticles() public méthode

public ExpectedParticles ( ValidationState context, bool isRequiredOnly ) : ArrayList
context ValidationState
isRequiredOnly bool
Résultat System.Collections.ArrayList
        public override ArrayList ExpectedParticles(ValidationState context, bool isRequiredOnly) {
            ArrayList particles = new ArrayList();
            BitSet expectedPos;
            if (context.RunningPositions != null) {
                List<RangePositionInfo> runningPositions = context.RunningPositions;
                expectedPos = new BitSet(positions.Count);
                for (int i = context.CurrentState.NumberOfRunningPos - 1; i >=0; i--) { 
                    Debug.Assert(runningPositions[i].curpos != null);
                    expectedPos.Or(runningPositions[i].curpos);
                }
                for (int pos = expectedPos.NextSet(-1); pos != -1; pos = expectedPos.NextSet(pos)) {
                    int symbol = positions[pos].symbol;
                    if (symbol >= 0) { //non range nodes
                        XmlSchemaParticle p = positions[pos].particle as XmlSchemaParticle;
                        if (p == null) {
                           continue;
                        }
                        else if (!particles.Contains(p)) {
                           particles.Add(p);
                        }
                    }
                }
            }
            return particles;
        }
    }