Log4jのXML形式のConfigファイルをRelaxerを用いて入出力できれば便利だなぁと思って色々試行錯誤したときのメモ。
幸いlog4j.dtdがあるのでここからRELAXNGスキーマを作ればよいと思ったんだけど、log4j.dtdがDTDのくせに名前空間を考慮して作成されているみたいで、dtdInstやDTD2RELAXがエラーになっちゃう。最終的にはTrangを使用するのがよいという結論に落ち着きました。
Trangよりダウンロード。で、
java -jar ./trang.jar log4j.dtd log4j.rng <- 全く元のlog4j.dtdです
relaxer -java -java.package:nu.mine.kino.log4j.binding
-java.xml.namespace log4j.rng <- 上で作成したlog4j.rngです。
でOKでした。いままでなにやってたんだろー。。。。
ようするに
やり方は
java -jar dtdinst.jar log4j.dtd > log4.tmp.xml
<start> <ref name="hogehoge"/> </start>が出力されないので、適当に修正。。
relaxer -java.package:nu.mine.kino.binding.log4j
-dir:../source/nu/mine/kino/binding/log4j log4j.rng こうやると何故かクラス名にElement..ってprefixがついちゃう。けすにはrngのなかのrefを置換かぁ??
この記事は
現在のアクセス:8327