XMetaL 10.0とスキーマトロン

XMetaL10が発売になっています.

10.0の特徴はいろいろありますが、その中にスキーマトロンのサポートがあります.

Schematron support – Perform additional validation by applying ISO Schematron rules to a document open in XMetaL.

せっかくなので試用版を落として試してみました.ご存知のようにXMetaLはインストールすると前のバージョンはアンインストールしてしまうので業務で使用している場合は注意が必要です.

XMetaLでのスキーマトロンの検証方法は、例えばtopicを開いてTools - Validate using Schematronを選択します.そうするとスキーマトロンのファイルの選択画面になります.ここでファイルを選択してOKを押せばよいのですが、XMetaLにはJUSTSYSTEMSが提供するスキーマトロンのファイルはついていないようです.

イメージ 1

仕方がないのでoXygenについてくるスキーマトロンのファイルをアサインしてみました.oXygenについてくるスキーマトロンはDITA-OTの開発者のJarnoさんによるもので、次のフォルダにあります.

C:\Program Files\Oxygen XML Editor 16\frameworks\dita\resources\dita-1.2-for-xslt2-mandatory.sch, dita-1.2-for-xslt2-other.schなど

ところがこのファイルをアサインしてみましたが一発で変なエラーになってしまいました.

イメージ 2


どうもおかしいと思って調べてみたら、oXygenについてくるスキーマトロンはXSLT 2.0の機能を使用するものと宣言されています.しかしXMetaLはXSLT 1.0を使用するスキーマトロンしか受けて受けてくれないようです.

これにはいささかがっかりしましたが、oXygenについてくるスキーマトロンを見てみると、どうもXSLT 1.0(というかXPath 1.0)でも行けそうな感じです.そこで冒頭のqueryBinding属性をxslt2⇒xsltに変更してみました.

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright 2011 Jarno Elovirta
    
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
    queryBinding="xslt" >
    <title>Schematron schema for DITA 1.2</title>
    <p>Version 3.0.0 released 2010-10-17.</p>

で試してみたのが次の画面です.shortdescがなくてbodyにpが一個だけ含まれているとき、それはshortdescに入れた方がいいよ!というメッセージがちゃんと出ました.

イメージ 3

なんとか動いてくれました!

oXygenと比較してですが、XMetaLはこのスキーマトロンの検証が、ビジュアル編集モードかタグモードのときにしか使えません.あとご覧のようにダイアログが出るだけで、エラーの該当箇所はわかりません.oXygenは次のようにテキストモードの編集画面でも自動的にスキーマトロンで検証されて、該当箇所もわかります.この点はoXygenの方が一歩先を進んでいますね.

イメージ 4