names=new
visibility=public
kind=defined

--- new(arg, respect_whitespace = false, parent = nil, raw = nil, entity_filter = nil, illegal = REXML::Text::NEEDS_A_SECOND_CHECK)

テキストノードオブジェクトを生成します。

arg でノードの内容を指定します。
文字列の場合はそれが内容として使われます。
[[c:REXML::Text]] オブジェクトの場合はその内容が複製されます。

respect_whitespace に真を指定すると、arg に含まれる空白文字は保存されます。
偽の場合は空白はまとめられます。

raw は true, false, nil のいずれかを指定し、生成されるテキストノードが
raw モードであるかどうかを決めます。
true の場合、そのノードは raw モードであると解釈され、
テキストにはエスケープされていないXMLマークアップは
含まれていないと仮定し、テキストの内容は変更されません。
falseの場合、そのノードは raw モードであると解釈され、
rexml はテキストに含まれているすべての(定義済み)実体を
エスケープします
nilの場合、親ノードが raw モードであるかどうかで
self が raw モードになるかどうかが決まります。
arg に REXML::Text オブジェクトを渡した場合は、この値は無視され
arg が raw モードであるかどうかが使われます。

entity_filter は置き換えたい実体のリストを文字列の配列で指定します。
これは raw が false のときのみ意味を持ちます。
entity_filter が nil の場合(デフォルトの場合)、
テキストがどのようにエスケープされるかは、そのノードが属する
文書([[c:REXML::Document]])の
DTD([[c:REXML::DocType]], [[m:REXML::Document#doctype]])
で定義されます。DTD が与えられていない場合は、XMLの規格上
以下の実体参照/対応文字がデフォルトで使われます。
  * &amp; &
  * &lt; <  
  * &gt; >
  * &quot; "
  * &apos; '

illegal は内部用なので使わないでください。

@param arg テキストデータ(文字列)もしくは元データの [[c:REXML::Text]] オブジェクト
@param respect_whitespace 空白を保存するかどうかを決める真偽値
@param parent 親ノード
@param raw テキストのエスケープの挙動を決める値
@param entity_filter 置換したい実体の名前の配列
@param illegal ライブラリ内部用
@raise RuntimeError テキストがXMLのテキストとして不正な
       文字を含んでいる場合に発生します。

==== 例

doctype なしの場合
  p REXML::Text.new("<&", false, nil, false).to_s  # => "&lt;&amp;"
  p REXML::Text.new("&lt;&amp;", false, nil, false).to_s # => "&amp;lt;&amp;amp;"
  p REXML::Text.new("&lt;&amp;", false, nil, true).to_s # => "&lt;&amp;"
  p REXML::Text.new("<&", false, nil, true).to_s # parse error

doctype があり、実体が宣言されている場合
  require 'rexml/document'
  doc = REXML::Document.new(<<EOS)
  doctype = REXML::Document.new(<<EOS).doctype
  <!DOCTYPE root [
  <!ENTITY p "foobar publisher">
  <!ENTITY % q "quzz">
  ]>
  <root />
  EOS
  REXML::Text.new("&quzz", false, doc.root, false).to_s # => "&amp;&q;"
  REXML::Text.new("quzz", false, doc.root, true).to_s # => "quzz"


