倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

javax.xml.validation で RELAX NG を使う in Maven2 プロジェクト

RELAX NG を用いて妥当性検証を行うには、幾つかのライブラリを CLASSPATH に含める必要がありました。 必要なのは msv (multi schema validator) とその関連ライブラリ

  • msv
  • isorelax
  • relaxngDatatype
  • xsdlib

それに加えて、msv と javax.xml.validation パッケージをブリッジするライブラリ

  • isorelax-jaxp-bridge

でした。

今回は、Maven2 上でこれのライブラリを依存性に含める方法(POM ファイルの設定)を見ていきます。

ISO RELAX の実装を依存性に含める


msv 関連のライブラリは1つのグループ msv で作成されています。 最新のもののバージョンは 20050913 です。 これらを依存性に含めるには、<dependencies> 要素に以下のように依存性を付加します:

<dependencies>
  <dependency>
    <groupId>msv</groupId>
    <artifactId>msv</artifactId>
    <version>20050913</version>
  </dependency>

  <dependency>
    <groupId>msv</groupId>
    <artifactId>isorelax</artifactId>
    <version>20050913</version>
  </dependency>
        
  <dependency>
    <groupId>msv</groupId>
    <artifactId>relaxngDatatype</artifactId>
    <version>20050913</version>
  </dependency>
        
  <dependency>
    <groupId>msv</groupId>
    <artifactId>xsdlib</artifactId>
    <version>20050913</version>
  </dependency>
</dependencies>

javax.xml.validation パッケージに対するブリッジ・ライブラリを依存性に含める


次に、isorelax-jaxp-bridge ライブラリを依存性に含めます。 ただし、これは Maven2 のデフォルトのリモート・リポジトリには存在せず、http://download.java.net/maven/1 で公開されています。 したがって、新たに <repository> の設定が必要となります:

<project>
  <dependencies>
    <!-- isorelax への依存性 -->

    <dependency>
      <groupId>org.iso_relax.verifier.jaxp.validation</groupId>
      <artifactId>isorelax-jaxp-bridge</artifactId>
      <version>1.0</version>
    </dependency>
  </dependencies>
    
  <repositories>
    <repository>
       <id>java.net</id>
       <url>http://download.java.net/maven/1</url>
       <layout>legacy</layout>
     </repository>
  </repositories>
</project>

これで完了。