LEAF Writer:スキーマのカスタマイズ
概要
LEAF Writerのカスタマイズ方法に関する調査記録です。
今回はスキーマのカスタマイズ方法に関する備忘録です。以下のように、日本語訳などを表示することを目指します。
以下は、カスタマイズ前の表示です。以下のスキーマに基づき、多くの要素が英語の説明とともに表示されます。
https://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng
方法
以下のように、スキーマファイルを指定します。
具体的には、以下です。
<?xml-model href="https://kouigenjimonogatari.github.io/lw/tei_genji.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
LEAF Writerはこのスキーマファイルを読み込み、validationや使用可能な要素の提示を行うようでした。
これはLEAF Writerに特化した機能ではなく、Oxygen XML Editorのような一般的なXMLエディタにおいても同じように動作することが多いようです。
(参考)LEAF Writerのカスタマイズ
上述したように、LEAF Writerでは、ロードしたXMLファイルで指定されたスキーマを参照するため、エディタとスキーマは疎結合な構成になっています。
しかし、LEAF Writer側で事前に定義したスキーマ以外を参照する場合、以下のようなダイアログが表示され、「ADD SCHEMA」ボタンから、独自に定義したスキーマの情報をLEAF Writerに教える必要があります。
上記の登録処理を行えば問題ありませんが、LEAF Writer側に事前に定義を追加しておきたい場合には、LEAF Writerをカスタマイズする必要があります。
具体的には、以下のように修正を加えることで、LEAF Writer側に指定したスキーマおよびCSSを事前登録できました。
packages/cwrc-leafwriter/src/config/schemas.ts
ファイルに以下を追加しました。
...
{
id: 'teiGenji',
name: 'TEI Genji',
mapping: 'tei',
rng: ['https://kouigenjimonogatari.github.io/lw/tei_genji.rng'],
css: ['https://kouigenjimonogatari.github.io/lw/tei_genji.css'],
},
...
これにより、指定したスキーマがLEAF Writerに事前登録され、以後、同じスキーマを参照する際には、上記の追加設定は不要になりました。
まとめ
TEIおよびLEAF Writerなどのツールにおけるスキーマの取り扱いについて、参考になりましたら幸いです。
Discussion