SGML/XMLの入門から応用まで [1] − SGML/XML開発の経緯とその関連規格概要 − 松下電送 小町 祐史 1. はじめに SGML(標準一般化マーク付け言語)[1][2]は, そのインスタンスとしてのHTML(ハイパテキストマーク付け言語)[3][4]がWeb上の主要な文書記述に用いられてから, 急速な普及を示し, 既に大量の文書がWeb環境に蓄積されている。それと共に各種の関連処理系の実装が進み, 特にHTMLに関しては有料・無料の多くのソフトがリリースされている。 1996年末にはSGMLサブセットにほぼ位置付けられるXML(拡張可能マーク付け言語)[5]の原案がW3C(WWWコンソシアム)から発表され, HTMLと同様の扱いでより複雑な文書構造にも対応できるというその意欲的な仕様が話題を集め, 規格としての完成を待たずに処理系の実装が進んでいる。W3Cはさらに, XMLのリンク[6]やフォーマット指定[7]についても検討を行っている。 SGMLを開発した国際標準化機構の技術委員会ISO/IEC JTC1/WG4(以前のJTC1 SC18/WG8)[8]は, これまでに多数のSGML関連規格等を作成すると共に, 最近ではSGML文書のフォーマット指定を交換の対象とするため, DSSSL(文書スタイル意味指定言語)[9]を完成し, ユーザ要求に応えてきた。またXMLをSGMLの完全なサブセットに位置付けることを目的としたSGMLの技術訂正[10]を検討している。 本連載は, このように多くのトピックを含むSGML/XMLとその関連技術を, 系統的かつ平易に解説し, 今後の動向に言及する。そのため, 次に示す12課題を予定し, 1号につき2課題ずつ1年間の連載を計画している。しかしXML等のホットな話題については, 状況の変化に応じてその内容を変更する可能性がある。ほとんどの課題の執筆は, 日本規格協会のINSTAC(情報技術標準化研究センター)に設けられたマルチメディア/ハイパメディア調査研究委員会のWG4/XML-SWGの委員であるSGML/XMLエキスパートにお願いしてある。 [1] SGML/XML開発の経緯とその関連規格概要 (1月号) [2] SGMLの規定概要 (1月号) [3] SGML処理系と関連プロダクツ (3月号) [4] HTMLとWeb技術 (3月号) [5] XMLの概要 (5月号) [6] SGML関連規格 - DSSSL - (5月号) [7] SGML関連規格 - SGML Support Facility - (7月号) [8] SGML関連規格 - HyTime - (7月号) [9] SGML/XMLによる文書記述 (9月号) [10] 各種のDTDとDTD設計 (9月号) [11] SGMLフルテキストデータベース (11月号) [12] SGMLの改訂審議 (11月号) ここでは, まず第1回目として, どのようにしてSGMLという文書交換のための記述言語の規格が開発され, それを使って処理する環境を整えるためにどのような関連規格が用意されているのか, さらにそれらの相互関係はどうなっているのかを明らかにする。 2. ISOの文書モデル 2.1 文書の生成過程  生成過程は,電子化された情報処理がそこに介在するか否かにかかわらず,概ね次の段階に区分される。各段階で得られる文書は,次の段階に受渡す必要があり,これまでも当事者間での合意に基づく受け渡しが行われていた。 (1) 内容情報(contents)の生成  著者が文書によって表現したい主要情報の作成。原稿用紙への文字の書込み,イラスト書き,図示対象の写真撮影など。 (2) 構造指定  文書内容を理解しやすくするための,情報の論理的構造化 (論理的要素の抽出と構造的配置) 。本文から脚注,備考などを分離し,段落に区切って見出しをつけることなど。  注:(1) と(2) は主として著者が担当し,この順序に実行する作業過程である。しかし場合によっては作業順序が逆になり,構造を規定する枠が与えられて,そこに著者が内容を書込むこともある。 (3) フォーマット指定  文書構造を把握しやすくすると共に,内容情報の可読性を向上させるために,論理的要素に物理的な配置・体裁を指定する。見出しを左上に置いてゴシック書体で印字し,それに続けて本文を 2段組みで明朝書体によって印字するなどの指定。  これは通常,編集者が印刷業者に対して指示する作業である。 (4) フォーマット指定の実行(フォーマティング)  フォーマット指定に従って文書を構成する論理的要素を配置すること。以前は活字を組む職人の作業であったが,今ではフォーマタ(例えばTEX)と呼ばれる処理系が実行することが多い。 (5) 校正  フォーマット指定に従って配置された文書構成要素の集まりをある程度レビューできるように可視化したゲラ刷りなどを,(1),(2),(3) の作業担当者( 著者,編集者) にフィードバックして,それぞれのレビューを受ける。 (6) 印刷(清刷り)  最終的なフォーマティング結果を紙面などに可視化すること。印刷業者によって実行されることが多い。  これらの(1)-(6)の作業は通常,それぞれの作業場所で異なる作業者によって実行される。つまり空間的,時間的に分散した環境で文書は生成される。各作業の効率化のために導入された電子化処理に伴い,それぞれの段階の電子化情報が伝送の対象となり,その受渡しを行う範囲を広げるために標準的な文書情報交換フォーマットの検討がISO等で行われてきた。 2.2 文書生成交換モデル  ISO/IEC JTC1による文書情報の交換のための規格の多くは,次のコンセプトに基づいて開発されている。 (1) 文書の意味内容だけに基づく論理的構造化文書(論理文書)情報と,それを読み易くするためのフォーマット情報とを分離する。 (2) 論理文書情報,フォーマット指定情報,及びフォーマット済み文書情報のいずれも交換の対象とする。 (3) 文字符号化に対して非依存とし,多言語環境をサポートする。多言語混在文書にも対応可能とする。 (4) 音声,動画等のコンテントの符号化に対して非依存とする。 このコンセプトを具体化するため, JTC1/WG4は文書の生成過程における各処理と,処理間に受渡される情報とを, 図1のようにモデル化している[11]。ここで, 矩形が処理を示し,円筒形が情報を示す。矢印は次のステップへの情報の受け渡しを示す。ファクシミリは,可視化されたゲラ刷りまたは清刷りの伝送には有効であるが,可視化されていない,その他の文書情報を交換することはできない。それらの交換のために,ISOは各情報の表現形式を規格によって規定している。 図 1 文書生成交換モデル W3Cが開発している文書情報の交換のための規定も, 同様なモデルに基づいており, 図中の円筒形に付した文字列によって,その文書情報に関してISOまたはW3Cが開発した(又はしている)情報表現形式の名称を示す。 3. SGML関連規格の概要 3.1 論理文書の記述  論理文書の記述と交換のために,SGMLと各種支援規格とが開発されている。 3.1.1 SGML ISO 8879: Standard Generalized Markup Language (標準一般化マーク付け言語) 対応JIS: JIS X 4151  ある文書クラスに関する論理要素を共通に識別するようなタグの集合を定義し,属性記述をも可能にした,システム依存性のない記述的なマーク付けが共通マーク付け(Generic Markup)である。SGML(標準一般化マーク付け言語)は,どんなタイプの文書,どのようなアプリケーションに関しても,共通マーク付けを定義するための方法を規定する。さらに利便性を高め得る各種の補助的機能を用意している。SGML文書は,SGML宣言,文書型定義(DTD)及びマーク済み文書の3部分が,この順序に配置されて構成される。 3.1.2 SGML支援規格 (1) SDIF ISO 9069: SGML Document Interchange Format (SGML文書交換様式) 対応JIS: JIS X 4171  ISO 8879に適合する文書は幾つもの実体に記憶できるが,SDIFは,その文書を一つの交換用データ列にパックし,受け手がそれを個々の実体に再構成できるようにした交換用データ構造を規定する。 (2) 公開識別子 ISO/IEC 9070: Registration Procedures for Public Text Owner Identifiers 対応JIS: JIS X 4172 (公開テキスト所有者識別子)  この規格は,SGMLに適合する公開テキストの所有者に対する,一意の所有者プレフィクスの割当てに適用して,その割当てを行う手続きを規定し,所有者プレフィクスから登録済み所有者名を構成する方法を規定する。標準化機関等による所有者プレフィクの自己割当ての手続きをも規定する。 (3) 編集システム ISO/IEC TR 10037: Guidelines for SGML Syntax-Directed Editing Systems (SGML構文主導形編集システムの指針)  SGML構文主導形編集システムに対して具備することが望まれる機能の集合を規定する。 3.1.3 DTD (文書型定義) (1) 規格文書用DTD ISO/IEC TR 9573-11: Application at ISO Central Secretariat for International Standards and Technical Reports 対応JIS: TR X 0004 (日本工業規格,国際規格及び技術報告の文書情報交換のための規格事務局応用) プロジェクトエディタ,プロジェクトリーダ及び事務局が各種規格の開発に際して原案を作成し,それらの規格文書を出版するために規格事務局に送付するときに用いるDTDを規定する。  TR X 0004は,JIS規格文書文書固有部分を追加規定している。 (2) HTML ISO/IEC 15445: Standard HyperText Markup Language (標準ハイパテキストマーク付け言語)  WWW(World Wide Web)によって交換するハイパテキストを記述するDTDである。W3Cが開発したHTML3.2をISO/IECとして追認するため,この新作業課題がJTC1/SC18から提案され,1997年7月を期限としてCD投票が行われている。 3.1.4 適合性試験 ISO/IEC 13673: Conformance Testing for SGML Systems (SGMLシステムの適合性試験)  この規格は,システムがどのような場合に適合SGMLシステムであるかを規定する。システムが適合SGMLシステムであるかを判定することは,複雑な処理である。この目的のために,適合性を検証する試験スイートを開発するための努力が払われてきた。試験スイートの開発及び利用を標準化することは,結果の一貫性を保証し,試験の意味を公にする。  そこでここでは,試験スイートの開発及び利用を標準化するための指針と規則を規定し,次の項目から成る。 (1) 個々の試験の内容に関する指針 (2) 試験項目及びそこで用いる構成子に関する厳密な命名規則 (3) フォーマット及び注釈規則 (4) 試験項目の分類規則 (5) 試験スイートの文書化規則 (6) SGMLパーサによる試験の解釈方法を示すSGML試験用参照アプリケーション (RAST)の定義 (7) SGMLパーサによる容量計算を報告する容量試験用参照アプリケーション(RACT) の定義 (8) 試験スイートでのシステム性能の報告の規則 一つのSGML文書中の複数の実体を,オープンな通信環境での交換用の単一のオブジェクトに結び付けるために,この規格は関連規格のISO 9069(JIS X 4171): SGML文書交換様式(SDIF)を必要とするので,SDIFへの適合性にも言及する。 この規格は,SGML試験スイートを開発する者,そのスイートが評価するSGMLシステムを構築する者,及び試験スイート上でのSGMLシステム性能をSGMLツール選択の過程で検査する者が利用する。 3.1.5 公開実体  文字符号が規定されていない図形文字,叉は文字符号が定義されていてもキーボード入力が困難な図形文字について,公開実体名を規定し,グリフ識別子との対応を示す。 (1) 数学及び科学用公開実体集合 ISO/IEC TR 9573-13: Public Entity Sets for Mathematics and Science (2) 非ラテン系アルファベット用公開実体集合 ISO/IEC TR 9573-15: Public Entity Sets for Non-Latin Based Alpabets  PDTR投票が終了した段階である。 3.2 フォーマット指定とフォーマット済み文書 3.2.1 DSSSL ISO/IEC 10179: Document Style Semantics and Specification Language (文書スタイル意味指定言語) 対応JIS: JIS X 4153  DSSSL(文書スタイル意味指定言語)は,システム依存性なしに,SGML文書の構造変換とフォーマットを指定する記述言語である。DSSSLの実行環境は,SGML文書インスタンスを他のSGML文書インスタンスに変換するSGML木構造変換プロセス(STTP)と,フォーマット処理の特性をSGML文書に適用するSGML木フォーマット処理プロセス(STFP)とから成る。STFPについては,プロセスを制御する指定言語のセマンティクスと形式だけを規定する。 3.2.2 SPDL ISO/IEC 10180: Standard Page Description Language (標準ページ記述言語) 対応JIS: JIS X 4154  SPDL(標準ページ記述言語)は,フォーマット済み文書を装置に依存せずに印刷し表示するための記述言語であり,フォーマット済み文書の交換,印刷・表示装置での処理,後の印刷・表示に備えての記憶等に用いる。SPDL文書は,表示プロセスによって,印刷・表示装置の機能制約に応じた変形を施され,可視化される。 3.3 マルチメディア/ハイパメディア文書記述 3.3.1 HyTime ISO/IEC 10744: Hypermedia/Timebased Structuring Language (ハイパメディア及び時間依存情報の構造化言語) 対応JIS: JIS X 4155  HyTime(ハイパメディア及び時間依存情報の構造化言語)は,ハイパリンクという文書内および文書間の相互結合,並びに他の情報オブジェクトとの相互結合を指定し,時間的および空間的マルチメディア情報の配置を指定するための,標準化した機構を提供する。HyTimeでは,文書を“人間が知覚することを意図した一つの単位として特定できる情報の集合”と定義し,音楽での時間表現などの抽象的時間表現と,ユーザが定義する実時間単位での時間表現とを扱い,抽象時間と実時間とを関連付ける方法を提供する。 3.3.2 SMDL ISO/IEC 10743: Standard Music Description Language (標準音楽記述言語)  SMDLは HyTime の応用であり,音楽情報の交換を目的とする記述言語である。HyTimeに対して,音楽構成子を表す特定の体系形式を追加している。DIS投票によって承認され,そこで提出されたコメントを反映した最終テキストを編集中である。 4. 最近の動向 ISOによって開発されたこれらのSGML関連規格の主要なものは, 既に翻訳されて日本国内ではJISとして, 他の国においてもそこの国内規格として制定されている。これらの規格を用いた応用システムで必要となる交換仕様についても要求があり, 例えば国内では, 電子化文書の校正指示を交換するための規定SPML[12]が検討され, W3Cでは, HTML/XMLに基づく同期マルチメディア統合言語SMIL[13]が発表されている。 文献 [1] ISO 8879, Standard Generalised Markup Language (SGML), 1986-10 [2] ISO 8879 /Amendment 1, Standard Generalised Markup Language (SGML) AMENDMENT 1, 1988-07 [3] HTML 4.0 Specification, http://www.w3.org/TR/WD-html40/cover.html, 1997-09-17 [4] ISO/IEC CD 15445, Standard HyperText Markup Language (HTML), 1997-04 [5] Extensible Markup Language (XML), http://www.w3.org/TR/WD-xml-970807.html, 1997-08-07 [6] Extensible Markup Language (XML): Part 2. Linking, http://www.w3.org/TR/WD-xml-link.html, 1997-07-31 [7] A Proposal for XSL (Extensible Style Language), http://www.w3.org/TR/NOTE-XSL-970910.html, 1997-08-27 [8] http://www.ornl.gov/sgml/wg8/home.htm [9] ISO/IEC 10179, Document Style Semantics and Specification Language (DSSSL), 1996-04 [10] ISO/IEC JTC1/SC18 N5763, PTC for WebSGML adaptations for SGML, 1997-06 [11] ISO/IEC TR 11585: Operational Model for Document Description and Processing Languages, 1992-09 [12] Standard Proofreading Markup Language, http://www.panasonic.co.jp/mgcs/tech/std/glocom/spmlrep.doc, 1997-03 [13] Synchronized Multimedia Integration Language, http://www.w3.org/Press/SMIL, 1997-11