System.Xml.Schema.SchemaCollectionCompiler.IsSequenceFromAll C# (CSharp) Méthode

IsSequenceFromAll() private méthode

private IsSequenceFromAll ( XmlSchemaSequence derivedSequence, XmlSchemaAll baseAll ) : bool
derivedSequence XmlSchemaSequence
baseAll XmlSchemaAll
Résultat bool
        private bool IsSequenceFromAll(XmlSchemaSequence derivedSequence, XmlSchemaAll baseAll) {
            if (!IsValidOccurrenceRangeRestriction(derivedSequence, baseAll) || derivedSequence.Items.Count > baseAll.Items.Count) {
                return false;
            }
            BitSet map = new BitSet(baseAll.Items.Count);
            foreach (XmlSchemaParticle p in derivedSequence.Items) {
                int i = GetMappingParticle(p, baseAll.Items);
                if (i >= 0) {
                    if (map[i]) {
                        return false;
                    }
                    else {
                        map.Set(i);
                    }
                }
                else {
                    return false;
                }
            }
            for (int i = 0; i < baseAll.Items.Count; i++) {
                if (!map[i] && !IsParticleEmptiable((XmlSchemaParticle)baseAll.Items[i])) {
                    return false;
                }
            }
            return true;
        }