System.Xml.Xsl.XsltOld.RootAction.CheckAttributeSets_RecurceInList C# (CSharp) Method

CheckAttributeSets_RecurceInList() private method

private CheckAttributeSets_RecurceInList ( Hashtable markTable, ICollection setQNames ) : void
markTable System.Collections.Hashtable
setQNames ICollection
return void
        private void CheckAttributeSets_RecurceInList(Hashtable markTable, ICollection setQNames) {
            const string PROCESSING = "P";
            const string DONE       = "D";

            foreach (XmlQualifiedName qname in setQNames) {
                object mark = markTable[qname];
                if (mark == (object) PROCESSING) {
                    throw XsltException.Create(Res.Xslt_CircularAttributeSet, qname.ToString());
                } else if (mark == (object) DONE) {
                    continue; // optimization: we already investigated this attribute-set.
                } else {
                    Debug.Assert(mark == null);

                    markTable[qname] = (object) PROCESSING;
                    CheckAttributeSets_RecurceInContainer(markTable, GetAttributeSet(qname));
                    markTable[qname] = (object) DONE;
                }
            }
        }