# module REXML::Namespace

Adds named attributes to an object.

### Constants

NAMESPLIT

### Attributes

expanded_name[R]

The name of the object, valid if set

local_name[R]

The name of the object, valid if set

name[R]

The name of the object, valid if set

prefix[RW]

The expanded name of the object, valid if name is set

### Public Instance Methods

fully_expanded_name() click to toggle source

Fully expand the name, even if the prefix wasn't specified in the source file.

    # File lib/rexml/namespace.rb, line 53
    def fully_expanded_name
      ns = prefix
      return "#{ns}:#@name" if ns.size > 0
      return @name
    end

has_name?( other, ns=nil ) click to toggle source

Compares names optionally WITH namespaces

    # File lib/rexml/namespace.rb, line 39
    def has_name?( other, ns=nil )
      if ns
        return (namespace() == ns and name() == other)
      elsif other.include? ":"
        return fully_expanded_name == other
      else
        return name == other
      end
    end

name=( name ) click to toggle source

Sets the name and the expanded name

    # File lib/rexml/namespace.rb, line 16
    def name=( name )
      @expanded_name = name
      case name
      when NAMESPLIT
        if $1
          @prefix = $1
        else
          @prefix = ""
          @namespace = ""
        end
        @name = $2
      when ""
        @prefix = nil
        @namespace = nil
        @name = nil
      else
        message = "name must be \#{PREFIX}:\#{LOCAL_NAME} or \#{LOCAL_NAME}: "
        message += "<#{name.inspect}>"
        raise ArgumentError, message
      end
    end