web-dev-qa-db-ja.com

DocBook 5文書をリラックスとスキーマトロンに検証しますか?

私はDocBook 5の文書を書いていて、RelaxNGスキーマとスキーマの両方に対して完全に検証したいと思います。

これが私が試したものです:

  • 私の知る限り、libxml2パッケージからのXMLLINTは、埋め込みスキーマトロンを使用してRelaxNGスキーマを処理し、スタンドアロンのスキーマスキーマを処理しません(docbook.sch)xmllintに従ってコンパイルされません。
  • MSVはすべてをうまく処理しているようですが、私はrelames jarを使用していません(私は2013.6.1を使用しています)、それが埋め込まれたスキーマトロンを実行しているかどうかはわかりません。
  • JNVDLも機能していましたが、実際には私が一度使用していたときに私の文書でIDを複数回使用していたことを私に言っていることを私に渡しました。

RelaxNGスキーマとスキーマスキーマの両方に対してDocBook 5の文書を完全に検証する方法は?

これは私がこれに遅刻に気付かなかったほど恥ずかしいことですが、私は何かを考え出しました。まだ埋め込まれたスキーマトロンを使用して単一のRelaxngスキーマを正しく処理する検証方法がまだ見つかりませんでしたが、DocBook 5の文書を正しく検証する方法が見つかりました。

DocBook 5.0がSchematronのISO規格を使用していないが、代わりにSchematron 1.5を使用することがわかりました。そのため、ISO Schematronリソースを使用してスキーマルールを抽出および検証する試みが失敗しました。説明されているXSLスクリプトとメソッドを使用して, http://www.topologi.com/resources/schtrn_xsd_paper.html#processing (必ず廃止ファイルRNG2SCHTRN.xslとxsdd2schtrn.xslを取得してください。 Schematron 1.5)で成功しました。

Gistは:

  1. XSLファイル(RNG2Schtrn.xsl)を使用して、LIXEDNGスキーマからのスキーマトロン1.5ルールを抽出します。

  2. Schematron 1.5検証XSLファイル(schematron-basic.xslが見つかった http://xml.ascc.net/schematron/1.5/basic1-5/schematron-basic.html )を使用して検証を作成するDocBookドキュメントのスキーマトロン規則からのXSLファイル。

  3. 手順2で作成した検証XSLを使用してDocBookドキュメントを処理し、出力内のエラーを探します。

  4. DocBook文書の残りの部分を検証するためにRelaxNGスキーマを処理できるツールを使用してください。