TEI ODDの「チェーン」機能を使ってスキーマをカスタマイズする方法を学ぶチュートリアルです。
ODD Chainとは#
ODD chainには2つの方式があります:
1. 継承型(縦のチェーン)#
source属性で親ODDを参照し、カスタマイズを継承します。
2. 組み合わせ型(横のチェーン)#
specGrpとspecGrpRefを使って、複数のODDを統合します。
フォルダ構成#
前提条件#
- Saxon(XSLT 2.0プロセッサ)
- TEI Stylesheets(
../scripts/Stylesheetsにインストール済み)
ビルド方法#
生成されるファイル#
| ソースODD | RNG | HTML |
|---|
| 01-inheritance/base.odd | output/base.rng | output/base.html |
| 01-inheritance/derived.odd | output/derived.rng | output/derived.html |
| 02-chain/main.odd(統合後) | output/combined.rng | output/combined.html |
各ファイルの説明#
01-inheritance(継承型)#
base.odd#
ベースとなるODD。最小限のモジュールと基本的なカスタマイズを含む。
derived.odd#
TEI標準を継承し、追加のカスタマイズを行う派生ODD。
02-chain(組み合わせ型)#
ヘッダー関連のカスタマイズをspecGrpで定義。
text-specs.odd#
本文関連のカスタマイズをspecGrpで定義。
main.odd#
複数のODDをspecGrpRefで参照して統合。
処理の流れ#
継承型#
組み合わせ型#
0
使用しているXSLT#
| XSLT | 場所 | 役割 |
|---|
| odd2odd.xsl | Stylesheets/odds/ | ODDのコンパイル(モジュール展開、継承解決) |
| odd2relax.xsl | Stylesheets/odds/ | RelaxNGスキーマ生成 |
| odd2html.xsl | Stylesheets/odds/ | HTMLドキュメント生成 |
| merge-specs.xsl | 02-chain/ | specGrpRef展開(自作) |