倭マン's BLOG

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

javax.xml.validation で RELAX NG を使うための POM プロジェクト

前回Maven2 プロジェクト内で RELAX NG による妥当性検証を行うために必要なライブラリの設定の仕方をみました。

ただし、それらを毎回 POM ファイルに書くのは面倒なので、それらの依存性を別の POM プロジェクトに書いて、それを再利用できる用にしましょう。

依存性を設定した POM プロジェクトを作成する


依存性を設定した POM ファイルは以下のようになります:

<?xml version="1.0" encoding="UTF-8"?>

<project 
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>waman.maven2</groupId>
  <artifactId>relaxng-dependency</artifactId>
  <packaging>pom</packaging>
  <version>1.0</version>
  <name>Required Dependencies for RELAX NG Validation</name>
    
  <dependencies>
    <dependency>
      <groupId>msv</groupId>
      <artifactId>isorelax</artifactId>
      <version>20050913</version>
    </dependency>
        
    <dependency>
      <groupId>msv</groupId>
      <artifactId>msv</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>
        
    <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>

幾つか注意を:

  • <packaging> 要素の子テキストを pom にする
  • <groupId>, <artifactId> 要素は適当に。 後で参照します。

この POM ファイルができたら、

mvn install

コマンドを用いて、この POM プロジェクトをローカル・リポジトリへインストールしてください。

妥当性検証を行うプロジェクト


実際に妥当性検証を行うプロジェクトの POM ファイルでは、以下のように <dependency> 要素を付加します:

<dependencies>
  ...

  <dependency>
      <groupId>waman.maven2</groupId>
      <artifactId>relaxng-dependency</artifactId>
      <version>1.0</version>
      <type>pom</type>
  </dependency>
</dependencies>
  • <type> 要素をお忘れなく。
  • <groupId>, <artifactId> の子要素は、上記で作成した POM プロジェクトの <groupId>, <artifactId> です。