今回は、Maven2 の POM ファイルを基に、dom4j-1.6.1(以下、dom4j)が依存している他のライブラリを見ていきましょう(一覧)。
Maven2 にはライブラリの依存関係に対してスコープを定義できるんでした→。 以下では dom4j の POM ファイルに定義されてる依存性(dependency)を
- "compile" スコープ
- "optional" スコープ
に分けて見ていきます。 "test" スコープは不要なので省略します。
"compile" スコープ
dom4j に定義されている唯一の "compile" スコープ・ライブラリです。 XML ファイルの読み込み等に必要です。
groupId | artifactId | version | 備考 |
---|---|---|---|
xml-apis | xml-apis | 1.0.b2 | XML 関連の Java 標準 API |
この JAR ファイルには、以下のパッケージ
とそれらのサブパッケージが定義されています。 これらは、Java SE 1.4 から標準パッケージに定義されているので、それ以降の Java 実行環境を使用している場合は不必要かと思いますが*1。
"optional" スコープ
XPath 関連
XPath 関連の API を使う際に必要なライブラリです。 XPath 関連の API としては、Node#selectNodes(String) などがあります。 以前の記事参照。
groupId | artifactId | version | Web Site | 備考 |
---|---|---|---|---|
jaxen | jaxen | 1.1-beta-6 | → | Java による普遍的な XPath エンジン |
Streaming API 関連
Java SE 6 以降に標準 API に含まれた StAX (Streaming API for XML) 関連のライブラリです。 (たぶん)Java SE 6 以降の実行環境ではどちらも必要無いと思います。
org.dom4j.io 内のクラス、STAXEventReader, STAXEventWriter などを Java SE 6 以前の実行環境で使うのに必要です。 stax-api は StAX API を定義し、他の2つはその API の実装です。
groupId | artifactId | version | Web Site | 備考 |
---|---|---|---|---|
stax | stax-api | 1.0 | → | Streaming API for XML |
pull-parser | pull-parser | 2 | → | XML Pull Parser 2.0 の API と実装 |
xpp3 | xpp3 | 1.1.3.3 | → | XmlPull API の実装 |
ちなみに、他に依存性を指定しなければ xml-api の実装には(StAX だけでなく SAX などを使った読み込みの際にも) xpp3 が使われますが、xpp3 は XML のタグ名に日本語が使われていると例外が発生するようなのでご注意を。
JAXB 関連?
JAXB (Java Architecture for XML Binding) 関連のライブラリです。 たぶん org.dom4j.jaxb 内のクラスを使用する際に必要だと思いますが、拙者は使ったことがないので分かりません。 xsdlib, relaxngDatatype も同様です。
Java SE 6 からは、Java 標準 API に JAXB (javax.xml.bind とそのサブパッケージ) や妥当性検証 (javax.xml.validation) に関連する API が含まれているので、Java SE 6 以降の実行環境を使用している場合は、これらのライブラリは必要ないかと思います(これらのパッケージ内のクラスも使ったことがないのでなんとも・・・)。
groupId | artifactId | version | Web Site | 備考 |
---|---|---|---|---|
jaxme | jaxme-api | 0.3 | → | JAXB のオープンソース実装 |
msv | xsdlib | 20030807 | - | - |
msv | relaxngDatatype | 20030807 | - | - |
*1:バージョンの違いによるバグが発生するかもしれませんが、拙者が使っている分には、今のところそのようなことは起こってません。