DITA 1.3とRELAX NG(5)

DITA 1.3はOASISでの検討も進んでいて、その経過を次のURLからダウンロードして見ることができます.

 OASIS Darwin Information Typing Architecture (DITA) TC Public Documents

後者のZIPにはDITA 1.3の仕様案がコメント付きで入っていて現在の検討の進捗状況を見ることができます.もともとDITAの仕様は非常に膨大なのでとても全部見るのは気が遠くなる話ではありますが...

ところで、この仕様案のdita-1.3-specification-learningTraining.pdfには次のような記述があります.

2.1 About the DITA specification
The DITA specification consists of a written specification and XML grammar files.
The DITA specification consists of the following components:
XML grammar files
The DITA markup for DITA vocabulary modules and DITA document types is available in several XML
languages: RELAX NG, XML Document-Type Definitions (DTDs), and W3C XML Schema.
While the files should define the same DITA elements, the RELAX NG grammars are normative if there is a
discrepancy. If there is a discrepancy between the written specification (this document) and the RELAX NG
grammars, the written specification takes precedence.

ここには、①DITAの文書モデルはRELAX NGDTDXML Schemaで手に入れることができ、②同じようにDITAの要素を規定すべきであるが、不一致があればRELAX NGが標準として扱われ、③RELAX NGと仕様の間に不一致があれば仕様が優先される(拙訳)とあります.

やはりOASISはDITAのスキーマに関しては大きく舵を切ったようです.これからはスキーマの中心がやはりRELAX NGになってゆくことがちゃんと草案に盛り込まれていました.

ということはDITAの文書モデルを習得する場合はRELAX NGを勉強しなければならないし、特殊化を行うといった場合もRELAX NGが今後は主役になってゆくのでしょう.

ちなみにDITAのXMLエディタについてですが、私の勝手な予測は次のようなものです.

① oXygenはすでにRELAX NGのDITAのスキーマを搭載しているので、引き続きRELAX NGDTDXML Schemaをサポートして行くでしょう.
② XMetaLがこの流れについてゆけるかどうかは微妙なところではないかと思います.

XMetaLは現在でもDITAはDTDのサポートのみです.XMetaL自身はXMLのバリデーションとしてXML Schemaが使えるようになっているのですが、DITAで使うと、DITA特有のXML編集機能は使えないようです.こんな状態ですからRELAX NGは相当頑張らないと対応できないのではないかと思います.何故かというとXMetaLはマイクロソフトアーキテクチャを使用しており、肝心のマイクロソフトRELAX NGをサポートする気が全然ないからです.もしXMetaLがRELAX NGをサポートするとなるとマイクロソフトに期待するのではなく自力でやらねばならないのではないでしょうか?これは結構大変ですよね.

DITA-OTはJavaの世界ですが、どうも.NETのプラットフォームで(ネイティブに)DITAを取り扱うという話はあまり聞こえてこないようです.

という訳でDITAに携わる技術者は、RELAX NGを身につけるのが今後は当たり前の世界になってゆくのではないかと思います.