この前の続きで、oXygen Authorでチェックマークの表示をカスタマイズしてみました.oXygenは、XMLエディタを買うとAuthorとXML DeveloperとTreeエディタとXML Diffがついてくるのですが、オーサリングはAuthorでやります.カスタマイズですが、XMetaLとはずいぶん感じがちがっていて次のように行うようです.
2.oXygen XML AuthorのOptions-Preferences-Document Type AssosiationからDITAをクリックし、Document TypeダイアログでAssociation Ruleに新しいDTDの公開識別子を登録します.
3.CSSを作って、[oXygenのインストールフォルダ]\frameworks\dita\css_classedに置きます.そしてそこのdita.cssに@import "[CSSファイル名]";を追加してやります.
@charset "utf-8";
*[class~="sym-d/check"][value="yes"]:before{
font-family:Lucida Sans Unicode;
font-size:1.5em;
color:#0000FF;
content: "✓";
}
*[class~="sym-d/check"][value="no"]:before{
font-family:Lucida Sans Unicode;
font-size:1.5em;
color:#0000FF;
content: "✗";
}
*[class~="sym-d/check"][value="dc"]:before{
font-family:Arial;
font-size:1.5em;
color:#0000FF;
content: "–";
}
*[class~="sym-d/check"][value="yes"]:before{
font-family:Lucida Sans Unicode;
font-size:1.5em;
color:#0000FF;
content: "✓";
}
*[class~="sym-d/check"][value="no"]:before{
font-family:Lucida Sans Unicode;
font-size:1.5em;
color:#0000FF;
content: "✗";
}
*[class~="sym-d/check"][value="dc"]:before{
font-family:Arial;
font-size:1.5em;
color:#0000FF;
content: "–";
}
前回載せませんでしたがサンプルXMLは次のようなものです.
<?xml version="1.0"?>
<!DOCTYPE topic PUBLIC "-//ANTENNA//DTD DITA Topic//EN" "antenna_topic.dtd">
<topic id="topic_04851ABA907B461D92A929B9B03D8347">
<title>Title</title>
<body>
<p>Check symbol test
</p>
<p>Check that means "yes":<check value="yes"/>
</p>
<p>Check that means "no": <check value="no"/>
</p>
<p>Check that means "don't care": <check value="dc"/>
</p>
</body>
</topic>
<!DOCTYPE topic PUBLIC "-//ANTENNA//DTD DITA Topic//EN" "antenna_topic.dtd">
<topic id="topic_04851ABA907B461D92A929B9B03D8347">
<title>Title</title>
<body>
<p>Check symbol test
</p>
<p>Check that means "yes":<check value="yes"/>
</p>
<p>Check that means "no": <check value="no"/>
</p>
<p>Check that means "don't care": <check value="dc"/>
</p>
</body>
</topic>
結果の画面は次のようになります.XML Authorでは空タグは横向きの△マークで囲まれます.
XMetaLとの違いを感じたのですが、XMetaLは特殊化したDTDを作る毎にそのDTD専用の世界を作ります.ですからCSSによる表示のカスタマイズもその世界の中で行われます.でもoXygenではDITAはひとくくりです.DITAの世界で他のDITAのDTD用のCSSと同居させて入れるような感じです.まあめったに起こるもんじゃないでしょうが、カスタマイゼーションが衝突したらどうなるのか?と思いますが杞憂でしょうか?XMetaLではそのようなことは起こり得ません.ここが値段の差なのかなぁ?と思いました.もし違っていたらご容赦ください.