580 likes | 854 Views
DocBook の概要. イースト株式会社 コミュニケーション事業部 渋谷 誠 mshibuya@est.co.jp. DocBook とは. SGML の DTD OASIS が維持管理 the DocBook Technical Committee コンピューター関連の書籍や 文献に適している http://www.oasis-open.org/docbook/. 歴史(1). HAL&O’Reilly 時代 1991年: HaL Computer Systems と O‘Reilly & Associates の共同プロジェクト として生まれる
E N D
DocBookの概要 イースト株式会社 コミュニケーション事業部 渋谷 誠 mshibuya@est.co.jp
DocBookとは • SGMLのDTD • OASISが維持管理 • the DocBook Technical Committee • コンピューター関連の書籍や文献に適している • http://www.oasis-open.org/docbook/
歴史(1) • HAL&O’Reilly時代 • 1991年: HaL Computer SystemsとO‘Reilly & Associatesの共同プロジェクトとして生まれる • V1.1発表後、Davenport Groupで活発に議論され始める • V1.2はNovell と Digitalの影響大
Davenport Group • O‘Reillyの作ったコンピュータードキュメント作成者のフォーラム • 初期メンバー • Jon Bosak, Novell • Dale Dougherty, O'Reilly & Associates • Ralph Ferris, Fujitsu OSSI • Dave Hollander, Hewlett-Packard • Eve Maler, Digital Equipment Corporation • Murray Maloney, SCO • Conleth O'Connell, HaL Computer Systems • Nancy Paisner, Hitachi Computer Products • Mike Rogers, SunSoft • Jean Tappan, Unisys
歴史(2) • Davenport時代 • 1994年: V1.2.2リリース。同時にDavenport Groupが公認機関に • 最大ユーザーであるNovelとSunの影響力高まる • 1997年: V3.0 リリース • メンバーが増えて開発速度は低下 • スポンサーがDavenport解散とOASISへの移管を決定
OASIS • Organization for the Advancement of Structured Information Standards • SGML/XML/HTML 普及促進を目的とした非営利団体 • http://www.oasis-open.org/
歴史(3) • OASIS時代 • 1998年7月 OASIS DocBook Technical Committee発足 • 1999年2月 V3.1リリース • XML版を計画中
仕様はWebで公開 • The Davenport archive • http://www.ora.com/davenport/ • ftp://ftp.ora.com/pub/davenport/
著作権 • DocBook DTDの著作権は以下の4社 • HaL Computer Systems, Inc. • O'Reilly & Associates, Inc. • Fujitsu Software Corporation • ArborText, Inc. • が、権利は放棄されている
リビジョン管理方針 • Majorリビジョンの変更 • 要素や属性の互換性のない変更が生じた時のみ • 年に2回以上は更新しない • 1回以下が望ましい • 過去のリビジョン履歴 • 1.0 - 1.1 - 1.2 - 1.2.1 • 2.0 - 2.2.1 - 2.3 - 2.4 - 2.4.1 • 3.0 - 3.1 • 今回の説明図は2.4.1のもの
XMLへの対応 • 委員会でもXML版の計画はある • 非公式のものならば既に存在する • http://www.nwalsh.com/docbook/xml/
Set Set ? ? 2+ ? SetInfo ToC Book SetIndex ? Title TitleAbbrev + set info char mix
Setの構成例 Set Title SetInfo Book Book Book SetIndex
Book Book ? ? ? * * BookInfo ToC LoT ・・・ ? Preface Title TitleAbbrev * * Glossary BookBiblio LegalNotice ModeSpec Bibliography
Book (続) Book * * * * ? ・・・ Appendix LoT ToC Glossary Index + + + Part Reference Article Bibliography SetIndex + * Chapter Reference
Bookの構成例 Book BookInfo ToC LoT (for figures) LoT (for tables) Preface Chapter Chapter Chapter Chapter Reference Appendix Appendix Glossary Bibliography Index Book BookInfo Preface Part PartIntro Chapter Chapter Part PartIntro Chapter Chapter Chapter Part PartIntro Appendix Appendix Book (Reference Manual) BookInfo ToC LoT Preface Reference Reference Reference Reference Appendix Appendix Appendix Appendix Index
Part Part + ? ? ? DocInfo Title TitleAbbrev PartIntro Chapter Appendix ToC LoT Index * Bibliography Glossary div component mix ? * * * RefEntry ? Preface Title TitleAbbrev Sect1 RefEntry SimpleSect Reference
Chapter Chapter ? ? ? * * DocInfo Title TitleAbbrev ToCchap div component mix Glossary Index * * * Bibliography Sect1 RefEntry SimpleSect
Sect<n> Sect<n> n = 1,2,3,4,5 ? ? * * Sect<n>Info Title TitleAbbrev div component mix Glossary Index * * * Bibliography Sect<n+1> RefEntry SimpleSect
SimpleSect SimpleSect ? * Title TitleAbbrev div component mix
Preface Preface ? ? * DocInfo Title TitleAbbrev div component mix * * * Sect1 RefEntry SimpleSect
Appendix Appendix ? ? ? * DocInfo Title TitleAbbrev ToCchap div component mix * * * Sect1 RefEntry SimpleSect
Reference Reference * ? ? ? DocInfo Title TitleAbbrev PartIntro RefEntry
RefEntry RefEntry * ? ? ? + DocInfo RefMeta RefNameDiv RefSynopsisDiv RefSect1 Comment Link char class ? * RefEntryTitle ManVolNum RefMiscInfo
BookBiblio BookBiblio ? ? ? ? ? ? ? Subtitle Edition AuthorGroup InvPartNumber ProductNumber ProductName ・・・ ? Title TitleAbbrev ? ? ? ? ISSN VolumeNum IssueNum PageNum ISBN VolumeNum
BookBiblio(続) BookBiblio ? ? * * ? ? * * ・・・ PubsNumber ReleaseInfo PubDate Publisher Copyright SeriesInfo Abstract ConfGroup ・・・ + * Year Holder
BookBiblio(続) BookBiblio * ? ? ・・・ PrintHistory RevHistory * ContractNum Revision ContractSponsor * ? Date RevNumber AuthorInitials RevRemark
本文内容モデル • 本文内容として定義されている要素 • 種類別にクラス分けされている • そのクラスも大きく2つのに分類 • Objectレベルクラス • Characterレベルクラス
list.class CalloutList GlossList ItemizedList OrderedList SegmentedList SimpleList VariableList admon.class Caution Important Note Tip Warning Objectレベルクラス(1)
linespecific.class LiteralLayout ProgramListing ProgramListingCO Screen ScreenCO ScreenShot synop.class Synopsis CmdSynopsis FuncSynopsis para.class FormalPara Para SimPara Objectレベルクラス(2)
informal.class Address BlockQuote Graphic GraphicCO MediaObject MediaObjectCO InformalEquation InformalExample InformalFigure InformalTable formal.class Equation Example Figure Table compound.class MsgSet Procedure Sidebar QandASet Objectレベルクラス(3)
compound.class MsgSet Procedure Sidebar QandASet genobj.class Anchor BridgeHead Comment Highlights descobj.class Abstract AuthorBlurb Epigraph Objectレベルクラス(4)
ndxterm.class IndexTerm xref.char.class FootnoteRef XRef link.char.class Link OLink ULink gen.char.class Abbrev Acronym Citation CiteRefEntry CiteTitle Emphasis FirstTerm ForeignPhrase GlossTerm Footnote Phrase Quote Trademark WordAsWord Characterレベルクラス(1)
base.char.class Anchor other.char.class Comment Subscript Superscript inlineobj.char.class InlineGraphic InlineMediaObject InlineEquation docinfo.char.class Author AuthorInitials CorpAuthor ModeSpec OtherCredit ProductName ProductNumber RevHistory Characterレベルクラス(2)
tech.char.class Action Application ClassName Command ComputerOutput Database Email EnVar ErrorCode ErrorName ErrorType Filename Function GUIButton GUIIcon GUILabel GUIMenu GUIMenuItem GUISubmenu Hardware Interface InterfaceDefinition KeyCap KeyCode KeyCombo KeySym Literal Constant Markup MediaLabel MenuChoice MouseButton Characterレベルクラス(3) MsgText Option Optional Parameter Prompt Property Replaceable ReturnValue SGMLTag StructField StructName Symbol SystemItem Token Type UserInput VarName
関数仕様定義 <funcsynopsis> <funcsynopsisinfo>#include <stdlib.h></funcsynopsisinfo> <funcdef>double <function>atof</function></funcdef> <paramdef>const char *<parameter>nptr</parameter></paramdef> </funcsynopsis> #include <stdlib.h> double atof(const char *nptr);
ソースコード <example> <title>A simple C program</title> <programlisting role="C"> #include <stdio.h> main() { printf("Hello, world!\n"); } </programlisting> </example> #include <stdio.h> main() { printf("Hello, world!\n"); }
カスタマイズ可能な設計 • カスタマイズする事を前提としている • Customizer‘s Guideが用意されている • モジュールごとに再利用が可能 • うまくモジュール分割されている • サブセットの定義や追加定義が可能 • 外部ファイルのみでカスタマイズ可能
基本構成図 docbook.dtd (driver file, notation, ISO entities) dbgenent.dtd dbhier.mod (document hierarchies) dbpool.mod (information pool) docbook.cat docbook.dcl calstbl.mod (CALS tables) SGML declaration DocBook DTD Catalog data
docbook.dtd docbook.dcl dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • SGML宣言ファイル <!SGML “ISO 8879:1986” . . . >
docbook.dtd docbook.dtd dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • SGMLドライバファイル=DocBookDTD の本体 • dbhier.mod, dbhier.mod, dbpool.modをインクルード • rdbXXX.mod を条件付きインクルード
docbook.dtd docbook.dtd dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • ISO標準の19種の文字エンティティ宣言をインクルード (V3.1ではdbcent.modに分離) "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "ISO 8879:1986//ENTITIES Publishing//EN" "ISO 8879:1986//ENTITIES General Technical//EN" "ISO 8879:1986//ENTITIES Added Latin 1//EN" "ISO 8879:1986//ENTITIES Added Latin 2//EN" "ISO 8879:1986//ENTITIES Greek Letters//EN” ・ ・ ・ ・ • 文字エンティティ宣言 <!ENTITY aacute SDATA "[aacute]"--=small a, acute accent--> • 文字エンティティ参照 %aacute;
docbook.dtd docbook.dtd dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • 各種記法宣言をインクルード (V3.1ではdbnotn.modに分離) • 各種外部参照フォーマットの宣言 BMP, CGM-CHAR , CGM-BINARY , CGM-CLEAR , DITROFF , DVI EPS , EQN , FAX , GIF , GIF87a , GIF89a , JPG , JPEG , IGES , PCX PIC , PS , SGML , TBL , TEX , TIFF , WMF , WPG • 記法宣言例 <!NOTATION BMP PUBLIC "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
docbook.dtd dbhier.mod dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • ドキュメントの階層構造の定義 • rdbhier.mod, rdbhier2.mod を条件付きでインクルード
docbook.dtd dbpool.mod dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • 階層構造以外の定義本文内容のクラス等 • calstbl.modをインクルード(V3.1 では cals-tbl.dtd)
docbook.dtd calstbl.mod dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • CALS仕様の表の定義(V3.1では cals-tbl.dtd)
docbook.dtd dbgenent.mod dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • 一般エンティティ宣言 • コメントのみの空ファイル • 追加定義をここに記述できる
docbook.dtd docbook.cat dbgenent.dtd dbhier.mod dbpool.mod docbook.dcl docbook.cat calstbl.mod • SGMLカタログデータファイル • 共通の外部参照ファイルの位置などを環境に合わせて定義するファイル • C言語で言えばインクルードファイルの検索パスの指定のようなもの