    # File temp/validation/relaxng.rb, line 488
          def next( event )
            # Find the next series
            next_current(event) unless @events[@current]
            return nil unless @events[@current]

            expand_ref_in( @events, @current ) if @events[@current].class == Ref
           #puts "In next with #{event.inspect}."
           #puts "Next (#@current) is #{@events[@current]}"
            if ( @events[@current].kind_of? State )
              @current += 1
              @events[@current-1].previous = self
              return @events[@current-1].next( event )
            end
           #puts "Current isn't a state"
            return @previous.pop.next( event ) if @events[@current].nil?
            if ( @events[@current].matches?(event) )
              @current += 1
              if @events[@current].nil?
               #puts "#{inspect[0,5]} 1RETURNING self" unless @choices[@choice].nil?
                return self unless @choices[@choice].nil?
               #puts "#{inspect[0,5]} 1RETURNING #{@previous[-1].inspect[0,5]}"
                return @previous.pop
              elsif @events[@current].kind_of? State
                @current += 1
               #puts "#{inspect[0,5]} 2RETURNING (#{@current-1}) #{@events[@current-1].inspect[0,5]}; on return, next is #{@events[@current]}"
                @events[@current-1].previous = self
                return @events[@current-1]
              else
               #puts "#{inspect[0,5]} RETURNING self w/ next(#@current) = #{@events[@current]}"
                return self
              end
            else
              return nil
            end
          end