デジタル文書の構造化が進む中で、データの保持と見た目の制御を分離する考え方が重要視されてきました。DSSSL(Document Style Semantics and Specification Language)は、SGML文書にスタイルを適用するために開発された国際標準のスタイルシート言語です。機械的なデータ形式であるSGMLを、人間にとって読みやすく、視覚的に整った形式へ変換する役割を担っていました。
Key Facts
- 国際標準: ISO/IEC 10179:1996として規定されている。
- ベース言語: プログラミング言語「Scheme」のサブセットに基づいている。
- 主な機能: ツリー構造の変換と、ターゲット表現へのフォーマット処理の2段階で動作する。
- 互換性: あらゆるSGMLベースの文書形式に対応し、特にDocBookで多用された。
- 後継の流れ: XMLの普及に伴い、より広範な採用が進んだXSLへと移行した。
DSSSLの仕組みと動作原理
DSSSLは、単に色やフォントを変えるだけでなく、文書の構造そのものを操作できる強力な変換言語としての側面を持っています。そのプロセスは大きく分けて2つの段階で構成されています。
1. ツリー変換プロセス
まず、ソースドキュメントのツリー構造を操作し、プレゼンテーションに適した形に再構成します。これにより、元のデータ構造を維持したまま、出力に必要な形式へと論理的に変換することが可能です。
2. フォーマットプロセス
次に、変換された要素を「フローオブジェクトツリー」と呼ばれるターゲット表現の特定のノードに関連付けます。この仕様はデバイスに依存しないため、異なるプラットフォーム間での情報交換が可能です。
なお、最終的な出力を生成するバックエンドのフォーマッタ(レンダリングエンジン)については標準化されていません。そのため、出力先は画面表示から、PostScriptやRich Text Format (RTF) といった特定のファイル形式まで、フォーマッタの実装に委ねられています。
技術的背景とエコシステム
DSSSLは、ISO/IEC JTC 1/SC 34(文書記述および処理言語に関する小委員会)によって策定されました。SGMLで記述された情報はコンピュータにとって扱いやすい反面、人間が直接読むには不向きです。そこでDSSSLのようなスタイルシートを用いることで、HTMLやLaTeX、RTFなど、多様な形式への変換を実現し、アクセシビリティと視認性を向上させていました。
特に、構造化文書の代表格であるDocBookとの組み合わせで広く利用されました。また、1997年にはソフトウェアエンジニアのGeir Ove Grønmo氏によって、エディタ「KEDIT」向けの構文ハイライト定義が公開されるなど、開発環境の整備も行われていました。
| 項目 | 内容 |
|---|---|
| 標準規格 | ISO/IEC 10179:1996 |
| 基盤言語 | Scheme (Lisp系言語) |
| 主な対象 | SGMLドキュメント |
| 出力可能形式 | RTF, HTML, LaTeX など |
| 主な利用例 | DocBookのスタイル定義 |
XMLの台頭とXSLへの移行
1999年頃から、SGMLの代替としてXMLが急速に普及し始めました。これに伴い、XML専用のスタイルシート言語であるXSL(Extensible Stylesheet Language)が導入されました。XSLはDSSSLよりも多くの開発者に受け入れられ、普及速度も極めて速いものでした。
かつてDSSSLの主要な利用先であったDocBookなどのプロジェクトが、SGMLからXMLへ、そしてスタイルシートをDSSSLからXSLへと移行したことで、DSSSLの利用シーンは次第に縮小していきました。
また、DSSSLの複雑さがWeb環境には不向きであると考えられていたため、1994年以前にはJames Clark氏によって、W3C(World Wide Web Consortium)への提案を目的とした簡略版「DSSSL Lite」の草案が作成された経緯もあります。
Frequently Asked Questions
DSSSLとは具体的にどのような言語ですか?
SGML文書にスタイルを適用し、視覚的なレイアウトや異なるファイル形式への変換を行うための国際標準スタイルシート言語です。Schemeというプログラミング言語をベースにしています。
DSSSLとXSLの主な違いは何ですか?
DSSSLは主にSGML向けに設計され、Schemeベースの強力な変換能力を持っていましたが、複雑であるという側面がありました。一方、XSLはXML向けに設計され、より広範な普及と採用が進んだ後継的な立ち位置の言語です。
どのような形式に変換することができたのでしょうか?
RTF(リッチテキストフォーマット)、HTML、LaTeXなど、幅広いフォーマットへの変換が可能でした。
なぜ現在ではあまり使われていないのですか?
文書記述の主流がSGMLからXMLへと移行し、それに伴いスタイルシート言語もXSLへと移行したためです。また、Webでの利用には仕様が複雑すぎたことも要因の一つです。
DSSSLはどのような文書でよく使われていましたか?
あらゆるSGMLベースの文書に適用可能でしたが、特に構造化された技術文書を作成するための「DocBook」で頻繁に利用されていました。
References
- Ossenbruggen, Jacco van; Lynda Hardman; Lloyd Rutledge; Anton Eliens (1997). "Style Sheet Languages for Hypertext" (PDF). ACM SIGWEB Newsletter. 6 (3). Amsterdam, the Netherlands: Centrum Wiskunde & Informatica (CWI): 16–20. :10.1145/288190.288193. 6550735. Archived (PDF) from the original on 2014-05-25.
- ISO (5 March 2008). "JTC 1/SC 34 - Document description and processing languages". ISO. Retrieved 2009-12-25.
- ISO JTC1/SC34. "JTC 1/SC 34 - Document Description and Processing Languages". Archived from the original on 2014-05-06. Retrieved 2009-12-25.
{{}}: CS1 maint: numeric names: authors list () - Grønmo, Geir Ove (March 1997). "DSSSL.KLD - KEDIT Language Definition for DSSSL Specifications". XML Coverpages. . Retrieved 2015-02-27.
- . "DSSSL Lite Specification preliminary draft" (PDF). Archived from the original (PDF) on 2016-04-28. Retrieved 2016-03-08.