# REXML::Namespace (Module)

In: | rexml/namespace.rb

Adds named attributes to an object.

## Methods

fully_expanded_name has_name? name=

## Constants

NAMESPLIT | = | /^(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})/u

## External Aliases

name -> local_name

## Attributes

expanded_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

## Included Modules

XMLTokens

## Public Instance methods

name=( name )

Sets the name and the expanded name

[Source]

    # File rexml/namespace.rb, line 14
                    def name=( name )
                            @expanded_name = name
                            name =~ NAMESPLIT
                            if $1
                                    @prefix = $1
                            else
                                    @prefix = ""
                                    @namespace = ""
                            end
                            @name = $2
                    end

has_name?( other, ns=nil )

Compares names optionally WITH namespaces

[Source]

    # File rexml/namespace.rb, line 27
                    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

fully_expanded_name()

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

[Source]

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

[Validate]