# アダプタ

浅海 智晴
2001年11月16日

アダプタは外部リソースをSmartDocドキュメント内に取り込むための機能です。 各要素の`adapter`属性を使用して指定します。

# アダプタ一覧

SmartDocでサポートしているアダプタの一覧を に示します。

名前,機能,関連属性
none | なにもしない | -
text | テキストの読み込み | src, encoding
sdoc | SmartDocドキュメントの読み込み | src
csv | CSVテキストの読み込み | src, encoding
jdbc | JDBCによるリレーショナルデータベースの読み込み | src, jdbcSql, jdbcUsername, jdbcPassword, jdbcDriver, jdbcClasspath
autoimage | イメージファイルの選択 | src
bean | JavaBeansの実行結果の読み込み | src, beanProperties, beanTargetProperty, beanSmartDoc
xslt | XSLTプロセッサの出力結果の読み込み | src, xsltURI, xsltParams, xsltProperties, xsltSmartDoc

# デフォルトアダプタ

カテゴリ,要素,機能,アダプタ

- 文書要素

doc | SmartDoc文書のルート要素 | sdoc
head | SmartDoc文書の文書情報 | sdoc
body | SmartDoc文書の本体 | sdoc

- ヘッダ要素

title | 文書のタイトル | none
subtitle | 文書のサブタイトル | none
author | 著者 | none
org | 組織 | none
date | 日時 | none
hp | ホームページアドレス | none
email | Eメールアドレス | none
abstract |  | none
header | ページヘッダ情報 | none
footer | ページフッタ情報 | none
prologue | ページプロローグ情報 | none
native | ターゲットフォーマットのネーティブ記述 | none

- 文書構造要素

part | 部 | sdoc
chapter | 章 | sdoc
section | 節 | sdoc
subsection | 小節 | sdoc
subsubsection | 少少節 | sdoc
appendix | 付録 | sdoc

- 補助構造要素

fyi | コメント的な参考情報 | sdoc
note | 注釈 | sdoc

- リスト

ul | 番号なしリスト | sdoc
ol | 番号つきリスト | sdoc
li | ulまたはolのリスト項目 | sdoc
dl | 定義リスト | sdoc
dt | dlの定義項目 | sdoc
dd | dlの定義内容 | sdoc

- ブロック

div | 矩形領域 | sdoc
p | パラグラフ | sdoc
pre | 整形済みテキスト | text

- テーブル

table | 表のルート要素 | csv
thead | ヘッダ情報 | csv
tfoot | フッタ情報 | csv
tbody | データ情報 | csv
tr | レコード | none
th | ヘッダセル | none
td | データセル | none
colgroup | カラムグループの宣言 | none
col | カラム情報の定義 | none
tnote | 表の注釈 | sdoc

- イメージ

figure | 図版の取り込み | autoimage
img | イメージの取り込み | autoimage

- ハイパーテキストリンク

a | ハイパーテキストリンク | sdoc
cite | 引用リンク | sdoc

- 引用

blockquote | 長い引用 | sdoc
q | 短い引用 | sdoc

- 数式

equation | 数式の記述 | sdoc

- テキスト

span | テキストの範囲指定 | sdoc
em | 強調 | sdoc
strong | 強い強調 | sdoc
dfn | 用語の定義 | sdoc
code | プログラムコード | sdoc
b | ボールド体 | sdoc
i | イタリック体 | sdoc
tt | タイプライタ体 | sdoc

- プログラム

program | プログラムの記述 | text
console | コンソール画面の記述 | text

- 特殊要素

native | ターゲットフォーマットのネーティブ記述 | text

- 属性要素

title | タイトル属性 | none
attribute | 属性値の指定 | none

- 参考文献要素

bibliography | 参考文献 | sdoc
bibliopole | 参考文献データ | sdoc
book | 書籍 | none
article | 記事 | none
journal | 雑誌 | none
author | 著者 | none
editor | 編者 | none
title | タイトル | none
subtitle | サブタイトル | none
edition | エディション | none
publisher | 出版社 | none
year | 年 | none
month | 月 | none
volume | 巻 | none
number | 号 | none
a | URI | none

# none

入力 | なし
出力 | なし

## 機能

noneアダプタは何もアダプタです。 noneアダプタを指定することで、要素のデフォルトのアダプタの動作を 抑止することができます。

## 属性

なし

## 使用例

noneアダプタの使用例をに示します。

この例では`figure`要素の`adapter`属性にnoneを指定 しています。

none.sdoc

figure
要素のデフォルトのアダプタは`autoimage`アダプタ ですから、noneを指定しない場合`src`属性に指定された情報から、 イメージファイル名を自動的に生成します。 この例の場合には、`src`属性には`imageData`が指定されて いるためHTMLへ変換する場合には自動的に`imageData.gif`という ファイル名が生成されます。

この機能を抑止するためには、`autoimage`アダプタの設定を外す必要が あり、このために`none`アダプタを設定しているわけです。

この例の場合には、`imageData`というファイル名がそのまま、生成された ターゲットの文書でも使われることになります。

# text

入力 | テキストファイル
出力 | テキスト

## 機能

textアダプタは、テキストファイルを取り込むためのアダプタです。

取り込んだテキストの内容は、指定された要素内にそのままテキストとして 格納されます。

## 属性

属性,意味,デフォルト,チューニング
src | テキストファイルのURI | 指定必須 |
encoding | 文字エンコーディング | 未設定 |

src

src
属性は、読み込むテキストファイルのURIを指定します。

encoding

encoding
属性は、読み込むテキストファイルの 文字エンコーディングを指定します。

## 使用例

text
アダプタの使用例を に示します。

text.sdoc

# sdoc

入力 | SmartDocファイル
出力 | テキストまたはSmartDoc文書

## 機能

sdocアダプタは、外部のSmartDoc文書を取り込むためのアダプタです。

## 属性

属性,意味,デフォルト,チューニング
src | SmartDoc文書ファイルのURI | 指定必須 |

src

src
属性は、外部SmartDoc文書のURIを指定します。

## 使用例

sdoc
アダプタの使用例をに 示します。

この例では、`chapter`要素の中に外部のSmartDoc文書が展開されます。 つまり章の中身を外部のSmartDoc文書から取り込む形になります。 章のタイトルはSmartDoc文書のタイトルが自動的に反映されます。

sdocアダプタ

# csv

入力 | CSVファイル
出力 | `tr`要素のリスト

## 機能

csvアダプタは、CSVファイルを取り込むためのアダプタです。

CSVファイルに格納されたデータは表構造のデータとして解釈され、 結果を`tr`要素のリストによる表データとして取り込みます。

## 属性

属性,意味,デフォルト,チューニング
src | テキストファイルのURI | 指定必須 |

src

src
属性は、外部CSVファイルのURIを指定します。

encoding

encoding
属性は、外部CSVファイルの 文字エンコーディングを指定します。 (要作り込み)

## 使用例

csv
アダプタの使用例をに 示します。

csv.sdoc

# jdbc

アダプタ名 | jdbc
--- | ---
入力 | JDBC
出力 | `tr`要素のリスト

## 機能

jdbcアダプタは、JDBC機能を利用してデータベースの内容をSmartDoc内に 取り込むためのアダプタです。

結果は`tr`要素のリストとして取り込まれ、 `tbody`要素などのデータとすることができます。

## 属性

属性,意味,デフォルト,チューニング
src | JDBC URI | 指定必須 |
jdbcSql | SQL | 指定必須 |
jdbcUsername | ユーザ名 | 未設定 |
jdbcPassword | パスワード | 未設定 |
jdbcDriver | JDBCドライバのクラス | 未設定 |
jdbcClasspath | JDBCドライバのクラスパス | 未設定 |

src属性

src
属性は、JDBCのURIを指定します。

jdbcSql属性

jdbcSql
属性は、SQL文を指定します。 SQLの結果から自動的に表が構成されます。

jdbcUsername属性

jdbcUsername
属性は、データベースアクセスに使用するユーザ名を 指定します。

jdbcPassword属性

jdbcPassword
属性は、データベースアクセスに使用するパスワードを 指定します。

jdbcDriver属性

jdbcDriver
属性は、JDBCドライバのクラスを指定します。

jdbcClasspath属性

jdbcClasspath
属性は、JDBCドライバのインストール先を示す クラスパスを指定します。

## 使用例

jdbcアダプタの使用例を に示します。

jdbc.sdoc

# autoimage

アダプタ名 | autoimage
--- | ---
入力 | `src`属性のイメージファイル情報
出力 | `src`属性

## 機能

autoimageアダプタは、イメージファイル名を自動選択するための アダプタです。

src
属性に指定されたイメージファイルの情報から、適切な イメージファイル名を生成し、`src`属性に設定します。

イメージファイル名の生成は以下の手順で行われます。

1. イメージファイル情報がサフィックスありの場合はイメージファイル名とみなす
2. サフィックスがない場合には、出力フォーマットごとに定められた優先順位でサフィックスを補完したファイル名のファイルの存在を確認し、存在していればそのファイル名を`src`属性に設定する
3. ファイルが存在していない場合には、優先順位の一番高いサフィックスを付加したファイル名を`src`属性に設定する

出力フォーマットごとのデフォルトの優先順位は となります。 この優先順位は各出力フォーマットのオプションで変更することができます。 たとえばHTML 4.0の場合にはhtml4.imageFormatオプションとなります。 詳しくは各フォーマットの章を 参照してください。

フォーマット,順位,サフィックス,イメージフォーマット

- HTML4

1 | gif | GIF
2 | jpeg | JPEG
3 | jpg | JPEG
4 | png | PNG

- HTML3

1 | gif | GIF
2 | jpeg | JPEG
3 | jpg | JPEG

- LaTeX2e

1 | eps | Encapsulated PostScript
2 | ps | PostScript
3 | gif | GIF
4 | png | PNG

## 属性

属性,意味
src | イメージファイルのURIまたは情報

## 使用例

autoimageアダプタの使用例をに 示します。

autoimage.sdoc

# bean

アダプタ名 | bean
--- | ---
入力 | JavaBeansコンポーネント
出力 | JavaBeansコンポーネントの出力

## 機能

beanアダプタはJavaBeansの実行結果をSmartDocに取り込むためのアダプタです。 一応JavaBeansをターゲットにしていますが、JavaBeansの性質を備えている 通常のJavaクラスを指定するのも可能です。

## 属性

属性,意味,デフォルト,チューニング
src | BeanのURI | 指定必須 |
beanProperties | Beanのプロパティの設定 | 未設定 |
beanTargetProperty | SmartDocに取り込むプロパティ。指定しない場合はBeanのtoStringの結果が取り込まれる | 未設定 |
beanSmartDoc | 生成したXMLをSmartDocとして取り込むか否か。 | false |

src属性

src
属性にはBeanのURIを指定します。

beanProperties属性

beanProperties
属性には、Beanに設定するプロパティを指定します。 `beanProperties`属性にはプロパティ名と値を、CSSと同様のフォーマット で記述します。 `beanproperties`属性に指定されたプロパティ情報は、Beanのプロパティ として設定されます。

beanTargetProperty属性

beanTargetProperty
属性は、Beanから出力を得たい時に使用します。 `beanTargetProperty`属性に値が指定された場合、Beanの所定の メソッドが呼び出され、その結果がSmartDoc文書内に取り込まれます。

SmartDoc文書内にどのように取り込まれるのかは、`beanSmartDoc`属性の 値に依存します。

beanSmartDoc属性

beanSmartDoc
属性は、`beanTargetProperty`属性の 出力をSmartDoc文書内に取り込む方法について指定します。 値は`true`または`false`を指定することができ、 デフォルト値は`false`です。

true
が指定されると、`beanTargetProperty`による 出力結果をSmartDoc文書の一部として取り込みます。

false
が指定されると、`beanTargetProperty`による 出力結果を単なるテキストとして取り込みます。

## 使用例

Beanアダプタの使用例をに示します。

最もシンプルな使い方は「オブジェクトのtoStringの結果を文字列として取り込む」 方法です。 この例では`java.util.Date`の`toString`メソッドの結果を そのままドキュメントに取り込んでいます。

JavaBeansの「オブジェクトのプロパティの値を文字列として取り込む」ことも 可能です。 この例では`java.util.Date`の`year`, `month`, `date`のプロパティの結果を取り込んでいます。

「オブジェクトのプロパティを設定する」ことも可能です。 この例では`java.util.Date`の`year`, `month`, `date`プロパティに値を設定したものから、 `toString`メソッドで文字列を取り出しています。

サンプル

ここではJavaクラスとして`java.util.Date`を用いていますが、 `toString`メソッド、またはJavaBeansプロパティが文字列として 意味を持つクラスなら、どのようなクラスもそのまま指定することができます。

# xslt

アダプタ名 | bean
--- | ---
入力 | XML文書
出力 | テキストまたはSmartDoc文書

## 機能

XSLTアダプタはXSLTの実行結果をSmartDocに取り込むためのアダプタです。

## 属性

属性,意味,デフォルト,チューニング
src | テキストファイルのURI | 指定必須 |
xsltURI | XSLファイルのファイル名またはURL | 指定必須 |
xsltProperties | XSLTアダプタのプロパティを指定 | - | XSLTアダプタの内部構造に依存するので、ソースコードを読める人だけ使って下さい。無保証となります。
xsltSmartDoc | 生成したXMLをSmartDocとして取り込むか否か | false |

## 使用例

XSLTアダプタの使用例をに示します。

このサンプルでは、処理前のデータとしてdata.xml、 処理用のXSLとしてconv.xslを使用しています。

XSLTアダプタの指定は`adapter`属性に`xslt`を設定することで 行います。 処理データ(`data.xml`)は`src`属性で、 XSL(`conv.xsl`)は`xsltURI`属性で指定します。

XSLTアダプタでは生成結果を文字列としてSmartDocドキュメント内に取り込む のがデフォルトの処理となっています。 ただし、XSLTの変換結果がSmartDocドキュメントである場合には `xsltSmartDoc`属性に`true`を指定することで、 SmartDocとしてドキュメント内に取り込まれます。

サンプル

データ(data.xml)

XSL(conv.xsl)