# File temp/validation/validation.rb, line 12
      def validate( event ) 
        @attr_stack = [] unless defined? @attr_stack
        match = @current[ event ]
        raise ValidationException.new( "Validation error.  Expected: "+
          @current.keys.collect{|e| e.inspect }.join(" or ")+
          " but got #{Event.new( event[0], event[1] ).inspect}" ) unless match
        @current = match

        # Check for attributes
        case event[0]
        when :start_element
          @attr_stack << event[2]
          begin
            attr = [:has_attribute, nil]
            k,v = event[2].find { |k,v| 
              attr[1] = k
              m = @current[ attr ] 
              @current = m if m
            }
            event[2].delete(k) if k
          end while k
        when :end_element
          attrs = @attr_stack.pop
          raise ValidationException.new( "Validation error.  Illegal "+
            " attributes: #{attrs.inspect}") if attrs.length > 0
        end
      end