module REXML::SAX2Listener

要約

REXML::Parsers::SAX2Parser で使われるコールバックオブジェクトのためのモジュールです。

このモジュールを include して、各メソッドを適切にオーバーライドしたクラスのインスタンスを REXML::Parsers::SAX2Parser#listen で渡します。

REXML::Parsers::SAX2Parser#listen ではこのモジュールを使わずにブロックを使う方法もあります。

このモジュールで定義されているメソッド自体は何もしません。コールバックのデフォルト動作(何もしない)を定義しているだけです。

目次

インスタンスメソッド

インスタンスメソッド

attlistdecl(element, pairs, contents) -> ()[permalink][rdoc]

DTDの属性リスト宣言に対し呼び出されるコールバックメソッドです。

[PARAM] element:
要素名が文字列で渡されます
[PARAM] pairs:
属性名とそのデフォルト値の対応が { 属性名文字列 => デフォルト値文字列(無ければnil) } というハッシュテーブルで渡されます
[PARAM] contents:
文書内の属性リスト宣言の文字列がそのまま渡されます
cdata(content) -> ()[permalink][rdoc]

CDATA セクションに出会ったときに呼び出されるコールバックメソッドです。

[PARAM] content:
CDATAセクションの内容の文字列が渡されます
characters(text) -> ()[permalink][rdoc]

XML の文字データに出会ったときに呼び出されるコールバックメソッドです。

[PARAM] text:
文字データ(文字列)が渡されます
comment(comment) -> ()[permalink][rdoc]

XML文書内のコメントに出会ったときに呼び出されるコールバックメソッドです。

[PARAM] comment:
コメントの内容が文字列で渡されます
doctype(name, pub_sys, long_name, uri) -> ()[permalink][rdoc]

文書型宣言(DTD)に出会った時に呼び出されるコールバックメソッドです。

[PARAM] name:
宣言されているルート要素名が文字列で渡されます。
[PARAM] pub_sys:
"PUBLIC" もしくは "SYSTEM" が渡されます。nilが渡される場合もあります。
[PARAM] long_name:
"SYSTEM" の場合はシステム識別子が、"PUBLIC"の場合は公開識別子が文字列で渡されます
[PARAM] uri:
"SYSTEM" の場合は nil が、"PUBLIC" の場合はシステム識別子が渡されます
elementdecl(content) -> ()[permalink][rdoc]

DTDの要素型宣言をパースしたときに呼び出されるコールバックメソッドです。

[PARAM] content:
要素型宣言が文字列として渡されます。
end_document -> ()[permalink][rdoc]

ドキュメントの末尾で呼び出されるコールバックメソッドです。

end_element(uri, localname, qname) -> ()[permalink][rdoc]

要素が終了した(閉じられた)ときに呼び出されるコールバックメソッドです。

[PARAM] uri:
名前空間のURI文字列が渡されます。対応する名前空間が存在しない場合は nil が渡されます
[PARAM] localname:
接頭辞を取り除いた要素名文字列が渡されます
[PARAM] qname:
修飾名(qualified-name)文字列、つまり接頭辞を含む文字列が渡されます
end_prefix_mapping(prefix) -> ()[permalink][rdoc]

名前空間の接頭辞(prefix)の適用範囲が終了したときに呼び出されるコールバックメソッドです。

[PARAM] prefix:
接頭辞の文字列が渡されます
entitydecl(content) -> ()[permalink][rdoc]

DTDの実体宣言に出会ったときに呼び出されるコールバックメソッドです。

[PARAM] content:
実体宣言が配列で渡されます
notationdecl(name, public_or_system, public_id, system_id) -> ()[permalink][rdoc]

DTDの記法宣言に出会ったときに呼び出されるコールバックメソッドです。

[PARAM] name:
記法名が文字列で渡されます
[PARAM] public_or_system:
"PUBLIC" もしくは "SYSTEM" が渡されます
[PARAM] public_id:
公開識別子が文字列で渡されます。指定されていない場合はnilが渡されます
[PARAM] system_id:
システム識別子が文字列で渡されます。指定されていない場合はnilが渡されます
processing_instruction(target, data) -> ()[permalink][rdoc]

XML 処理命令(PI)に対し呼び出されるコールバックメソッドです。

[PARAM] target:
ターゲット名が文字列で渡されます
[PARAM] data:
処理命令の内容が文字列で渡されます
progress(position) -> ()[permalink][rdoc]

パーサが入力を読み進めたときに呼び出されるコールバックメソッドです。

これの呼び出しの次のコールバックは基本的にこれで報告される位置から読み出したデータによるものです。

[PARAM] position:
パーサの入力位置のバイト数
start_document -> ()[permalink][rdoc]

ドキュメントの先頭で呼び出されるコールバックメソッドです。

start_element(uri, localname, qname, attributes) -> ()[permalink][rdoc]

要素が開始されたときに呼び出されるコールバックメソッドです。

[PARAM] uri:
名前空間のURI文字列が渡されます。対応する名前空間が存在しない場合は nil が渡されます
[PARAM] localname:
接頭辞を取り除いた要素名文字列が渡されます
[PARAM] qname:
修飾名(qualified-name)文字列、つまり接頭辞を含む文字列が渡されます
[PARAM] attribute:
属性が { 属性名 => 属性値文字列 } という Hash でで渡されます。
start_prefix_mapping(prefix, uri) -> ()[permalink][rdoc]

名前空間の接頭辞(prefix)が導入されたときに呼び出されるコールバックメソッドです。

以下のようなXMLを処理

<a xmlns:foo="http://foo.example.org/">
  <foo:b />
</a>

すると

start_prefix_mapping("foo", "http://foo.example.org/")
start_element(nil, "a", "a", {"xmlns:foo" => "http://foo.example.org/"})
  :
end_element(nil, "a", "a")
end_prefix_mapping("foo")

の順で呼びだされます。つまり名前空間を導入した要素の start_element の前に start_prefix_mapping が呼びだされます。

[PARAM] prefix:
接頭辞の文字列が渡されます
[PARAM] uri:
接頭辞に対応する URI 文字列が渡されます
xmldecl(version, encoding, standalone) -> ()[permalink][rdoc]

XML宣言に出会ったときに呼び出されるコールバックメソッドです。

[PARAM] version:
宣言されているバージョンが文字列で渡されます。
[PARAM] encoding:
宣言されているエンコーディングが文字列で渡されます。
[PARAM] standalone:
スタンドアロン文書であるかどうかが "yes" "no" で渡されます