DITA image

 

たまに「DITAの各要素に書くclass属性ってどう使うんですか?入力が面倒なだけでは?」というお問い合わせをいただきます。ご安心ください。決して面倒なものではありません。そしてDITAの特殊化という機能を実現するためにとても重要なものなんです。

class属性の入力は面倒なものどころか、逆に執筆者は絶対に入力や編集をしてはいけないものです。各要素のclass属性に何を書くべきかはDTDに定義されています。DITAトピックを処理するときに自動的にDTDの中での定義値が設定されます。

処理系はほとんどの場合class属性の内容に従って何をするべきかを判断します。極端な話、要素名なんて見ちゃいません。

たとえば<ol>要素の場合

番号付き箇条書きを書くための<ol>要素を見てみましょう。このときclass属性は

<ol class="- topic/ol ">

と書かなければいけません。いや、正確に言うと、DTDにそのように定義されているから執筆者は気にする必要はない。勝手にこのようになってくれる、ということになります。

それでこれは「topic型情報タイプで定義されたol要素である」という意味になります。

たとえば<steps>要素の場合

操作手順を書くための<steps>要素は次のようになります。

<steps class="- topic/ol task/steps ">

これは「task型情報タイプで定義されたsteps要素であり、topic型情報タイプで定義されたol要素から継承されたものである」という意味になります。

たとえば<step>要素の場合

上記の<steps>要素の子要素である<step>要素は次のようになります。

<step class="- topic/li task/step ">

これは「task型情報タイプで定義されたstep要素であり、topic型情報タイプで定義されたli要素から継承されたものである」という意味になります。