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 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 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 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