dtdInstを使ったり、色々やってみたんですが、結論として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です。
やり方は
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を置換かぁ??
ファイルを出力するときに名前空間が出力されないなあと思っていたら、Relaxerコマンド時に指定が必要みたいです。たとえば
relaxer -java.package:nu.mine.kino.log4j.binding -dir:. -java.xml.namespace log4j.rng
な感じ。
この記事は
現在のアクセス:7920