Exemple #1
0
        internal override void CheckXsdDeterministic(ArrayList terminalNodes, out BitSet set, out NamespaceList any)
        {
            BitSet        lset = null, rset = null;
            NamespaceList lany = null, rany = null;

            switch (contentType)
            {
            case Type.Sequence:
                left.CheckXsdDeterministic(terminalNodes, out lset, out lany);
                right.CheckXsdDeterministic(terminalNodes, out rset, out rany);
                if (left.CanSkip())
                {
                    Join(terminalNodes, lset, lany, rset, rany, out set, out any);
                }
                else
                {
                    set = lset;
                    any = lany;
                }
                break;

            case Type.Choice:
                left.CheckXsdDeterministic(terminalNodes, out lset, out lany);
                right.CheckXsdDeterministic(terminalNodes, out rset, out rany);
                Join(terminalNodes, lset, lany, rset, rany, out set, out any);
                break;

            default:
                left.CheckXsdDeterministic(terminalNodes, out set, out any);
                break;
            }
            return;
        }