Translation:How do I validate an IDML file
From IDMLWiki
どのようにしてIDMLファイルは検証するのですか?
解決方法:IDMLTools内に用意してある validation tool を使いなさい。
- IDMLTools ReadMe file に説明してあるように、IDMLToolsをセットアップしてください。
- 11ページの「どうやってスキーマを生成するのですか?」を参照して2つのスキーマを生成してください。
- <IDMLTOOLS>/bin 内のプラットフォームに適したスクリプトを実行しなさい。
IDMLToolsにはJingベースの検証ツールがあります。Jingは、RELAX NG のcompact形式をサポートしたJavaベースのオープンソース、スキーマ検証パッケージです。IDMLToolsスキーマ検証ツールはcom.adobe.idml.Validatorクラスの中で実装されています。それはJavaかもしくはコマンドラインから実行することができます。
非パッケージのIDMLファイルの検証は技術的にとても単純です。単体のXMLファイルを検証するのと同じ事です。Jingだけで実行するので単純なことです。Validatorクラスを使う事がほんとうのメリットとなるのはパッケージファイルを扱う時です。validationツールは自動的にテンポラリーディレクトリーへ解凍し、それぞれのファイルを検証します。RelaxNG上では記述できない追加された検証も含んでいます。例えば、すべてのパッケージファイルが存在しているかをチェックします。
プラットフォームごとのシェルスクリプト(Windows用にはvalidate.bat、Macintosh用にはvalidate.sh)の内部で、クラスファイルのパスと実行するValidatorクラスをセットします。これらのスクリプトは次の場所にあります。
<IDMLTOOLS>/bin
ヒント:検証を簡単に実行するには、あなたの環境変数のPATHに <IDMLTOOLS>/bin を加え、他のディレクトリーから実行すると良いでしょう。これはすべてのスクリプトが環境変数IDMLTOOLS_HOMEを使うように構成されているからです。
パッケージや非パッケージファイルを検証するには2つの引数と共に実行します。第一引数はスキーマのパスです。第二引数は検証対象のパスです。(idmlパッケージファイル、もしくは展開したフォルダのパス。スキーマが非パッケージタイプならxmlファイルなど)Javaのクラスは、それがパッケージを処理するのか非パッケージファイルを処理するのかを決め、実際に検証するためにJingを呼び出します。
Windows:
validate.bat c:¥idml-schema¥package-schema MyFile.idml validate.sh c:¥idml-schema¥non-package-schema MyStory.icml
Mac OS:
validate.sh /idml-schema/package-schema/ MyFile.idml validate.sh /idml-schema/non-package-schema/ MyStory.icml
使い方を確認するには、-h オプションを使ってスクリプトを実行してください。
$ validate.sh -h Usage: Validator SchemaPath PackagePath [PackagePath...]
