def add_child(name, element_class, options = {})
      sym = symbolize(name)
      raise "Child '#{sym}' already defined" if @children.has_key?(sym)
      raise "Illegal name (#{sym})" if RESERVED_NAMES.include?(sym)
      @children[sym] = element_class.new(self, sym, options)
    end
def add_child(name, element_class, options = {})
      sym = symbolize(name)
      raise "Child '#{sym}' already defined" if @children.has_key?(sym)
      raise "Illegal name (#{sym})" if RESERVED_NAMES.include?(sym)
      @children[sym] = element_class.new(self, sym, options)
    end
Add a child element.

 @param [String] name A unique name for the element that is not
   in RESERVED_NAMES
 @param [String] element_class Ruby class name for the new element
 @param [Hash] options Options to pass to the element. Any option key
   that is not recognized is set as an attribute on the DOM element.
   Recognized keys are:
     prepend Prepend the new element before this DOM element
     content Add the value of content as a textnode to the DOM element