Relax NGのホームページには、明らかに XSD ファイルを Relaxing ファイルに変換できる Sun RELAX NG Converter がリストされていますが、リンクは無効で、セカンダリ ソースに関するブログ エントリも古くなっているようです。
Web ベースのコンバーターには興味がありません。
ところで、変換したい XML スキーマは継承を使用しています。
Relax NGのホームページには、明らかに XSD ファイルを Relaxing ファイルに変換できる Sun RELAX NG Converter がリストされていますが、リンクは無効で、セカンダリ ソースに関するブログ エントリも古くなっているようです。
Web ベースのコンバーターには興味がありません。
ところで、変換したい XML スキーマは継承を使用しています。
Kohsuke Kawaguchi の Relax NG コンバーター (別名 Sun Relax NG コンバーター) は現在、http://java.net/projects/msvおよびhttp://search.maven.org/#search%7Cga%7C1%7Cg%3A%で入手できます。 22net.java.dev.msv%22 (情報を提供してくれた KK に感謝)。
古い Sun RELAX NG コンバーターは現在、(Sun) 'Multi-Schema Validator' - msv にバンドルされています。その用語を使用して、ディストリビューション パッケージ リポジトリを検索できます。
たとえば、Fedora (eg 17) にはそれが含まれています。
# yum install msv-rngconv msv-manual
$ rngconv my.xsd > my.rng
結果をテストします。
$ xmllint --relaxng my.rng --noout some.xml
コンパクトな構文への変換:
$ trang -I rng -O rnc my.rng my.rnc
(trang はメインの Fedora パッケージ リポジトリからも入手できます)
他の方法 (おそらく、コンパクトな構文ファイルに何かを追加した後):
$ trang -I rnc -O rng my.rnc my.rng
Msv は非常に強力なようです。継承、拡張パターンを使用し、別の xsd ファイルを含むかなりサイズの xsd ファイルでテストしました。
トランを試しましたか?(継承がどうなっているのかはわかりません)
XSD から RELAXNG への変換に関する一般的な説明については、xsd から rnc (または rng) への変換 (unix コマンド ライン)も参照してください。Sun RELAX NG コンバーターは rngconv という名前で、まだ特定の場所に隠れているようです: http://rpm.pbone.net/index.php3?stat=3&search=msv-rngconv&srodzaj=3