# REXML::DTD::EntityDecl (Class)

In: | rexml/dtd/entitydecl.rb
Parent: | Child

## Methods

new parse_source to_s write

## Constants

START | = | "
START_RE | = | /^\s*#{START}/um
PUBLIC | = | /^\s*#{START}\s+(?:%\s+)?(\w+)\s+PUBLIC\s+((["']).*?\3)\s+((["']).*?\5)\s*>/um
SYSTEM | = | /^\s*#{START}\s+(?:%\s+)?(\w+)\s+SYSTEM\s+((["']).*?\3)(?:\s+NDATA\s+\w+)?\s*>/um
PLAIN | = | /^\s*#{START}\s+(\w+)\s+((["']).*?\3)\s*>/um
PERCENT | = | /^\s*#{START}\s+%\s+(\w+)\s+((["']).*?\3)\s*>/um

## Public Class methods

new(src)

<!ENTITY name SYSTEM "…"> <!ENTITY name "…">

[Source]

    # File rexml/dtd/entitydecl.rb, line 13
                            def initialize src
                                    super()
                                    md = nil
                                    if src.match( PUBLIC )
                                            md = src.match( PUBLIC, true )
                                            @middle = "PUBLIC"
                                            @content = "#{md[2]} #{md[4]}"
                                    elsif src.match( SYSTEM )
                                            md = src.match( SYSTEM, true )
                                            @middle = "SYSTEM"
                                            @content = md[2]
                                    elsif src.match( PLAIN )
                                            md = src.match( PLAIN, true )
                                            @middle = ""
                                            @content = md[2]
                                    elsif src.match( PERCENT )
                                            md = src.match( PERCENT, true )
                                            @middle = ""
                                            @content = md[2]
                                    end
                                    raise ParseException.new("failed Entity match", src) if md.nil?
                                    @name = md[1]
                            end

parse_source(source, listener)

[Source]

    # File rexml/dtd/entitydecl.rb, line 49
                            def EntityDecl.parse_source source, listener
                                    md = source.match( PATTERN_RE, true )
                                    thing = md[0].squeeze(" \t\n\r")
                                    listener.send inspect.downcase, thing
                            end

## Public Instance methods

to_s()

[Source]

    # File rexml/dtd/entitydecl.rb, line 37
                            def to_s
                                    rv = "<!ENTITY #@name "
                                    rv << "#@middle " if @middle.size > 0
                                    rv << @content
                                    rv
                            end

write( output, indent )

[Source]

    # File rexml/dtd/entitydecl.rb, line 44
                            def write( output, indent )
                                    output << ('   '*indent) if indent > 0
                                    output << to_s
                            end

[Validate]