3

非常に基本的な質問 - 私は xml ファイルを持っており、schematron ファイルに対して検証したいと考えています。Saxon コマンドラインを使用して行うにはどうすればよいですか?

コマンドラインリファレンスによると、schematron ファイルを指定するオプションはありません。

4

2 に答える 2

6

これを行う必要があり、十分な情報が得られなかったため、前の回答を拡張します (そして、私のスクリプトは既に 12 の XSL 変換を実行しているため、さらに 4 つあるでしょうか?)

この Web サイトに基づいて、XML ファイルは、一連の XSL 変換を通じてスキーマトロンに対して検証できます。saxon と組み合わせる方法についての情報も必要だったので、Windows ボックスでカタログ ファイルを使用した saxon の変更を次に示します。

以下は、コンピューターで saxon コマンド ラインを使用して XSLT を実行する方法です (ここで、FilePath はシステムに依存します)。

java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -s:inputFile.xml  -o:outputFile.xml  -xsl:C:\FilePath\transform.xsl -catalog:"C:\FilePath\catalog.xml" 

ここで指摘しておくべき重要なことは、Saxon でカタログ ファイルを使用している場合は、resolver.jar ファイルに戻す必要があるということです。

だから

XSLT = java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -catalog:"C:\FilePath\catalog.xml"

次に、Webサイトからの情報が理にかなっています(oXygenで必要なxslファイルを見つけた):

 XSLT -input=xxx.sch  -output=xxx1.sch  -stylesheet=iso_dsdl_include.xsl
 XSLT -input=xxx1.sch  -output=xxx2.sch  -stylesheet=iso_abstract_expand.xsl
 XSLT -input=xxx2.sch  -output=xxx.xsl  -stylesheet=iso_svrl.xsl
 XSLT -input=document.xml  -output=xxx-document.svrl  -stylesheet=xxx.xsl

schematron ファイルを取得し、3 つの変換を実行して xsl ファイルを取得し、それを元の xml ドキュメントで実行します。これにより、実際にスクリプトを作成するのが比較的簡単になります。

最後のコマンドは、実際に出力ファイルを作成したことはありません。STOUT がなくても問題なく動作し、メッセージを STOUT にダンプするので、そのままにして、そこから結果を収集します。

おそらく必要以上に詳しく説明して申し訳ありませんが、最初からこれだけあればよかったのにと思います。

于 2014-05-05T21:52:10.957 に答える
2

いろいろ調べた結果、どうやら無理みたいです。最初に xsl ドキュメントを生成し、それを使用して検証を実行する必要があります。

于 2012-03-31T13:39:49.637 に答える