developerWorksでは、チュートリアルの作成に使用しているXMLベースのツール、Toot-O-Maticのソースを公開しています。今回の記事では、このツールを作成したときの設計上の決定事項と、このツールを使って独自のチュートリアルを作成する方法を紹介すると共に、ソース・コードの構造についても若干説明します。ツールが皆さんのお役に立ち、XMLとXSLTのスタイル・シートを使って、さまざまな方法で構造化データを操作する方法をご理解いただければ幸いです。
Toot-O-Maticプロジェクトは、以下の設計目標を掲げ開始されました。
- developerWorksチュートリアルの作成をもっと容易にする
- 「隗より始めよ」(唱道しているテクノロジーを実際に使用していることを示す)
- XSLTスタイル・シートで可能なことを把握する
まず、これらの目標を詳しく説明してから、チュートリアルの実際の設計についてお話ししましょう。
数年前、developerWorksで初めてチュートリアルを作成したとき、それは信じられないほど時間のかかる作業でした。著者やエディターは、まずMicrosoftWordなどのツールでコンテンツを作成、編集してから、発行プロセスを始めていました。最初のステップは通常、チュートリアルのPDFバージョンを作成することでした。チュートリアルを高品質で印刷可能なPDFバージョンは人気があり、またMicrosoftWordで書式設定したドキュメントからPDFバージョンを作成することはとても簡単です(大量のHTMLファイルから作成するよりもはるかに簡単です)。
ドキュメントのワープロ処理が終わったら、そのチュートリアルをHTMLに変換しました。そして、出来上がった1つのHTMLファイルを小さく分割し、細分された各HTMLにIBM標準のヘッダーとフッターを追加しました。つまり、リンクしなければならないHTMLファイルがたくさん(通常は50~100) 作成されたわけです。あるセクションの3つ目のパネルを表示しているときにNext をクリックすると、4つ目のパネルに移動し、Previous をクリックすると2つ目のパネルに移動するというようにリンクしました。また、メニュー・パネルを作成する必要がありました。メニュー・パネルからは、特定のセクションの1つ目のパネルに直接リンクすることができます。最後に、各パネルで、マウスオーバー効果をテストしなければなりませんでした。
著者とエディターが内容の推敲を進めている間に、グラフィック・デザイナーはセクションのタイトルとチュートリアルそのもののパネルのアートワークを作成しました。見出しテキストの外観が統一されるように、デザイナーは、適切な背景の上に見出しテキストが描画されたグラフィックを作成しました。タイトルについては、デザイナーはマウスオーバー効果に合わせて、普通のバージョンと強調表示バージョンの両方を作成しました。
お分かりのように、チュートリアル作成プロセスの大部分は手作業で、エラーが生じやすい状況でした(特に、日の出までにサイトに載せるために、午前5時30にあわてふためいてチュートリアルの仕上げを行っていた場合などは、その可能性がありました)。できる限り多くのステップを自動化して、時間を節約し、かつエラーを最小限に抑える必要がありました。
もう1つの目標は、自分たちが支持しているテクノロジーを実際に使用することでした。オープンな標準ベースのコンピューティングを推進しようとするサイトを、MicrosoftWordなどのクローズ・ソースのプロプライアティ・ツールでコンテンツを作成しているという皮肉を、気にかけていたことは確かです(注:この時点では、Microsoft OfficeのLinux版の発表はまだ行われていませんでした)。XMLドキュメントとXSLTスタイル・シートをもとにしてツールを作る醍醐味の1つは、XMLとXSLTが今や実質的な仕事をこなす段階に来ていることを世に示すということでした。これらのテクノロジーを選んで構造化データを操作することは、わたしたちにとっては簡単なことでした。
XSLTでどれくらいのことを実行できるかを把握するという最後の目標を達成するために、Toot-O-Maticでは、複数の入力ファイル、複数の出力ファイル、拡張機能など、XSLTの高度な機能をすべて利用しています。スタイル・シートを使って、1つのXMLドキュメントを次のものに変換します。
- 互いにリンクされているHTMLドキュメントのWeb
- チュートリアル全体のメニュー
- チュートリアルの各セクションごとの目次
- すべてのセクションのタイトル・テキストとチュートリアルそのもののタイトルテキストを含むJPEGグラフィック
- レター・サイズのPDFファイル
- A4サイズのPDFファイル
- ユーザーがマシンでチュートリアルを実行する場合に必要となるものをすべて収めたZIPファイル
過去18ヶ月間に渡って取り組んできたXMLドキュメント構造の説明に入る前に、チュートリアルのレイアウトについて少しお話ししましょう。ベースにすべき既存のXMLタグ付きチュートリアルを持っていなかったので、必要とする最終成果物に焦点を当て、そののち、もとになるXMLドキュメントを必要な出力書式に簡単に変換できるように、XMLドキュメント構造を設計することができました。
ユーザーが一番最初に注目するのは、メニュー・パネルです。メニュー・パネルは次のようになります。
図1. チュートリアルのメニュー・パネル
この例では、"Building tutorials with the Toot-O-Matic" という文字列と、すべてのセクション・タイトル("1. Installing and configuring Toot-O-Matic" など) が、ツールで作成したJPEGグラフィックです。マウスを所定のセクションの上に移動すると、背景のカラーが変化します。
図2. メニュー項目のマウスオーバー効果
図2では、メニュー項目のテキストはツール・ヒントとして表示されることに注意してください。これは、視覚障害のあるユーザーに役立ち、W3Cで定義され、IBMで拡張定義されているWebアクセシビリティ・ガイドラインに準拠しています。
また、パネルの上下にあるナビゲーション・コントロールにも注意してください。ヘッダーとフッターは、IBMの企業Webサイト用標準で定義されています。これは、Toot-O-Maticで皆さんが独自のチュートリアルを作成する場合に変更する必要がある場所の1つです。ナビゲーション・バーには、"Mainmenu"、"Section menu"、"Feedback"、"Previous"、"Next"などの項目が入っています。これらの項目の一部はこのパネルでは使用できませんが、チュートリアルではすべてのパネルに表示されます。
ナビゲーション・コントロールの上には、アイコンが4つあります。これらを使って、同じチュートリアルの別バージョンをダウンロードしたり、チュートリアルを友人にe-mailで送ったりすることができます。
図3. チュートリアルのアイコン
これらのアイコンでは、左から右に、チュートリアルをローカルで実行するために必要なファイルがすべて収められたZIPファイルのダウンロード、レター・サイズのPDFファイルのダウンロード、A4サイズのPDFファイルのダウンロード、このチュートリアルを推奨するe-mailの送信を実行できます。これらのアイコンはすべて、チュートリアルのどのページにも表示され、決められた場所への貼り付けと関連リンクの生成は、Toot-O-Maticで行われます。
個々のパネルは次のようになります。
図4. チュートリアル情報パネル
チュートリアルのパネルの大半はこの設計を採用しています。パネルの最上部には、"Page1 of 6" というようなテキストが表示されることに注意してください。ナビゲーション・バーには、メイン・メニューとセクション・メニューへのアクティブなリンクも含まれています。
"Section menu" のリンクをクリックすると、現在のセクション内のすべてのタイトルがリストされます。
図5. チュートリアルのセクション索引パネル
パネル・タイトルのどれをクリックしても、そのパネルに直接移動できます。スタイル・シートのマジックにより、各パネルのタイトルが、そのパネルへの正しいハイパー・リンクと共に自動的に表示されます。
Toot-O-Maticは、フィードバック・パネルも自動的に生成します。フィードバック・パネルは、短い段落とフィードバック・フォームから成り立ちます。"Submitfeedback" ボタンをクリックすると、ユーザーが入力したコメントや意見が自動的にフィードバック・データベースに送られます。次に、フィードバック・パネルを示します。
図6. フィードバック・パネル
所定のパネルをフィードバック・パネルとして指定すると、そのパネルへのリンクが、チュートリアル内のすべてのパネルのナビゲーション・バーに表示されます。
比較的最近追加されたのが、"e-mail a friend" パネルです。このパネルを使って、手にしたチュートリアルの素晴らしさを友人と分かち合うことができます。"e-mailit!" アイコンをクリックすると、次のようなパネルが表示されます。
図7. e-mailパネル
チュートリアルのZIPファイル・バージョンには、チュートリアルを表示するために必要なすべてのHTMLファイルと、サポートするグラフィックやその他のファイルがすべて含まれています。Toot-O-MaticでこのZIPファイルを作成すると、生成されたHTMLファイルとJPEGファイルのほかに、チュートリアルのXMLソース・ファイルそのもので参照されるリソースもすべて組み込まれます。
チュートリアルのPDFバージョンは、チュートリアルをオフラインで読みたいユーザーのために、高品質の印刷出力をサポートしています。チュートリアルの1ページ目には、チュートリアルのタイトルと目次が表示されます。
図8. PDFファイルの1ページ目
目次では、セクションのタイトルとページ番号の両方がハイパーリンクとなります。PDFファイルをオンラインで表示した場合は、これらのリンクを使って、特定のセクションに直接移動できます。印刷したPDFファイルを読む際には、目次が役に立ちます。目次のリンクのほかに、チュートリアルそのものにおける相互参照と、Webページへの参照もハイパーリンクとして表示されます。
チュートリアル本文のページには、各パネルのテキストとイラストが表示され、ページの区切りは横線で示されます。
図9. チュートリアル本文のページ
PDFファイルの書式設定とレイアウトに関して行わなければならないことは、すべてToot-O-Maticで処理されます。
developerWorksチュートリアルを各種の形式で表示する方法を説明したので、次にチュートリアルになるXMLドキュメントの構造についてお話ししましょう。まず、構造について、わたしたちは次のような明確な原則に従いました。
-
<tutorial>には、1つの<title>と1つ以上の<section>を含める。 -
<section>には、1つの<title>と1つ以上の<panel>を含める。 -
<panel>には、<title>と<body>を1つずつ含め、<body>には、パネルの1列または2列のコンテンツに対するマークアップを含める。
チュートリアルの構成方法から、これらの決定は自明のことでした。
最初に決めなければならない大きなことは、個々の <panel> をマークアップする方法でした。次の構造に落ち着きました。
リスト1. チュートリアルのドキュメント構造
<panel>
<title>Title of the panel</title>
<body>
<image-column> -or- <example-column> (one or the other or neither)
<text-column>
Basic HTML markup (<p>, <ol>, <li>, <b>, <i>, <u>, <a>, etc.)
</text-column>
</body>
</panel>
|
このような構造にすれば、コンテンツをさまざまな書式に簡単に変換できる上に、チュートリアルの著者は、使い慣れたタグのほとんどを使えます。左側に列がある場合は、<image-column>要素と<example-column> 要素でそのコンテンツを定義します。ツールでサポートされている要素と属性については、Toot-O-Maticの資料(Toot-O-Maticパッケージに付属のチュートリアル) を参照してください。そのほとんどは、おなじみのHTML要素と同じです。
目標は、1つのXMLファイルを、相互にリンクされたHTMLドキュメントのWebに変換することでした。そのためには、出力として作成されたすべてのファイルに名前を付ける、何らかの標準的な方法が必要でした。ファイル名のルートは、<tutorial> 要素にファイル名属性を追加することで定義します。ファイル名属性が "xyz"の場合、セクション1のHTMLファイルの名前はxyz-1-1.html、xyz-1-2.html というようになり、セクション2のファイルの名前はxyz-2-1.html、xyz-2-2.html というようになります。リンクで言えば、2つ目の<section> の4つ目の<panel> を表示している場合、Previous リンクは ファイルxyz-2-3.html を指していることになります。現在のパネルが最後のパネルでなければ、Next リンクはファイルxyz-2-5.html を指していることになります。2つ目のセクションのセクション索引の名前はindex2.html なので、セクション・メニューのリンクはそのファイルを指すことになります。メイン・メニュー・パネルを作成するときに、チュートリアルに7つの<section> がある場合は、xyz-1-1.html、xyz-2-1.html からxyz-7-1.html までのリンクを作成する必要があります。
ZIPアイコンとPDFアイコンで参照されるファイルの名前では、filename 属性を再度使用します。前述の例を使うと、ZIPファイルの名前はxyz.zip となり、2つのPDFファイルの名前はxyz-ltr.pdf とxyz-a4.pdf になります。filename 属性の値が分かれば、チュートリアルの各HTMLファイルのマストヘッド上にこれらのリンクを作成できます。一貫性のある命名規則に従っていれば、パネル間のリンクを作成することもできます。
フィードバック・パネルは、<feedback-form> 要素を含む1つ目の <panel>によって決まります。次に、その要素を示します。
リスト2. フィードバック・パネルを生成するXML要素
<feedback-form action-url="http://www9.software.ibm.com/dworks/ratings.nsf/
RateOnlineCourse?CreateDocument" zone="Web" redirect-url="
http://www.ibm.com/developer/thankyou/feedback-java.html" />
|
独自のチュートリアルを作成するためにToot-O-Maticを使う場合は、サイトに合わせてaction-url属性とredirect-url 属性を変更します。
最近導入されたe-mailパネルには、新しいフィールドが2つ必要で、そのどちらも属性として<tutorial> 要素に追加されました。次に、XMLソースを示します。
リスト3. e-mailパネルの作成に使う属性
<tutorial filename="tootomatic"
. . .
email-link="http://xyz.ibm.com/dW-tutorials/education/tootomatic"
abstract="developerWorks is proud to present the Toot-O-Matic,
an XML-based tool that uses XSLT style sheets and Java code to convert
an XML source file into a variety of text and binary outputs.
This tutorial is the documentation for the tool, covering installation,
a tag guide, troubleshooting, and writing tips.">
|
このリストでは、email-link 属性とabstract 属性がe-mailパネルで使われています。e-mailパネルを作成するには、パネルを管理する標準JavaScriptファイル、emailfriend.js を使用します。次に、e-mailパネルを動作させるために生成するHTMLを示します。
リスト4. e-mailパネルを起動するために生成されたHTMLマークアップ
<a href="javascript:void newWindow()" border="0">
<img alt="E-mail this tutorial to a friend" border="0" src="../i/icon-email.gif">
</a>
|
(記述内容が分かり易いように、このリストは整理してあります。Toot-O-Maticで生成される実際のHTMLファイルには、空白がほとんどありません。)
ディレクトリー構造を一言で言えば、Toot-O-Maticは、コマンド・ラインまたは<tutorial> 要素で指定された所定のサブディレクトリーにすべてのファイルを格納します。一般的なリソース(emailfriend.js、標準のマウスオーバー・グラフィックなど) はすべて、../i ディレクトリーに格納されます。1つのマシンに複数のToot-O-Matic生成チュートリアルを格納する場合、共通のファイルは一度しか保存されません。
XMLドキュメント構造を定義する際に解決していった設計上の考慮点を説明したので、次に、XSLTスタイル・シートを使ってXMLドキュメントを希望の書式に変換する方法についてお話しします。初めに、XSLTモード属性を使って、同じ構造化情報を複数の方法で処理します。
リスト5. XSLTモード属性の使用
<xsl:template match="/">
<xsl:apply-templates select="tutorial" mode="build-main-index"/>
<xsl:apply-templates select="tutorial" mode="build-section-indexes"/>
<xsl:apply-templates select="tutorial" mode="build-individual-panels"/>
<xsl:apply-templates select="tutorial" mode="generate-graphics"/>
<xsl:apply-templates select="tutorial" mode="generate-pdf-file">
<xsl:with-param name="page-size" select="'letter'"/>
</xsl:apply-templates>
<xsl:apply-templates select="tutorial" mode="generate-pdf-file">
<xsl:with-param name="page-size" select="'a4'"/>
</xsl:apply-templates>
<xsl:apply-templates select="tutorial" mode="build-zip-file"/>
</xsl:template>
|
この例は、同じ基本データを複数の異なる方法で処理する方法を示しています。チュートリアルのメイン索引ページを作成する場合は、モードbuild-main-index を使い、個々のパネルを作成する場合はbuild-individual-panels モードを使います。generate-pdf-file モードは、page-size パラメーターを使って、ページのサイズを正しく設定することに注意してください(レター・サイズとA4サイズ両方のPDFファイルを生成します)。
メイン・メニュー・パネルは、標準ヘッダーと標準フッター、そしてその2つの間にあるチュートリアルのすべてのセクションのリストから成り立ちます。セクションのタイトルをクリックすると、そのセクションの最初のパネルにジャンプします。パネルの見栄えを良くするには、生成されたグラフィックとマウスオーバー効果を使用して、パネルのタイトルを表示します。
セクションのリストを生成するスタイル・シートは簡単です。ヘッダーとフッターは、定形文面テキストから生成されます。セクションのリストは、<xsl:for-each> 要素で生成されます。
リスト6. メニュー・パネルのリンクを生成するためのXPathステートメント
<xsl:for-each select="section">
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat($fn, '-', position(), '-1.html')"/>
</xsl:attribute>
...
<img width="335" height="26" border="0">
...
<xsl:attribute name="src">
<xsl:value-of select="concat('imagemaster/menu-', position(), '.jpg')"/>
</xsl:attribute>
</img>
</a>
<br/>
</xsl:for-each>
|
(例を分かりやすくするため、XPath式のうち、アンカー・タグやイメージ・タグの各種属性を生成する部分は削除しました。)例の場合、1つ目のセクション
(position()=1)
では、スタイル・シートによって次のHTMLが生成されます。
リスト7. サンプルのメニュー・パネル・リンク
<a href="xyz-1-1.html" onMouseOut="iOut('menu1');"
onMouseOver="iOver('menu1'); self.status=menu1blurb; return true;">
<img border="0" height="26" name="menu1"
src="imagemaster/menu1.jpg" width="335"/>
</a>
<br/>
|
前述のリストで、ボールド体の1はすべて、XPathのposition() 関数で生成されたものです。
次の作業は、チュートリアルを構成する個々のHTMLパネルの生成です。チュートリアルのヘッダーとフッターは、定形文面で生成されており、パネルの本体にあるタグのほとんどは、実質的にはHTMLのタグと同じです。個々のパネルを生成する上で一番おもしろいことは、XSLT拡張機能を使って、変換の出力を別々のファイルにリダイレクトすることです。
ここでは、Apache XMLプロジェクトのXalanスタイル・シート・エンジンに付属のテキスト・リダイレクト拡張機能を使います。この拡張機能を使う前に、それを<xsl:stylesheet> 要素、つまりスタイル・シートのルート要素で宣言しなければなりません。
リスト8. スタイル・シートの拡張機能の定義
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
extension-element-prefixes="redirect">
|
この例で、org.apache.xalan.xslt.extensions.Redirect は、拡張機能をインプリメントするJavaクラスの名前で、redirect は、拡張機能を起動する場合に使用するネーム・スペースの接頭部です。拡張機能を宣言しておけば、それを使って変換出力を別々のファイルにリダイレクトすることができます。Redirect 拡張機能のすばらしい特徴は、XPath式を使ってファイル名を生成できることです。
リスト9. スタイル・シート拡張機能の起動
<redirect:write select="concat($fn, '-', $sectionNumber, '-', position(), '.html')">
<!-- other processing goes here -->
</redirect:write>
|
接頭部がxyz であるとすると、XPathのconcat 関数呼び出しにより、<tutorial> の5つ目の<section> の4つ目の<panel> に対しxyz-5-4.html というファイル名が生成されます (処理を簡潔にするため、<tutorial> タグのファイル名属性は変数fn に代入し、現在の<section> のposition() は変数sectionNumber に代入します)。XMLソース・ドキュメントの処理全体で、リンク点と参照を生成します。これで、ソース・ドキュメントが変更されても、参照は正確なままで、矛盾することがありません。
セクション索引を生成する場合は、所定の<section> 内のすべての<panel> を順番にリストしたHTMLファイルを作成します。すべてのパネル・タイトルの取得に、簡単な<xsl:for-each> ステートメントを使用します。ファイル名はすべて動的に生成するので、すべてのパネルへのハイパーリンクも作成できます。次に、この作業に使用するXSLTテンプレートの一部を抜粋します。
リスト10. セクション索引の生成
<ol>
<xsl:for-each select="panel">
<li>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat($fn, '-', $sectionNumber, '-', position(), '.html')"/>
</xsl:attribute>
<xsl:value-of select="title"/>
</a>
</li>
</xsl:for-each>
</ol>
|
前述の例では、ファイル名の生成に使ったconcat 関数呼び出しを使って、<a> タグのhref 属性の値を生成します。<a> タグの内側では、<xsl:value-of> 要素を使って、現在のパネルの<title> を取得します。
XMLドキュメントからXSL Formatting Objects (XSL-FO) ストリームへの変換も、かなり簡単です。印刷のレイアウトは、チュートリアルのグラフィックとテキストに、ページ番号、ヘッダー、フッターを組み合わせたものからなり、高品質の印刷出力が作成されます。
本稿の執筆時 (2001年5月) では、XSL-FO仕様は完成されていませんが、ApacheXMLプロジェクトのFOP (Formatting Objects to PDF) ツールで現在サポートされている、書式設定オブジェクトを使用することができます。次に、2つの段落を書式設定オブジェクトに変換した場合を示します。
リスト11. サンプルの書式設定オブジェクト
<fo:block font-size="8pt" line-height="10pt"
text-align-last="end" space-after.optimum="8pt">
page 1 of 14
</fo:block>
<fo:block font-size="16pt" line-height="19pt" font-weight="bold"
space-after.optimum="12pt">
Introduction to JavaServer Pages
</fo:block>
<fo:block space-after.optimum="6pt">
In today's environment, most Web sites want to display dynamic
content based on the user and the session. Most content, such
as images, text, and banner ads, is most easily built with
HTML editors. So we need to mix the "static" content of HTML
files with "directives" for accessing or generating dynamic
content.
</fo:block>
<fo:block space-after.optimum="6pt">
JavaServer Pages meet this need. They provide server-side
scripting support for generating Web pages with combined
static and dynamic content.
</fo:block>
|
どのようなチュートリアルでも、チュートリアルの特定の部分を強調するグラフィックを生成します。まず、タイトル・ページのマストヘッド・グラフィックのイメージを作成します。マストヘッドのテキストには、/tutorial/title 要素の内容を使います。たとえば、次のようなマークアップを作成したとします。
<tutorial> <title>Building tutorials with the Toot-O-Matic</title> |
このマークアップでは、次のようなmasthead.jpg ファイルが生成されます。
図10. 生成されたマストヘッド・グラフィック
このテキストを作成するには、<title> 要素のテキストをJPEGファイルに変換するJava拡張機能を使います。
リスト12. JPEG作成拡張機能の起動
<xsl:for-each select="/book/chapter">
<xsl:choose>
<xsl:when test="function-available('jpeg:createJPEG')">
<xsl:value-of
select="jpeg:createJPEG(title, 'bg.jpg',
concat('title', position(), '.jpg'),
'Swiss 721 Bold Condensed', 'BOLD', 22, 52, 35)"/>
<img>
<xsl:attribute name="src">
<xsl:value-of select="concat('title', position(), '.jpg')"/>
</xsl:attribute>
</img>
<br />
</xsl:when>
<xsl:otherwise>
<h1><xsl:value-of select="title"/></h1>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
|
最後の作業は、ZIPファイルそのものの生成です。これも、拡張機能を使って処理します。ここでも、ファイル命名規約が役立ちます。拡張機能にXMLソース・ファイルのルートを渡します。
リスト13. ZIPファイルの生成
<xsl:template match="tutorial" mode="build-zip-file">
<xsl:choose>
<xsl:when test="function-available('zip:buildZip')">
<xsl:value-of select="zip:buildZip(.)"/>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
Sorry, we can't build the zip file.
</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
|
buildZip 関数を呼び出す場合、渡さなければならないのはルート要素だけだったことに注意してください。buildZip 関数は、指定されたノード (ドキュメント・ノード) を受け取って、必要なファイルがすべて収められたZIPファイルの作成を試みます。ZIPファイルには、すべてのToot-O-Maticチュートリアルで使うリソースの標準リストの一部であるファイルと、チュートリアルが参照するリソース(JPEG、GIFなど) のファイルが含まれます。追加するHTMLファイルは、XMLソース・ファイルの構造によって決まります。チュートリアルが4つ以上のセクションに分かれていて、4つ目のセクションが8つのパネルからなり、ファイル名の接頭部がtom の場合、buildZip 関数は、ZIPアーカイブにtom-4-1.html、tom-4-2.html などのファイルを追加する必要があります。
Toot-O-Maticツールのこの説明では、1つのXMLファイルから生成できる幅広い出力を紹介しました。オリジナルのXMLドキュメントの構造により、普通のテキスト情報をさまざまな書式に変換でき、それらをまとめて利用することで、1つのコンテンツを、おもしろく役立つさまざまな方法で提供することができます。このツールを使うことで、開発プロセスは短期化、合理化され、チュートルアルを時間と労力をかけずに簡単に作成できるようになりました。何よりも良い点は、ここで紹介したことはすべて、オープン標準に基づいており、Java対応のどのプラットフォームでも動作することです。Toot-O-Maticツールを使えば、開発プロジェクトを複雑にしたり、余計なコストをかけたりすることなく、非常に貴重な結果を出すことができます。
- 『XSLTはどのような言語か』 (オープン・ソースのSaxon XSLTプロセッサーの作者であるMichael Kay著)では、言語としてXSLTを概説し、設計目標を紹介しています。サンプルのスタイル・シートが含まれています。
- Toot-O-Maticで使われているオープン・ソースのXSLTプロセッサーとXMLパーサーである、XalanとXercesの詳細については、Apache XMLプロジェクトのホーム・ページを直接参照してください。
-
XML開発活動に関する17の質問からなるアンケートにお答えください。IBM研究所におけるXML研究に反映させていただきます。
- IBMのWebSphere Application Server (WAS) がXML開発をどのようにサポートしているかについては、こちらのWASアドバンスド・エディション3.5オンライン・ヘルプにおけるXMLに関する技術的なバックグラウンド情報をご覧ください。
Doug Tidwell は、IBM のシニア・プログラマーで、サイバー・エバンジェリストでもあります。彼は 1/7 世紀以上のプログラミング経験を持ち、この数年間、XML 関連アプリケーションの開発に従事しています。彼のサイバー・エバンジェリストとしての作業は、基本的に忙しそうに見せることであり、またお客様が XML テクノロジーを評価し、インプリメントするのを手助けすることです。表面にジルコンをちりばめた特別設計のピンセットを使用して、彼は、バンダービルト大学でコンピューター・サイエンスの修士号を取得し、ジョージア大学で英文学士号を取得しました。彼のアドレスは、dtidwell@us.ibm.com です。