Top / Relaxer / TIPS集

名前空間を有効にする

ファイルを出力するときに名前空間が出力されないなあと思っていたら、Relaxerコマンド時に指定が必要みたいです。たとえば

relaxer -java.package:nu.mine.kino.log4j.binding -dir:.
        -java.xml.namespace log4j.rng

な感じ。

XMLファイルへの参照を取得する。

Relax NGのスキーマファイル(*.rng)からあらかじめjavaファイルを作成しておきます。 ルートノードがhogeだとすると

Hoge hoge=new Hoge([ファイルパス]);

としてインスタンスを作成すれば、xmlファイルへの参照の作成は完了です。

文字列を取得する。

DOMを用いていると、XMLの内容をコンソールに書き出すだけでも面倒ですが、Relaxerでは一つのメソッドでStringインスタンスを取得することができます。

System.out.println(hoge.makeTextDocument());

XMLの内容をファイルに書き出す

BufferedWriter writer =
 new BufferedWriter(
  new OutputStreamWriter(
   new FileOutputStream(new File([パス])),"EUC-JP"));
writer.write(URelaxer.doc2String4Print(hoge.makeDocument(), "EUC-JP"));
writer.close();

既存のデータベース用のRelaxNGスキーマを生成する(書き途中!)

rjdbcファイルを作成し(内容は下記参照)

<rjdbc>
 <uri>jdbc:postgresql://[hostname]:5432/[DBName](JDBCに渡すヤツね)</uri>
 <table>test</table>
 <username></username>
 <password/>
 <driver>org.postgresql.Driver(<-JDBCに渡すヤツね)</driver>
 <classpath>[たとえば]c:\hoge\jdbc7.2dev-1.2.jar</classpath>
</rjdbc>

んで

relaxer -rng test.rjdbc

とやるとtest.rngが生成されました。JDBC経由でRDBMSのスキーマを参照し、それようのRelaxNGファイルを生成しているもよう。。*1と思ってたんだけど、このrngファイルをもとに

relaxer -java -jdbc test.rng

とやっても、元のデータベースのddlはできないみたい。どうも使い道が違うのかなぁ。。

でもここをみるとそんなようなことを書いてあるしなあ。

参考にしたサイト

http://www.asahi-net.or.jp/~dp8t-asm/java/tools/Relaxer/man_ja.html http://www.atmarkit.co.jp/fxml/rensai2/xmltool04/02.html


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Relaxer / TIPS集

現在のアクセス:4923


*1 インピーダンスミスマッチする場合はどうなるのかぁ?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-11-25 (木) 19:04:39 (5467d)