module REXML::Namespace - rexml: Ruby Standard Library Documentation

# module REXML::Namespace

Adds named attributes to an object.

### Constants

NAMESPLIT
NAME_WITHOUT_NAMESPACE

### 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 rexml-3.4.0/lib/rexml/namespace.rb, line 57
    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 rexml-3.4.0/lib/rexml/namespace.rb, line 43
    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 rexml-3.4.0/lib/rexml/namespace.rb, line 17
    def name=( name )
      @expanded_name = name
      if name.match?(NAME_WITHOUT_NAMESPACE)
        @prefix = ""
        @namespace = ""
        @name = name
      elsif name =~ NAMESPLIT
        if $1
          @prefix = $1
        else
          @prefix = ""
          @namespace = ""
        end
        @name = $2
      elsif name == ""
        @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