Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > rexml/streamlistenerライブラリ > REXML::StreamListenerモジュール > doctype

instance method REXML::StreamListener#doctype

doctype(name, pub_sys, long_name, uri) -> ()[permalink][rdoc]

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

pub_sys, long_name, uri はDTDが内部サブセットのみを利用している場合には nil が渡されます。

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

<!DOCTYPE me PUBLIC "foo" "bar">

というDTDに対しては

name: "me"
pub_sys: "PUBLIC"
long_name: "foo"
uri: "bar"

という引数が渡されます。

<!DOCTYPE root [
   ...

というDTDに対しては

name: "root"
pub_sys: nil
long_name: nil
uri: nil

という引数が渡されます。