2009-06-17 7 views
1

私は、Javaに新しいですし、私が言うJavaプロジェクトで声明に出くわした:javaでは、Commons-Digesterは入力XMLファイルをどのように処理しますか?

Digester digester = DigesterLoader.createDigester(getClass() 
       .getClassLoader().getResource("rules.xml")); 

rules.xmlファイルには様々なパターンが含まれており、すべてのパターンがクラス名、methodNameのといくつかの他のプロパティなどの異なる属性を持っています。

私は消化器について尋ねましたが、上のステートメントで私を助けてくれる有用なものは見つかりませんでした。上記の文を実行する際にどのようなステップが続くのか誰にでも教えていただけますか?実際、このXMLの利点は何ですか?

+0

少し遅れて返信:Apacheのダイジェスターは完全なパーサーではなく、時には非常に遅くなることがあります。拡張vtd-xmlと呼ばれる新しいオプションがあり、xmlドキュメントを最大256 GBまで処理でき、完全なXpathとmemマップをサポートしています –

答えて

2

swapnil、私のStrutsの日にDigesterのユーザーとして私は正直言ってそれは学ぶ/デバッグするのは難しいと言うことができます。基本的にはSAXパーサのような特定の要素のイベントハンドラを設定しています(実際はSAXを背後で使用しています)。したがって、関心のあるノードのルールエンジンと、インスタンス化するルールのルールエンジンをフィードし、XMLファイル内のデータでPOJOのプロパティを設定します。

素晴らしいアイデアです。一度使い慣れたら、良いですが、入力xmlファイル用のxsdをお持ちの方は、JAXBを使用することをお勧めします。

Digesterについてうれしいことの1つは、関心のある要素だけを使っていることです。そのため、メモリのフットプリントは素晴らしくて低くなります。

1

これはhereと呼ばれる方法です。 xmlファイルはコンパイルする必要がないため、Xmlは設定でJavaで一般的に使用されます。 javaファイルで同じ設定をすると、ファイルをコンパイルする必要があります。

1

クラスローダーを使用してルールファイルをロードする方法を理解していると思いますか?基本的には、クラス自体と同じパッケージを探して、ファイルの絶対位置を示すURLを作成しています。

Digesterに関しては、私は使っていませんが、これをすばやく読んで(http://commons.apache.org/digester/)すべてを説明する必要があります。

0

彼らは私の最後のギグでそれを使用しました。私が覚えていることは、それは非常に遅いということです。

関連する問題