XML Top | XSL Formatter | AH Formatter V5 | Web Interface | Report Designer | XML エディタ | トップページ |
DITA | システム製品総合案内 | PDF総合案内 | OEM総合情報 | リセラーページ | XML資料室 | English Site |
アーキテクチャ仕様(第2章 DITA導入) |
目次へ戻る |
DITAは、シングル・ソースで様々な方法に再使用可能な、トピック志向、情報型の内容を作成するアークテクチャである。また、既存の型や領域に基づいて、新しいトピック型を作成したり、新しい情報領域を記述するアーキテクチャでもある。
新しいトピック型や領域を作成する処理を専門化という。専門化により、オブジェクト指向のシステムが、祖先のクラスのメソッドを継承するのと大変良く似た方法で、より一般的な型と領域のために開発された共通の出力変換、設計規則を共有しながら、特殊な、対象を絞った文書型を作ることができる。
DITAのトピックはXML準拠である。それなので、標準のXMLツールで、容易に表示したり、編集したり、妥当性の検証を行うことができる。しかし、内容の参照や専門化のようなある種の機能は、カスタム化された支持によって便宜を得るかもしれない。
次の用語は、DITAでは特別な意味を持っていて、DITAのマークアップ仕様またはDITAの専門化仕様のどちらを読むにしても、その前に理解しておく必要がある。
次はDITAで使われる基本概念である。
DITAは、多数の用語を特別な、ユニークな方法で使用している。この仕様書がカバーする範囲内では、次の用語がDITAモジュール、DITA宣言、DITAインスタンスについて使用されている。
要素と一緒に特定の属性をリスト化する際には、属性名には@を先行して、要素と区別するかもしれない。例:@props, @class
特定の要素をリストの外部で使うとき、それらは<と>で周囲のテキストと区別する。例:<keyword>, <prolog>
DITAは、特定のDTD、スキーマあるいは実際のXML文書を参照することなく、抽象的なモデルのレベルで理解できる。DITAの概念をこのレベルで議論するとき、次の用語を使用する。
モデルがDTDまたはスキーマで表されるとき、様々な要素型が宣言される。この宣言に言及するとき、次の用語を使用する。
DITAの文書型に基づいて、実際の文書、トピック、要素が作成されるとき次の用語が用いられる。
DITAは次の命名規約とファイル拡張子をで使用する。
OASIS DITAの文書型はDTDのモジュールの組として実装されている。これらのモジュールの一部はすべてのDITA文書型で使われるが、他のものはトピックまたはマップでのみ使われ、一部は特定の専門化の中でのみ使われる。
DTD実装の重要な特徴は、実際のDTDよりも、モジュールによる重きを置いていることである。全ての要素と属性型宣言はモジュールの中でなされており、それが次に文書型シェルを使用して文書型に統合される。実装者は、自由にモジュールを再組織化したり、新しいモジュールを導入したり、モジュールを取り除くDTDを作成することができる。例えば、OASISの標準のトピックDTDには全ての標準トピック領域を含んでいる;加えるに、デフォルトのトピックDTDはトピックをネストさせることができるが概念を含むことはできない。新しいDTDは、このひとつまたは両方の特徴を変更し、かつ、依然として妥当であることができる;そのDTDでは領域を追加したり、削除したりできる。また、それはトピックを追加したり概念をネストさせることもできる。あるいは、ditabaseの文書型の中のように、同じレベルの異なる型を編集することもできる。新しいDTDを作成したり、既存のDTDを変更したりするとき、様々なDITAのツールが新しいDTDをOASISのデフォルト版と混同しないように、新しいまたは変更したDTDに新しい公開IDを与えることを忘れてはならない。
各専門化は、その専門化のための要素を定義するためにひとつ以上のモジュールを要求する。専門化を利用する任意のDTDは、その専門化のためのモジュールを含まなければならない。
ある専門化特有のモジュールに加えて、あらゆるDITAのDTDによって使用される幾つかのファイルがある。それらはDTDの中で参照されなくても済むように、基本のトピックまたはマップ・モジュールに含まれている。—それらは、トピックまたはマップの型を単純にインクルードすると含まれる。
次の表は、OASIS DITA標準と共に来る各々のDTDモジュールを説明している。
表1 トピックとその専門化モジュールの記述
共通モジュール・ファイル | 目的 | DTDの中で使われる |
---|---|---|
topic.mod | 基本トピック型の中で使うことができる全要素を定義する。 | すべてのトピック・ベースのDITA DTDに含まれなければならない。 |
concept.mod | 概念の専門化の中で使うことができる全要素を定義する。 | concept.dtd, ditabase.dtd |
glossary.mod | 用語集の専門化の中で使うことができる全要素を定義する。 | glossary.dtd, ditabase.dtd |
reference.mod | 参照の専門化の中で使うことができる全要素を定義する。 | reference.dtd, ditabase.dtd |
task.mod | タスクの専門化の中で使うことができる全要素を定義する。 | task.dtd, ditabase.dtd |
表2 マップとその専門化モジュールの記述
共通モジュール・ファイル | 目的 | DTDの中で使われる |
---|---|---|
map.mod | 基本マップ型の中で使うことができる全要素を定義する。 | すべてのマップ・ベースのDITA DTDに含まれなければならない。 |
bookmap.mod | ブックマップ専門化の中で使うことができる全要素を定義する。 | bookmap.dtd |
表3 領域モジュールの記述
共通モジュール・ファイル | 目的 | DTDの中で使われる |
---|---|---|
indexingDomain.ent, indexingDomain.mod | 索引付け領域によって使用される実体と要素を定義する。 | bookmap.dtd, concept,dtd, ditabase.dtd, glossary.dtd, map.dtd, reference.dtd, task.dtd, topic.dtd |
highlightDomain.ent, highlightDomain.mod | ハイライト領域によって使用される実体と要素を定義する。 | concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd, task.dtd, topic.dtd |
programmingDomain.ent, programmingDomain.mod (原文誤り?) | プログラミング領域によって使われる実体と要素を定義する。 | concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd, task.dtd, topic.dtd |
softwareDomain.ent, softwareDomain.mod | ソフトウェア領域によって使われる実体と要素を定義する。 | concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd, task.dtd, topic.dtd |
uiDomain.ent, uiDomain.mod | ユーザインターフェイス領域によって使われる実体と要素を定義する。 | concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd, task.dtd, topic.dtd |
utilitiesDomain.ent, utilitiesDomain.mod | ユーティリティ領域によって使われる実体と要素を定義する。 | concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd, task.dtd, topic.dtd |
mapGroup.ent, mapGroup.mod | マップ・グループ領域によって使われる実体と要素を定義する。 | map.dtd, bookmap.dtd |
xnalDomain.ent, xnalDomain.mod | XNAL領域によって使われる実体と要素を定義する。 | bookmap.dtd |
表4 上述のファイルによって使われる他の共通モジュールの記述
共通モジュール・ファイル | 目的 | DTDの中で使われる |
---|---|---|
commonElements.ent, commonElements.mod | マップとトピックの両方に現れることのできる全ての内容要素を定義する。 | topic.mod, map.mod(これは、任意のDITA DTDの一部となる) |
metaDecl.mod | マップとトピックの両方に現れることのできる全てのメタ要素を定義する。 | topic.mod, map.mod(これは、任意のDITA DTDの一部となる) |
tblDecl.mod | DITAの中で使われる、OASIS 交換表モデルに基づく、複雑な表を定義する。 | commonElements.mod(これは、任意のDITA DTDの一部となる) |
topicDefn.ent | トピック・モジュールの中で使われる実体を定義する。 | topic.mod(これは、任意のトピックに基づくDITA DTDの一部となる) |
OASIS DITA文書型はスキーマ・モジュールの組によって実装される。これらのモジュールのあるものはすべてのDITAスキーマ文書で使われる;他のものはトピックによって、マップによってのみ使われる、そしてあるものは特定の専門化の中でのみ使われる。
DITAの実装の重要な特徴は、それが、実際のヘッド・スキーマよりもモジュールにより重きを置いていることである。全ての要素と属性型宣言はモジュールの中でなされている。それらは次にヘッド・スキーマを使って文書型に統合される。実装者は、自由に、適切なように、モジュールを再組織化、新しいモジュールを導入、モジュールを再定義、モジュールを取り除く、新しいヘッド・スキーマを作ることができる。例えば、OASISからの標準トピックXMLスキーマは、すべての標準トピック領域を含む;付け加えてデフォルトのトピックXMLスキーマはトピックがネストするのを許すのに対して、概念を含むことはできない。新しいXMLスキーマは、これらの特徴のひとつまたは両方を変更して、なお、妥当であり得る;ditabase文書型におけるように、XMLスキーマは、領域を追加したり取り除いたりできる、そしてトピックが概念をネストすることを許す、または異なる型を同じレベルで編集することができる。
各専門化は、その専門化のための要素を定義するひとつ以上のモジュールを要求する。ある専門化を利用する任意のXMLスキーマはその専門化のためのモジュールを含まなければならない。
ある専門化のために特有なモジュールに加えて、すべてのDITA XMLスキーマで使われるいくつかのファイルがある。これらは、基本トピックまたはマップ・モジュールに含まれているので、XMLスキーマから参照される必要がない—単にトピックまたはマップをインクルードすることにより既に含まれる。
次の表は、OASIS DITA標準と共に来る各XMLスキーマについて述べている。
表5 トピックとその専門化モジュールの記述
共通モジュール・ファイル | 目的 | XMLスキーマの中で使われる |
---|---|---|
topicMod.xsd, topicGrp.xsd | 基本トピック型の中で使うことのできる全要素を定義する。 | すべてのトピック・ベースのDITA XMLスキーマに含まれなければならない。 |
conceptMod.xsd, conceptGrp.xsd | 概念の専門化の中で使うことができる全要素を定義する。 | concept.xsd, ditabase.xsd |
glossaryMod.xsd, glossaryGrp.xsd | 用語集の専門化の中で使うことができる全要素を定義する。 | glossary.xsd, ditabase.xsd |
referenceMod.xsd, referenceGrp.xsd | 参照の専門化の中で使うことができる全要素を定義する。 | reference.xsd, ditabase.xsd |
taskMod.xsd, taskGrp.xsd | タスクの専門化の中で使うことができる全要素を定義する。 | task.xsd, ditabase.xsd |
表6 マップとその専門化モジュールの記述
共通モジュール・ファイル | 目的 | XML スキーマで使われる |
---|---|---|
mapMod.xsd | 基本マップ型の中で使うことができる全要素を定義する。 | すべてのマップ・ベースのDITA XMLスキーマに含まれなければならない。 |
bookmapMod.xsd | ブックマップ専門化の中で使うことができる全要素を定義する。 | bookmap.xsd |
表7 領域モジュールの記述
共通モジュール・ファイル | 目的 | XML スキーマで使われる |
---|---|---|
indexingDomainMod.xsd | 索引付け領域によって使用される実体と要素を定義する。 | bookmap.xsd, concept.xsd, ditabase.xsd, glossary.xsd, map.xsd, reference.xsd, task.xsd, topic.xsd |
highlightDomainMod.xsd | ハイライト領域によって使用される実体と要素を定義する。 | concept.xsd, ditabase.xsd, glossary.xsd, reference.xsd, task.xsd, topic.xsd |
programmingDomainMod.xsd | プログラミング領域によって使われる実体と要素を定義する。 | concept.xsd, ditabase.xsd, glossary.xsd, reference.xsd, task.xsd, topic.xsd |
softwareDomainMod.xsd | ソフトウェア領域によって使われる実体と要素を定義する。 | concept.xsd, ditabase.xsd, glossary.xsd, reference.xsd, task.xsd, topic.xsd |
uiDomainMod.xsd | ユーザインターフェイス領域によって使われる実体と要素を定義する。 | concept.xsd, ditabase.xsd, glossary.xsd, reference.xsd, task.xsd, topic.xsd |
utilitiesDomainMod.xsd | ユーティリティ領域によって使われる実体と要素を定義する。 | concept.xsd, ditabase.xsd, glossary.xsd, reference.xsd, task.xsd, topic.xsd |
mapGroupMod.xsd | マップ・グループ領域によって使われる実体と要素を定義する。 | map.xsd, bookmap.xsd |
xnalDomainMod.xsd | XNAL領域によって使われる実体と要素を定義する。 | bookmap.xsd |
表8 上述のファイルによって使われる他の共通モジュールの記述
共通モジュール・ファイル | 目的 | モジュールの中で使われる |
---|---|---|
commonElementsMod.xsd, commonElementsGrp.xsd | マップとトピックの両方に現れることのできる全ての内容要素を定義する。 | topic.mod, map.mod(これは任意のDITA XMLスキーマの一部になる) |
metaDeclMod.xsd, metaDeclGrp.xsd | マップとトピックの両方に現れることのできる全てのメタ要素を定義する。 | topic.mod, map.mod(これは任意のDITA XMLスキーマの一部になる) |
tblDeclMod.xsd, tblDeclGrp.xsd | DITAの中で使われる、OASIS 交換表モデルに基づく、複雑な表を定義する。 | commonElements.mod(これは任意のDITA XMLスキーマの一部になる) |
ditaarch.xsd | DITAのアーキテクチャのバージョンを定義する。 | トピック・ベースの任意のDITA XMLスキーマにインポートされなければならない。 |
xml.xsd | XML名前空間と共に使われる属性を定義する。 | トピック・ベースの任意のDITA XMLスキーマにインポートされなければならない。 |