org.apache.struts.digester
クラス Digester

java.lang.Object
  拡張org.xml.sax.HandlerBase
      拡張org.apache.struts.digester.Digester
すべての実装インタフェース:
org.xml.sax.DocumentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class Digester
extends org.xml.sax.HandlerBase

Digester は、 一連のネストした要素のパターンを検出することによって実行されるルールを、 パースの開始前に追加し、 それによって XML 入力ストリームの処理を行います。 このパッケージは Tomcat 3.0 と 3.1 に含まれる(わずかに差異はありますが) XmlMapper クラスに依存します。

さらに情報を得たい場合は Digester 開発ガイドを参照してください。

実装時の注意 - 単一の Digester インスタンスを単一のスレッド内からのみ実行し、また、 同一のスレッドからでも、 parse() の呼び出しは、 次に呼び出すまでに完了していなくてはなりません。

バージョン:
$Revision: 1.2 $ $Date: 2003/03/22 07:55:11 $
作成者:
Craig McClanahan
翻訳者:
樋田 佳之 [日本語訳のコメントは、report@jajakarta.orgに送ってください。]

フィールドの概要
protected  java.lang.StringBuffer bodyText
          処理中の要素のボディテキスト。
protected  ArrayStack bodyTexts
          一連の要素のボディテキストの( StringBuffer 型の)スタック。
protected  int debug
          このコンポーネントのデバッグ詳細レベル。
protected  java.util.HashMap dtds
          登録済みDTDのURL。
protected  org.xml.sax.ErrorHandler errorHandler
          アプリケーションが用意するエラーハンドラ。
protected  org.xml.sax.Locator locator
          parser に関連する Locator 。
protected  java.lang.String match
          ネストされた要素の処理の中で現在、検出しているパターン。
protected  javax.xml.parsers.SAXParser parser
          入力ストリームをパースするために使用する SAXParser。
protected  java.lang.Object root
          スタックの”ルート”要素(言い換えれば、最後にポップされたオブジェクト)
protected  java.util.HashMap rules
          Digester に登録された一連のルール。
protected  ArrayStack stack
          構築されるオブジェクトスタック。
protected  boolean validating
          パーサに妥当性検査をさせたいかどうか?
 
コンストラクタの概要
Digester()
          デフォルトプロパティで Digester を新規に構築します。
 
メソッドの概要
 void addCallMethod(java.lang.String pattern, java.lang.String methodName, int paramCount)
          指定されたパラメータに関連した "メソッドを呼び出す" ルールを追加します。
 void addCallMethod(java.lang.String pattern, java.lang.String methodName, int paramCount, java.lang.Class[] paramTypes)
          指定されたパラメータに関連した "メソッドを呼び出す" ルールを追加します。
 void addCallMethod(java.lang.String pattern, java.lang.String methodName, int paramCount, java.lang.String[] paramTypes)
          指定されたパラメータに関連した "メソッドを呼び出す" ルールを追加します。
 void addCallParam(java.lang.String pattern, int paramIndex)
          指定されたパラメータに関連した "パラメータを呼び出す" ルールを追加します。
 void addCallParam(java.lang.String pattern, int paramIndex, java.lang.String attributeName)
          指定されたパラメータに関連した "パラメータを呼び出す" ルールを追加します。
 void addObjectCreate(java.lang.String pattern, java.lang.String className)
          指定されたパラメータに関連した "オブジェクトを生成する" ルールを追加します。
 void addObjectCreate(java.lang.String pattern, java.lang.String className, java.lang.String attributeName)
          指定されたパラメータに関連した "オブジェクトを生成する" ルールを追加します。
 void addRule(java.lang.String pattern, Rule rule)
          指定されたパターンを検出するルールを新規に登録します。
 void addSetNext(java.lang.String pattern, java.lang.String methodName)
          指定されたパラメータに関連した "次のオブジェクトをセットする" ルールを追加します。
 void addSetNext(java.lang.String pattern, java.lang.String methodName, java.lang.String paramType)
          指定されたパラメータに関連した "次のオブジェクトをセットする" ルールを追加します。
 void addSetProperties(java.lang.String pattern)
          指定されたパラメータに関連した "複数のプロパティを設定する" ルールを追加します。
 void addSetProperty(java.lang.String pattern, java.lang.String name, java.lang.String value)
          指定されたパラメータに関連した "プロパティを設定する" ルールを追加します。
 void addSetTop(java.lang.String pattern, java.lang.String methodName)
          指定されたパラメータに関連した "最上位オブジェクトをセットする" ルールを追加します。
 void addSetTop(java.lang.String pattern, java.lang.String methodName, java.lang.String paramType)
          指定されたパラメータに関連した "最上位オブジェクトをセットする" ルールを追加します。
 void characters(char[] buffer, int start, int length)
          XML 要素のボディから文字データを受け取ったことをプロセスから通知されます。
 void clear()
          オブジェクトスタックの現在の状態をクリアします。
 void endDocument()
          ドキュメントの最後に到達したことをプロセスから通知されます。
 void endElement(java.lang.String name)
          XML 要素の最後に到達したことをプロセスから通知されます。
 void error(org.xml.sax.SAXParseException exception)
          パース時のエラーを(もしあれば)アプリケーションのエラーハンドラへ通知します。
 void fatalError(org.xml.sax.SAXParseException exception)
          パース時の致命的なエラーを(もしあれば)アプリケーションのエラーハンドラへ通知します。
 int getCount()
          要素のスタックの現在の深さを返します。
 int getDebug()
          Digester のデバッグ詳細レベルを返します。
 org.xml.sax.ErrorHandler getErrorHandler()
          Digester のエラーハンドラを返します。
 javax.xml.parsers.SAXParser getParser()
          入力ストリームのパースに使用する SAXParser を返します。
protected  java.util.List getRules(java.lang.String match)
          指定した検出位置に対応する、一揃えのルールを返します。
 boolean getValidating()
          パーサの妥当性検査フラグを返します。
 void ignorableWhitespace(char[] buffer, int start, int len)
          XML 要素のボディから除去される空白を受け取ったことをプロセスから通知されます。
 void log(java.lang.String message)
          現在の状況に関するメッセージをログ出力へ送ります。
 void log(java.lang.String message, java.lang.Throwable exception)
          現在の状況に関するメッセージと関連する例外をログ出力へ送ります。
 void notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
          表記法宣言の通知イベントを受け取ります。
 java.lang.Object parse(java.io.File file)
          Digester を使って、指定されたファイルの内容をパースします。
 java.lang.Object parse(org.xml.sax.InputSource input)
          Digester を使って、指定された入力ソースの内容をパースします。
 java.lang.Object parse(java.io.InputStream input)
          Digester を使って、指定された入力ストリームの内容をパースします。
 java.lang.Object parse(java.lang.String uri)
          Digester を使って、指定された URI の内容をパースします。
 java.lang.Object peek()
          スタックの最上位オブジェクトを取り除かずに返します。
 java.lang.Object peek(int n)
          スタックの n 番目のオブジェクトを返し、0は最上位要素を、 [getCount()-1] は最下位要素を指します。
 java.lang.Object pop()
          ポップはスタックから最上位オブジェクトを取り除き、それを返します。
 void processingInstruction(java.lang.String target, java.lang.String data)
          処理命令があったことをプロセスから通知されます。
 void push(java.lang.Object object)
          オブジェクトスタックの一番上に新しくオブジェクトをプッシュ[訳注:押し込む]します。
 void register(java.lang.String publicId, java.lang.String dtdURL)
          指定された公開識別子に対して指定された DTD の URL を登録します。
 org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
          要求される外部エンティティを解決します。
 void setDebug(int debug)
          Digester のデバッグ詳細レベルを設定します。
 void setDocumentLocator(org.xml.sax.Locator locator)
          パーサに関連するドキュメントロケータを設定します。
 void setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
          Digester のエラーハンドラを設定します。
 void setValidating(boolean validating)
          パーサの妥当性検査フラグを設定します。
 void startDocument()
          ドキュメントの先頭に到達したことをプロセスから通知されます。
 void startElement(java.lang.String name, org.xml.sax.AttributeList list)
          XML 要素の先頭に到達したことをプロセスから通知されます。
 void unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notation)
          未解析構文エンティティ宣言の通知イベントを受け取ります。
 void warning(org.xml.sax.SAXParseException exception)
          パース時に警告が発生した場合、アプリケーションのエラーハンドラへ通知します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

bodyText

protected java.lang.StringBuffer bodyText
処理中の要素のボディテキスト。


bodyTexts

protected ArrayStack bodyTexts
一連の要素のボディテキストの( StringBuffer 型の)スタック。


debug

protected int debug
このコンポーネントのデバッグ詳細レベル。


dtds

protected java.util.HashMap dtds
登録済みDTDのURL。対応する公開識別子をキーとします。 identifier that corresponds.


errorHandler

protected org.xml.sax.ErrorHandler errorHandler
アプリケーションが用意するエラーハンドラ。パース時の警告、エラー及び、致命的なエラーが通知されます。


locator

protected org.xml.sax.Locator locator
parser に関連する Locator 。


match

protected java.lang.String match
ネストされた要素の処理の中で現在、検出しているパターン。


parser

protected javax.xml.parsers.SAXParser parser
入力ストリームをパースするために使用する SAXParser。


root

protected java.lang.Object root
スタックの”ルート”要素(言い換えれば、最後にポップされたオブジェクト)


rules

protected java.util.HashMap rules
Digester に登録された一連のルール。 要素のスタックと比較される照合パターンをキーとして、 このパターンに対応するルールのリストを値として格納し、 登録された順に並びます。


stack

protected ArrayStack stack
構築されるオブジェクトスタック。


validating

protected boolean validating
パーサに妥当性検査をさせたいかどうか?

コンストラクタの詳細

Digester

public Digester()
デフォルトプロパティで Digester を新規に構築します。

メソッドの詳細

getCount

public int getCount()
要素のスタックの現在の深さを返します。


getDebug

public int getDebug()
Digester のデバッグ詳細レベルを返します。


setDebug

public void setDebug(int debug)
Digester のデバッグ詳細レベルを設定します。

パラメータ:
debug - 新しいデバッグ詳細レベル

getErrorHandler

public org.xml.sax.ErrorHandler getErrorHandler()
Digester のエラーハンドラを返します。


setErrorHandler

public void setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
Digester のエラーハンドラを設定します。

パラメータ:
errorHandler - 新しいエラーハンドラ

getParser

public javax.xml.parsers.SAXParser getParser()
入力ストリームのパースに使用する SAXParser を返します。 このパーサの生成に失敗すると null を返します。


getValidating

public boolean getValidating()
パーサの妥当性検査フラグを返します。


setValidating

public void setValidating(boolean validating)
パーサの妥当性検査フラグを設定します。parse() の最初の呼び出し以前に必ず設定してください。

パラメータ:
validating - 新しいパーサの妥当性検査フラグ。

characters

public void characters(char[] buffer,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
XML 要素のボディから文字データを受け取ったことをプロセスから通知されます。

パラメータ:
buffer - XML ドキュメントからの複数の文字
start - buffer の文字列の開始位置
length - buffer の文字数
例外:
org.xml.sax.SAXException - パース時にエラーが発生した場合にエラーが報告されます

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
ドキュメントの最後に到達したことをプロセスから通知されます。

例外:
org.xml.sax.SAXException - パース時にエラーが発生した場合にエラーが報告されます

endElement

public void endElement(java.lang.String name)
                throws org.xml.sax.SAXException
XML 要素の最後に到達したことをプロセスから通知されます。

パラメータ:
name - 終了した要素の名前
例外:
org.xml.sax.SAXException - パース時にエラーが発生した場合にエラーが報告されます

ignorableWhitespace

public void ignorableWhitespace(char[] buffer,
                                int start,
                                int len)
                         throws org.xml.sax.SAXException
XML 要素のボディから除去される空白を受け取ったことをプロセスから通知されます。

パラメータ:
buffer - XML ドキュメントからの複数の文字
start - buffer の文字列の開始位置
例外:
org.xml.sax.SAXException - パース時にエラーが発生した場合にエラーが報告されます

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
                           throws org.xml.sax.SAXException
処理命令があったことをプロセスから通知されます。

パラメータ:
target - 処理命令の内容
data - (もしあれば)処理命令のデータ
例外:
org.xml.sax.SAXException - パース時にエラーが発生した場合にエラーが報告されます

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
パーサに関連するドキュメントロケータを設定します。

パラメータ:
locator - 新しいロケータ

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
ドキュメントの先頭に到達したことをプロセスから通知されます。

例外:
org.xml.sax.SAXException - パース時にエラーが発生した場合にエラーが報告されます

startElement

public void startElement(java.lang.String name,
                         org.xml.sax.AttributeList list)
                  throws org.xml.sax.SAXException
XML 要素の先頭に到達したことをプロセスから通知されます。

パラメータ:
name - 開始した要素の名前
list - 当該要素を構成する属性
例外:
org.xml.sax.SAXException - パース時にエラーが発生した場合にエラーが報告されます

notationDecl

public void notationDecl(java.lang.String name,
                         java.lang.String publicId,
                         java.lang.String systemId)
表記法宣言の通知イベントを受け取ります。

パラメータ:
name - 表記法名
publicId - 公開識別子(もしあれば)
systemId - システム識別子(もしあれば)

unparsedEntityDecl

public void unparsedEntityDecl(java.lang.String name,
                               java.lang.String publicId,
                               java.lang.String systemId,
                               java.lang.String notation)
未解析構文エンティティ宣言の通知イベントを受け取ります。

パラメータ:
name - 未解析構文エンティティ名
publicId - 公開識別子(もしあれば)
systemId - システム識別子(もしあれば)
notation - 関連表記法名

resolveEntity

public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
                                             java.lang.String systemId)
                                      throws org.xml.sax.SAXException
要求される外部エンティティを解決します。

パラメータ:
publicId - 参照されるエンティティの公開識別子
systemId - 参照されるエンティティのシステム識別子
例外:
org.xml.sax.SAXException - パース時に起こる例外

error

public void error(org.xml.sax.SAXParseException exception)
           throws org.xml.sax.SAXException
パース時のエラーを(もしあれば)アプリケーションのエラーハンドラへ通知します。

パラメータ:
exception - エラー情報
例外:
org.xml.sax.SAXException - パース時に起こる例外

fatalError

public void fatalError(org.xml.sax.SAXParseException exception)
                throws org.xml.sax.SAXException
パース時の致命的なエラーを(もしあれば)アプリケーションのエラーハンドラへ通知します。

パラメータ:
exception - 致命的なエラー情報
例外:
org.xml.sax.SAXException - パース時に起こる例外

warning

public void warning(org.xml.sax.SAXParseException exception)
             throws org.xml.sax.SAXException
パース時に警告が発生した場合、アプリケーションのエラーハンドラへ通知します。

パラメータ:
exception - 警告情報
例外:
org.xml.sax.SAXException - パース時に起こる例外

log

public void log(java.lang.String message)
現在の状況に関するメッセージをログ出力へ送ります。

パラメータ:
message - ログに記録されるメッセージ

log

public void log(java.lang.String message,
                java.lang.Throwable exception)
現在の状況に関するメッセージと関連する例外をログ出力へ送ります。

パラメータ:
message - ログに記録されるメッセージ
exception - ログに記録される例外

parse

public java.lang.Object parse(java.io.File file)
                       throws java.io.IOException,
                              org.xml.sax.SAXException
Digester を使って、指定されたファイルの内容をパースします。 (もしあれば)オブジェクトスタックのルート要素を返します。

パラメータ:
file - パースされる XML データを含むファイル
例外:
java.io.IOException - 入/出力時にエラーが起こきた場合
org.xml.sax.SAXException - パース時にエラーが起こきた場合

parse

public java.lang.Object parse(org.xml.sax.InputSource input)
                       throws java.io.IOException,
                              org.xml.sax.SAXException
Digester を使って、指定された入力ソースの内容をパースします。 (もしあれば)オブジェクトスタックのルート要素を返します。

例外:
java.io.IOException - 入/出力時にエラーが起こきた場合
org.xml.sax.SAXException - パース時にエラーが起こきた場合

parse

public java.lang.Object parse(java.io.InputStream input)
                       throws java.io.IOException,
                              org.xml.sax.SAXException
Digester を使って、指定された入力ストリームの内容をパースします。 (もしあれば)オブジェクトスタックのルート要素を返します。

例外:
java.io.IOException - 入/出力時にエラーが起こきた場合
org.xml.sax.SAXException - パース時にエラーが起こきた場合

parse

public java.lang.Object parse(java.lang.String uri)
                       throws java.io.IOException,
                              org.xml.sax.SAXException
Digester を使って、指定された URI の内容をパースします。 (もしあれば)オブジェクトスタックのルート要素を返します。

例外:
java.io.IOException - 入/出力時にエラーが起こきた場合
org.xml.sax.SAXException - パース時にエラーが起こきた場合

register

public void register(java.lang.String publicId,
                     java.lang.String dtdURL)
指定された公開識別子に対して指定された DTD の URL を登録します。 parse() の最初の呼び出し前にこれを呼び出しておく必要があります。

パラメータ:
publicId - 解決される DTD の公開識別子
dtdURL - この DTD を読み込むときに使用する URL

addRule

public void addRule(java.lang.String pattern,
                    Rule rule)
指定されたパターンを検出するルールを新規に登録します。

パラメータ:
pattern - 要素の照合パターン
rule - 登録するルール

addCallMethod

public void addCallMethod(java.lang.String pattern,
                          java.lang.String methodName,
                          int paramCount)
指定されたパラメータに関連した "メソッドを呼び出す" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
methodName - 呼び出されるメソッドの名前
paramCount - 必要なパラメータの数 (要素のボディを単一のパラメータとする0個を含む)

addCallMethod

public void addCallMethod(java.lang.String pattern,
                          java.lang.String methodName,
                          int paramCount,
                          java.lang.String[] paramTypes)
指定されたパラメータに関連した "メソッドを呼び出す" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
methodName - 呼び出されるメソッドの名前
paramCount - 期待される必要なパラメータの数 (要素のボディを単一のパラメータとする0個を含む)
paramTypes - 期待されるパラメータの型の Java クラス名 (プリミティブ型を使用したい場合は、 boolean に対する java.lang.Boolean のように、 Java ラッパクラスで代替してください)

addCallMethod

public void addCallMethod(java.lang.String pattern,
                          java.lang.String methodName,
                          int paramCount,
                          java.lang.Class[] paramTypes)
指定されたパラメータに関連した "メソッドを呼び出す" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
methodName - 呼び出されるメソッドの名前
paramCount - 期待されるパラメータの数 (要素のボディを単一のパラメータとする0個を含む)
paramTypes - 期待されるパラメータの型の Java クラス名 (プリミティブ型を使用したい場合は、 boolean に対する java.lang.Boolean のように、 Java ラッパクラスで代替してください)

addCallParam

public void addCallParam(java.lang.String pattern,
                         int paramIndex)
指定されたパラメータに関連した "パラメータを呼び出す" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
paramIndex - (要素のボディ部分を)セットしたいパラメータの、0以降のインデックス

addCallParam

public void addCallParam(java.lang.String pattern,
                         int paramIndex,
                         java.lang.String attributeName)
指定されたパラメータに関連した "パラメータを呼び出す" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
paramIndex - (指定したアトリビュートを)セットしたいパラメータの0以降のインデックス
attributeName - このアトリビュートの値を使用してパラメータの値にします

addObjectCreate

public void addObjectCreate(java.lang.String pattern,
                            java.lang.String className)
指定されたパラメータに関連した "オブジェクトを生成する" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
className - 生成する Java クラスの名前

addObjectCreate

public void addObjectCreate(java.lang.String pattern,
                            java.lang.String className,
                            java.lang.String attributeName)
指定されたパラメータに関連した "オブジェクトを生成する" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
className - 生成する Java クラスの名前
attributeName - 生成する、デフォルトの Java クラス名を代替する、アトリビュートの名前

addSetNext

public void addSetNext(java.lang.String pattern,
                       java.lang.String methodName)
指定されたパラメータに関連した "次のオブジェクトをセットする" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
methodName - 呼び出したい親要素のメソッドの名前

addSetNext

public void addSetNext(java.lang.String pattern,
                       java.lang.String methodName,
                       java.lang.String paramType)
指定されたパラメータに関連した "次のオブジェクトをセットする" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
methodName - 呼び出したい親のメソッドの名前

addSetProperties

public void addSetProperties(java.lang.String pattern)
指定されたパラメータに関連した "複数のプロパティを設定する" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン

addSetProperty

public void addSetProperty(java.lang.String pattern,
                           java.lang.String name,
                           java.lang.String value)
指定されたパラメータに関連した "プロパティを設定する" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
name - 設定したいプロパティの名前を含む、アトリビュートの名前
value - 設定したいプロパティの値を含む、アトリビュートの名前

addSetTop

public void addSetTop(java.lang.String pattern,
                      java.lang.String methodName)
指定されたパラメータに関連した "最上位オブジェクトをセットする" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
methodName - 呼び出したい親要素のメソッド名

addSetTop

public void addSetTop(java.lang.String pattern,
                      java.lang.String methodName,
                      java.lang.String paramType)
指定されたパラメータに関連した "最上位オブジェクトをセットする" ルールを追加します。

パラメータ:
pattern - 要素の照合パターン
methodName - 呼び出したい親要素のメソッド名

clear

public void clear()
オブジェクトスタックの現在の状態をクリアします。


peek

public java.lang.Object peek()
スタックの最上位オブジェクトを取り除かずに返します。 スタックにオブジェクトが無い場合は null を返します。


peek

public java.lang.Object peek(int n)
スタックの n 番目のオブジェクトを返し、0は最上位要素を、 [getCount()-1] は最下位要素を指します。 範囲外のインデックスを指定した場合は null を返します。

パラメータ:
n - 要素のインデックス、0はスタックの最上位を、 1はその下に続く要素を、と続きます。

pop

public java.lang.Object pop()
ポップはスタックから最上位オブジェクトを取り除き、それを返します。 スタックにオブジェクトが無い場合は null を返します。


push

public void push(java.lang.Object object)
オブジェクトスタックの一番上に新しくオブジェクトをプッシュ[訳注:押し込む]します。

パラメータ:
object - 新しいオブジェクト

getRules

protected java.util.List getRules(java.lang.String match)
指定した検出位置に対応する、一揃えのルールを返します。 それらのルールを選択する際、指定された検出位置と完全に一致するもの、 最後尾または後方が一致するものが認められます。 完全一致は後方一致より優先し、(後方一致の中では)より長く一致したものが優先されます。

パラメータ:
match - 指定する検出位置


このドキュメントは、Ja-Jakartaにより訳されました。コメントがある場合は、report@jajakarta.orgまでお願いします。
Copyright (C) 2000-2002 - Apache Software Foundation