# class REXML::XMLDecl

NEEDS DOCUMENTATION

### Constants

DEFAULT_ENCODING
DEFAULT_STANDALONE
DEFAULT_VERSION
START
STOP

### Attributes

stand_alone?[RW]
standalone[RW]
version[RW]
writeencoding[R]
writethis[R]

### Public Class Methods

default() click to toggle source

Only use this if you do not want the XML declaration to be written; this object is ignored by the XML writer. Otherwise, instantiate your own XMLDecl and add it to the document.

Note that XML 1.1 documents must include an XML declaration

    # File lib/rexml/xmldecl.rb, line 89
    def XMLDecl.default
      rv = XMLDecl.new( "1.0" )
      rv.nowrite
      rv
    end

new(version=DEFAULT_VERSION, encoding=nil, standalone=nil) click to toggle source
Calls superclass method REXML::Child.new

    # File lib/rexml/xmldecl.rb, line 18
    def initialize(version=DEFAULT_VERSION, encoding=nil, standalone=nil)
      @writethis = true
      @writeencoding = !encoding.nil?
      if version.kind_of? XMLDecl
        super()
        @version = version.version
        self.encoding = version.encoding
        @writeencoding = version.writeencoding
        @standalone = version.standalone
      else
        super()
        @version = version
        self.encoding = encoding
        @standalone = standalone
      end
      @version = DEFAULT_VERSION if @version.nil?
    end

### Public Instance Methods

==( other ) click to toggle source

    # File lib/rexml/xmldecl.rb, line 53
    def ==( other )
      other.kind_of?(XMLDecl) and
      other.version == @version and
      other.encoding == self.encoding and
      other.standalone == @standalone
    end

clone() click to toggle source

    # File lib/rexml/xmldecl.rb, line 36
    def clone
      XMLDecl.new(self)
    end

dowrite() click to toggle source

    # File lib/rexml/xmldecl.rb, line 99
    def dowrite
      @writethis = true
    end

encoding=( enc ) click to toggle source

    # File lib/rexml/xmldecl.rb, line 73
    def encoding=( enc )
      if enc.nil?
        self.old_enc = "UTF-8"
        @writeencoding = false
      else
        self.old_enc = enc
        @writeencoding = true
      end
      self.dowrite
    end

Also aliased as: old_enc=
inspect() click to toggle source

    # File lib/rexml/xmldecl.rb, line 103
    def inspect
      START.sub(/\\/u, '') + " ... " + STOP.sub(/\\/u, '')
    end

node_type() click to toggle source

    # File lib/rexml/xmldecl.rb, line 66
    def node_type
      :xmldecl
    end

nowrite() click to toggle source

    # File lib/rexml/xmldecl.rb, line 95
    def nowrite
      @writethis = false
    end

old_enc=( enc )
Alias for: encoding=
write(writer, indent=-1, transitive=false, ie_hack=false) click to toggle source

indent

  Ignored. There must be no whitespace before an XML declaration

transitive

  Ignored

ie_hack

  Ignored

    # File lib/rexml/xmldecl.rb, line 46
    def write(writer, indent=-1, transitive=false, ie_hack=false)
      return nil unless @writethis or writer.kind_of? Output
      writer << START.sub(/\\/u, '')
      writer << " #{content encoding}"
      writer << STOP.sub(/\\/u, '')
    end

xmldecl(version, encoding, standalone) click to toggle source

    # File lib/rexml/xmldecl.rb, line 60
    def xmldecl version, encoding, standalone
      @version = version
      self.encoding = encoding
      @standalone = standalone
    end

### Private Instance Methods

content(enc) click to toggle source

    # File lib/rexml/xmldecl.rb, line 108
    def content(enc)
      rv = "version='#@version'"
      rv << " encoding='#{enc}'" if @writeencoding || enc !~ /\Autf-8\z/i
      rv << " standalone='#@standalone'" if @standalone
      rv
    end