def each_child(recursive = false, namespace = nil, name = :DEFAULT, &block)
      if name == :DEFAULT
        name = namespace
        namespace = nil
      end

      @children.each do |child|
        if (name.nil? or child.name == name) and
            (namespace.nil? or child.namespace == namespace)
          yield child
        end

        child.children(recursive, namespace, name, &block) if recursive
      end
      return nil
    end
def each_child(recursive = false, namespace = nil, name = :DEFAULT, &block)
      if name == :DEFAULT
        name = namespace
        namespace = nil
      end

      @children.each do |child|
        if (name.nil? or child.name == name) and
            (namespace.nil? or child.namespace == namespace)
          yield child
        end

        child.children(recursive, namespace, name, &block) if recursive
      end
      return nil
    end
Enumerates the children +Tag+s of this Tag and calls the given block
 providing it the child as parameter.

 _recursive_:: if true, enumerate grand-children, etc, recursively
 _namespace_:: if not nil, indicates the namespace of the children to enumerate
 _name_:: if not nil, indicates the name of the children to enumerate