1

私の Java アプリケーションでは、異なるバージョンの DocBook 形式の XML ドキュメントを検証する必要があります。DocBook 4 は DTD に基づいており、DocBook 5 は RelaxNG/Schematron に基づいています。さまざまなスキーマ言語に対して検証できる適切な方法は何ですか? Oracle Multi-Schema XML Validator (MSV)、JARV、および oNVDL を見つけました。後者は非推奨のようです。現時点では、SAXParser/XMLReader を使用しています。ただし、RelaxNG はサポートされていません。ジンとの組み合わせも考えましたが、それを行うためのすっきりとした構造を探しています。

前もって感謝します。

4

1 に答える 1

2

私は、Schematron ルールが埋め込まれた RELAX NG コンパクト スキーマを使用していますが、少なくともいくつかの一般的な RELAX NG バリデーター (Jing、RNV) は、この Schematron コードを無視しています。現在のワークフローは次のとおりです。

  1. Trang を使用してコンパクト スキーマを XML 構文に変換する
  2. Saxon と XSLT スタイルシート「RNG2Schtrn.xsl」で Schematron ルールを抽出します。
  3. Jing を使用して、抽出された「.sch」Schematron スキーマに対して検証します
  4. Jing を使用して元の RELAX NG コンパクト スキーマに対して検証する

どうやら Trang は XML 1.0 DTD を RELAX NG に変換できるので、3 種類の検証すべてに Jing を使用できるはずです。

変換スクリプトについては、https://github.com/citation-style-language/utilities/blob/master/style-qc.sh と https://raw.github.com/citation-style-language/schema/ を参照てください。 master/csl.rncでスキーマを確認できます (上部にある Schematron ルール)。

于 2013-06-19T11:21:44.583 に答える