<?xml version='1.0' encoding='Shift_JIS' ?>

<doc xml:lang='ja'>
<head>
<title>アダプタ</title>
<author>浅海 智晴</author>
<date>2002年3月31日</date>
</head>
<body>

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

<section title="アダプタ一覧">

SmartDocでサポートしているアダプタの一覧を
<a href="#tab:adapterList"></a>
に示します。

<table id="tab:adapterList" title="アダプタ一覧">
<thead>
名前,機能,関連属性
</thead>
<tbody>
<tr>
  <td>none</td>
  <td>なにもしない</td>
  <td>-</td>
</tr>
<tr>
  <td>text</td>
  <td>テキストの読み込み</td>
  <td>src, encoding</td>
</tr>
<tr>
  <td>sdoc</td>
  <td>SmartDocドキュメントの読み込み</td>
  <td>src</td>
</tr>
<!-- macro,,src -->
<tr>
  <td>csv</td>
  <td>CSVテキストの読み込み</td>
  <td>src, encoding</td>
</tr>
<tr>
  <td>jdbc</td>
  <td>JDBCによるリレーショナルデータベースの読み込み</td>
  <td>src, jdbcSql, jdbcUsername, jdbcPassword, jdbcDriver, jdbcClasspath</td>
</tr>
<!--
<tr>
  <td>stable</td>
  <td>SmartTableの読み込み</td>
  <td>src, aparam</td>
</tr>
<tr>
  <td>tab</td>
  <td>タブ</td>
  <td>src, aparam</td>
</tr>
<tr>
  <td>sp</td>
  <td>src, aparam</td>
</tr>
-->
<tr>
  <td>autoimage</td>
  <td>イメージファイルの選択</td>
  <td>src</td>
</tr>
<tr>
  <td>bean</td>
  <td>JavaBeansの実行結果の読み込み</td>
  <td>src, beanProperties, beanTargetProperty, beanSmartDoc</td>
</tr>
<tr>
  <td>xslt</td>
  <td>XSLTプロセッサの出力結果の読み込み</td>
  <td>src, xsltURI, xsltParams, xsltProperties, xsltSmartDoc</td>
</tr>
</tbody>
</table>

</section>

<section title="デフォルトアダプタ">

<table title="デフォルトアダプタ一覧" id="tab:defaultAdapterList">
<thead>
カテゴリ,要素,機能,アダプタ
</thead>
<tbody>
<ul>
  <li>文書要素</li>
  <ul>
    <tr>
      <td>doc</td>
      <td>SmartDoc文書のルート要素</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>head</td>
      <td>SmartDoc文書の文書情報</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>body</td>
      <td>SmartDoc文書の本体</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>ヘッダ要素</li>
  <ul>
    <tr>
      <td>title</td>
      <td>文書のタイトル</td>
      <td>none</td>
    </tr>
    <tr>
      <td>subtitle</td>
      <td>文書のサブタイトル</td>
      <td>none</td>
    </tr>
    <tr>
      <td>author</td>
      <td>著者</td>
      <td>none</td>
    </tr>
    <tr>
      <td>org</td>
      <td>組織</td>
      <td>none</td>
    </tr>
    <tr>
      <td>date</td>
      <td>日時</td>
      <td>none</td>
    </tr>
    <tr>
      <td>hp</td>
      <td>ホームページアドレス</td>
      <td>none</td>
    </tr>
    <tr>
      <td>email</td>
      <td>Eメールアドレス</td>
      <td>none</td>
    </tr>
    <tr>
      <td>abstract</td>
      <td></td>
      <td>none</td>
    </tr>
    <tr>
      <td>header</td>
      <td>ページヘッダ情報</td>
      <td>none</td>
    </tr>
    <tr>
      <td>footer</td>
      <td>ページフッタ情報</td>
      <td>none</td>
    </tr>
    <tr>
      <td>prologue</td>
      <td>ページプロローグ情報</td>
      <td>none</td>
    </tr>
    <tr>
      <td>native</td>
      <td>ターゲットフォーマットのネーティブ記述</td>
      <td>none</td>
    </tr>
  </ul>
  <li>文書構造要素</li>
  <ul>
    <tr>
      <td>part</td>
      <td>部</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>chapter</td>
      <td>章</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>section</td>
      <td>節</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>subsection</td>
      <td>小節</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>subsubsection</td>
      <td>少少節</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>appendix</td>
      <td>付録</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>補助構造要素</li>
  <ul>
    <tr>
      <td>fyi</td>
      <td>コメント的な参考情報</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>note</td>
      <td>注釈</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>リスト</li>
  <ul>
    <tr>
      <td>ul</td>
      <td>番号なしリスト</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>ol</td>
      <td>番号つきリスト</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>li</td>
      <td>ulまたはolのリスト項目</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>dl</td>
      <td>定義リスト</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>dt</td>
      <td>dlの定義項目</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>dd</td>
      <td>dlの定義内容</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>ブロック</li>
  <ul>
    <tr>
      <td>div</td>
      <td>矩形領域</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>p</td>
      <td>パラグラフ</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>pre</td>
      <td>整形済みテキスト</td>
      <td>text</td>
    </tr>
  </ul>
  <li>テーブル</li>
  <ul>
    <tr>
      <td>table</td>
      <td>表のルート要素</td>
      <td>csv</td>
    </tr>
    <tr>
      <td>thead</td>
      <td>ヘッダ情報</td>
      <td>csv</td>
    </tr>
    <tr>
      <td>tfoot</td>
      <td>フッタ情報</td>
      <td>csv</td>
    </tr>
    <tr>
      <td>tbody</td>
      <td>データ情報</td>
      <td>csv</td>
    </tr>
    <tr>
      <td>tr</td>
      <td>レコード</td>
      <td>none</td>
    </tr>
    <tr>
      <td>th</td>
      <td>ヘッダセル</td>
      <td>none</td>
    </tr>
    <tr>
      <td>td</td>
      <td>データセル</td>
      <td>none</td>
    </tr>
    <tr>
      <td>colgroup</td>
      <td>カラムグループの宣言</td>
      <td>none</td>
    </tr>
    <tr>
      <td>col</td>
      <td>カラム情報の定義</td>
      <td>none</td>
    </tr>
    <tr>
      <td>tnote</td>
      <td>表の注釈</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>イメージ</li>
  <ul>
    <tr>
      <td>figure</td>
      <td>図版の取り込み</td>
      <td>autoimage</td>
    </tr>
    <tr>
      <td>img</td>
      <td>イメージの取り込み</td>
      <td>autoimage</td>
    </tr>
  </ul>
  <li>ハイパーテキストリンク</li>
  <ul>
    <tr>
      <td>a</td>
      <td>ハイパーテキストリンク</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>cite</td>
      <td>引用リンク</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>引用</li>
  <ul>
    <tr>
      <td>blockquote</td>
      <td>長い引用</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>q</td>
      <td>短い引用</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>数式</li>
  <ul>
    <tr>
      <td>equation</td>
      <td>数式の記述</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>テキスト</li>
  <ul>
    <tr>
      <td>span</td>
      <td>テキストの範囲指定</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>em</td>
      <td>強調</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>strong</td>
      <td>強い強調</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>dfn</td>
      <td>用語の定義</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>code</td>
      <td>プログラムコード</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>b</td>
      <td>ボールド体</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>i</td>
      <td>イタリック体</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>tt</td>
      <td>タイプライタ体</td>
      <td>sdoc</td>
    </tr>
  </ul>
  <li>プログラム</li>
  <ul>
    <tr>
      <td>program</td>
      <td>プログラムの記述</td>
      <td>text</td>
    </tr>
    <tr>
      <td>console</td>
      <td>コンソール画面の記述</td>
      <td>text</td>
    </tr>
  </ul>
  <li>特殊要素</li>
  <ul>
    <tr>
      <td>native</td>
      <td>ターゲットフォーマットのネーティブ記述</td>
      <td>text</td>
    </tr>
  </ul>
  <li>属性要素</li>
  <ul>
    <tr>
      <td>title</td>
      <td>タイトル属性</td>
      <td>none</td>
    </tr>
    <tr>
      <td>attribute</td>
      <td>属性値の指定</td>
      <td>none</td>
    </tr>
  </ul>
  <li>参考文献要素</li>
  <ul>
    <tr>
      <td>bibliography</td>
      <td>参考文献</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>bibliopole</td>
      <td>参考文献データ</td>
      <td>sdoc</td>
    </tr>
    <tr>
      <td>book</td>
      <td>書籍</td>
      <td>none</td>
    </tr>
    <tr>
      <td>article</td>
      <td>記事</td>
      <td>none</td>
    </tr>
    <tr>
      <td>journal</td>
      <td>雑誌</td>
      <td>none</td>
    </tr>
    <tr>
      <td>author</td>
      <td>著者</td>
      <td>none</td>
    </tr>
    <tr>
      <td>editor</td>
      <td>編者</td>
      <td>none</td>
    </tr>
    <tr>
      <td>title</td>
      <td>タイトル</td>
      <td>none</td>
    </tr>
    <tr>
      <td>subtitle</td>
      <td>サブタイトル</td>
      <td>none</td>
    </tr>
    <tr>
      <td>edition</td>
      <td>エディション</td>
      <td>none</td>
    </tr>
    <tr>
      <td>publisher</td>
      <td>出版社</td>
      <td>none</td>
    </tr>
    <tr>
      <td>year</td>
      <td>年</td>
      <td>none</td>
    </tr>
    <tr>
      <td>month</td>
      <td>月</td>
      <td>none</td>
    </tr>
    <tr>
      <td>volume</td>
      <td>巻</td>
      <td>none</td>
    </tr>
    <tr>
      <td>number</td>
      <td>号</td>
      <td>none</td>
    </tr>
    <tr>
      <td>a</td>
      <td>URI</td>
      <td>none</td>
    </tr>
  </ul>
</ul>
</tbody>
</table>

</section>

<section title="none">

<table>
<tbody>
<tr>
  <th>入力</th>
  <td>なし</td>
</tr>
<tr>
  <th>出力</th>
  <td>なし</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

</subsection>

<subsection title="属性">

なし

</subsection>

<subsection title="使用例">

noneアダプタの使用例を<a href="#prog:noneSdocAdapter"></a>に示します。

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

<program src="src/adapter/none.sdoc" id="prog:noneSdocAdapter" title="none.sdoc" encoding="Shift_JIS"/>

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

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

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

</subsection>

</section>

<section title="text">

<table>
<tbody>
<tr>
  <th>入力</th>
  <td>テキストファイル</td>
</tr>
<tr>
  <th>出力</th>
  <td>テキスト</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

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

</subsection>

<subsection title="属性">

<table title="textアダプタ属性一覧">
<thead>
属性,意味,デフォルト,チューニング
</thead>
<tbody>
<tr>
  <td>src</td>
  <td>テキストファイルのURI</td>
  <td>指定必須</td>
  <td></td>
</tr>
<tr>
  <td>encoding</td>
  <td>文字エンコーディング</td>
  <td>未設定</td>
  <td></td>
</tr>
</tbody>
</table>

<subsubsection title="src">

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


</subsubsection>

<subsubsection title="encoding">

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

</subsubsection>

</subsection>

<subsection title="使用例">

<code>text</code>アダプタの使用例を
<a href="#prog:textSdocAdapter"></a>に示します。

<program src="src/adapter/text.sdoc" id="prog:textSdocAdapter" title="text.sdoc" encoding="Shift_JIS"/>

</subsection>

</section>

<section title="sdoc">

<table>
<tbody>
<tr>
  <th>入力</th>
  <td>SmartDocファイル</td>
</tr>
<tr>
  <th>出力</th>
  <td>テキストまたはSmartDoc文書</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

</subsection>

<subsection title="属性">

<table title="sdocアダプタ属性一覧">
<thead>
属性,意味,デフォルト,チューニング
</thead>
<tbody>
<tr>
  <td>src</td>
  <td>SmartDoc文書ファイルのURI</td>
  <td>指定必須</td>
  <td></td>
</tr>
</tbody>
</table>

<subsubsection title="src">

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

</subsubsection>

</subsection>

<subsection title="使用例">

<code>sdoc</code>アダプタの使用例を<a href="#prog:sdocSdoc"></a>に
示します。

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

<program src="src/adapter/sdoc.sdoc" id="prog:sdocSdoc" title="sdocアダプタ" encoding="Shift_JIS"/>

</subsection>

</section>

<!--
<section title="macro">

</section>
-->

<section title="csv">

<table>
<tbody>
<tr>
  <th>入力</th>
  <td>CSVファイル</td>
</tr>
<tr>
  <th>出力</th>
  <td><code>tr</code>要素のリスト</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

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

</subsection>

<subsection title="属性">

<table title="csvアダプタ属性一覧">
<thead>
属性,意味,デフォルト,チューニング
</thead>
<tbody>
<tr>
  <td>src</td>
  <td>テキストファイルのURI</td>
  <td>指定必須</td>
  <td></td>
</tr>
</tbody>
</table>

<subsubsection title="src">

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

</subsubsection>

<subsubsection title="encoding">

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

</subsubsection>

</subsection>

<subsection title="使用例">

<code>csv</code>アダプタの使用例を<a href="#prog:csvSdocAdapter"></a>に
示します。

<program src="src/adapter/csv.sdoc" id="prog:csvSdocAdapter" title="csv.sdoc" encoding="Shift_JIS"/>

</subsection>

</section>

<!--

<section title="stable">

<table>
<tbody>
<tr>
  <th>アダプタ名</th>
  <th>stable</th>
</tr>
<tr>
  <th>入力</th>
  <td>SmartTable</td>
</tr>
<tr>
  <th>出力</th>
  <td><code>tr</code>要素のリスト</td>
</tr>
</tbody>
</table>

<subsection title="機能">

stableアダプタは、SmartTable機能を使用して外部のCSVファイル、データベース(?)の
データを表内に取り込むためのアダプタです。

</subsection>

<subsection title="属性">

<table title="stableアダプタ属性一覧">
<thead>
属性,意味,デフォルト,チューニング
</thead>
<tbody>
<tr>
  <td>src</td>
  <td>テキストファイルのURI</td>
  <td>指定必須</td>
  <td></td>
</tr>
<tr>
  <td>aparam(要検討)</td>
  <td>SmartTableへのパラメタ</td>
</tr>
</tbody>
</table>

<subsubsection title="src">

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

</subsubsection>

<subsubsection title="aparam">

<code>aparam</code>属性は、SmartTableへのパラメタを指定します。

</subsubsection>

</subsection>

<subsection title="使用例">

<program src="src/adapter/stable.sdoc" id="prog:stableSdoc" title="stable.sdoc" encoding="Shift_JIS"/>

</subsection>

</section>

-->

<section title="jdbc">

<table>
<tbody>
<tr>
  <th>アダプタ名</th>
  <th>jdbc</th>
</tr>
<tr>
  <th>入力</th>
  <td>JDBC</td>
</tr>
<tr>
  <th>出力</th>
  <td><code>tr</code>要素のリスト</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

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

</subsection>

<subsection title="属性">

<table title="jdbcアダプタ属性一覧">
<thead>
属性,意味,デフォルト,チューニング
</thead>
<tbody>
<tr>
  <td>src</td>
  <td>JDBC URI</td>
  <td>指定必須</td>
  <td></td>
</tr>
<tr>
  <td>jdbcSql</td>
  <td>SQL</td>
  <td>指定必須</td>
  <td></td>
</tr>
<tr>
  <td>jdbcUsername</td>
  <td>ユーザ名</td>
  <td>未設定</td>
  <td></td>
</tr>
<tr>
  <td>jdbcPassword</td>
  <td>パスワード</td>
  <td>未設定</td>
  <td></td>
</tr>
<tr>
  <td>jdbcDriver</td>
  <td>JDBCドライバのクラス</td>
  <td>未設定</td>
  <td></td>
</tr>
<tr>
  <td>jdbcClasspath</td>
  <td>JDBCドライバのクラスパス</td>
  <td>未設定</td>
  <td></td>
</tr>
</tbody>
</table>

<subsubsection title="src属性">

<code>src</code>属性は、JDBCのURIを指定します。

</subsubsection>

<subsubsection title="jdbcSql属性">

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

</subsubsection>

<subsubsection title="jdbcUsername属性">

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

</subsubsection>

<subsubsection title="jdbcPassword属性">

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

</subsubsection>

<subsubsection title="jdbcDriver属性">

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

</subsubsection>

<subsubsection title="jdbcClasspath属性">

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

</subsubsection>

</subsection>

<subsection title="使用例">

jdbcアダプタの使用例を
<a href="#prog:jdbcSdoc"></a>
に示します。

<program src="src/adapter/jdbc/jdbc.sdoc" id="prog:jdbcSdoc" title="jdbc.sdoc" encoding="Shift_JIS"/>

</subsection>

</section>

<!--

<section title="tab">

</section>

<section title="sp">

</section>

-->

<section title="autoimage">

<table>
<tbody>
<tr>
  <th>アダプタ名</th>
  <th>autoimage</th>
</tr>
<tr>
  <th>入力</th>
  <td><code>src</code>属性のイメージファイル情報</td>
</tr>
<tr>
  <th>出力</th>
  <td><code>src</code>属性</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

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

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

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

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

<table title="イメージファイルの優先順位" id="tab:priorityInAutoimage2">
<thead>
フォーマット,順位,サフィックス,イメージフォーマット
</thead>
<tbody>
<ul>
  <li>HTML4</li>
  <ul>
    <tr>
      <td>1</td>
      <td>gif</td>
      <td>GIF</td>
    </tr>
    <tr>
      <td>2</td>
      <td>jpeg</td>
      <td>JPEG</td>
    </tr>
    <tr>
      <td>3</td>
      <td>jpg</td>
      <td>JPEG</td>
    </tr>
    <tr>
      <td>4</td>
      <td>png</td>
      <td>PNG</td>
    </tr>
  </ul>
  <li>HTML3</li>
  <ul>
    <tr>
      <td>1</td>
      <td>gif</td>
      <td>GIF</td>
    </tr>
    <tr>
      <td>2</td>
      <td>jpeg</td>
      <td>JPEG</td>
    </tr>
    <tr>
      <td>3</td>
      <td>jpg</td>
      <td>JPEG</td>
    </tr>
  </ul>
  <li>LaTeX2e</li>
  <ul>
    <tr>
      <td>1</td>
      <td>eps</td>
      <td>Encapsulated PostScript</td>
    </tr>
    <tr>
      <td>2</td>
      <td>ps</td>
      <td>PostScript</td>
    </tr>
    <tr>
      <td>3</td>
      <td>gif</td>
      <td>GIF</td>
    </tr>
    <tr>
      <td>4</td>
      <td>png</td>
      <td>PNG</td>
    </tr>
  </ul>
</ul>
</tbody>
</table>

</subsection>

<subsection title="属性">

<table title="autoimageアダプタ属性一覧">
<thead>
属性,意味
</thead>
<tbody>
<tr>
  <td>src</td>
  <td>イメージファイルのURIまたは情報</td>
</tr>
</tbody>
</table>

</subsection>

<subsection title="使用例">

autoimageアダプタの使用例を<a href="#prog:autoimageSdoc"></a>に
示します。

<program src="src/adapter/autoimage.sdoc" id="prog:autoimageSdoc" title="autoimage.sdoc" encoding="Shift_JIS"/>

</subsection>

</section>

<section title="bean">

<table>
<tbody>
<tr>
  <th>アダプタ名</th>
  <th>bean</th>
</tr>
<tr>
  <th>入力</th>
  <td>JavaBeansコンポーネント</td>
</tr>
<tr>
  <th>出力</th>
  <td>JavaBeansコンポーネントの出力</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

</subsection>

<subsection title="属性">

<table title="beanアダプタ属性一覧">
<thead>
属性,意味,デフォルト,チューニング
</thead>
<tbody>
<tr>
  <td>src</td>
  <td>BeanのURI</td>
  <td>指定必須</td>
  <td></td>
</tr>
<tr>
  <td>beanProperties</td>
  <td>Beanのプロパティの設定</td>
  <td>未設定</td>
  <td></td>
</tr>
<tr>
  <td>beanTargetProperty</td>
  <td>SmartDocに取り込むプロパティ。指定しない場合はBeanのtoStringの結果が取り込まれる</td>
  <td>未設定</td>
  <td></td>
</tr>
<tr>
  <td>beanSmartDoc</td>
  <td>生成したXMLをSmartDocとして取り込むか否か。</td>
  <td>false</td>
  <td></td>
</tr>
</tbody>
</table>

<subsubsection title="src属性">

<code>src</code>属性にはBeanのURIを指定します。

</subsubsection>

<subsubsection title="beanProperties属性">

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

</subsubsection>

<subsubsection title="beanTargetProperty属性">

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

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

</subsubsection>

<subsubsection title="beanSmartDoc属性">

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

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

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

</subsubsection>

</subsection>

<subsection title="使用例">

Beanアダプタの使用例を<a href="#prog:sample"></a>に示します。

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

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

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

<program src="src/adapter/bean/sample.sdoc" title="サンプル" id="prog:sample" encoding="Shift_JIS">
</program>

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

</subsection>

</section>

<section title="xslt">

<table>
<tbody>
<tr>
  <th>アダプタ名</th>
  <th>bean</th>
</tr>
<tr>
  <th>入力</th>
  <td>XML文書</td>
</tr>
<tr>
  <th>出力</th>
  <td>テキストまたはSmartDoc文書</td>
</tr>
</tbody>
</table>

<subsection title="機能">

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

</subsection>

<subsection title="属性">

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

</subsection>

<subsection title="使用例">

XSLTアダプタの使用例を<a href="#prog:sampleDoc"></a>に示します。

このサンプルでは、処理前のデータとして<a href="#prog:dataXml">data.xml</a>、
処理用のXSLとして<a href="#prog:convXsl">conv.xsl</a>を使用しています。

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

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

<program src="src/adapter/xslt/sample.sdoc" title="サンプル" id="prog:sampleDoc" encoding="Shift_JIS">
</program>

<program src="src/adapter/xslt/data.xml" title="データ(data.xml)" id="prog:dataXml" encoding="Shift_JIS">
</program>

<program src="src/adapter/xslt/conv.xsl" title="XSL(conv.xsl)" id="prog:convXsl" encoding="Shift_JIS">
</program>

</subsection>

</section>

</body>
</doc>
