4

卒業論文のために、XSLT を使用して XML データを HTML に変換しようとしています。

私の教授は、私に XSL-FO も検討するか、少なくともそれについて何か書いてほしいと言っています。しかし、私はこれに非常に慣れていません。

だから私の質問は:

FO と HTML を組み合わせることはできますか? HTML と CSS の代わりに FO を使用できますか? はいの場合、ブラウザはこれをどのようにレンダリングしますか? FO を使用して xml を Web ページに変換する方法に関する例/チュートリアルはありますか?

4

2 に答える 2

8

XSLT から XSL-FO と XHTML を生成することは、必ずしも二者択一ではありません。

XSL-FOは、一般的に PDF の生成に使用されます。そのためには、 FOPRenderXAntenna HouseIBexなどのXSL-FO エンジンが必要になります。ただし、 XSL-FOXHTMLに変換してから、ブラウザーでレンダリングすることができます。

一般に、XSLT でXSL-FOを作成してからXHTMLに変換する(XHTML を直接生成するだけ)という面倒な作業を行う価値はありません。

**XSL-FOXHTMLの両方を同時に作成することが可能であり、スタイルシートの 2 つの完全なセットを維持することなく、異なるボキャブラリーで同様の出力を作成することができます**。

いずれかの形式を選択したり、2 つの明確に異なる (しかし類似した) スタイルシート ライブラリを維持したりする必要はなく、メインのスタイルシート ライブラリを作成してXSL-FOまたはXHTMLを生成し、2 番目の変換を使用して XSL から変換することができます。 FO から XHTMLへ、およびその逆。これを行うために利用できる既存の XSLT スタイルシートがあります。

以前、私はXSL-FOスタイルシートを開発し、 Render-X FO2HTML スタイルシートを使用してXSL-FO XHTML出力に変換しました。<block>要素を、<div>などに 変換します。<inline><span>

私は以前にそれらを使用したことはありませんが、HTML2FO スタイルシートを使用して、 XHTML出力をXSL-FOに変換することもできます。

特別な設定をしなくても、 1 つの特定の出力形式専用の 1 つの XSLT ライブラリを維持しながら、両方の形式で驚くほど類似した出力を得ることができます。

出力をわずかにカスタマイズする必要がある場合 (たとえば、XHTMLの異なるヘッダー コンテンツ) は、変換スタイルシートをインポート/拡張し、異なるコンテンツ用の適切なテンプレートをオーバーライドするだけです。これにより、保守がはるかに簡単になるため、本質的に同じ情報で複数のスタイルシート セットを更新することを心配する必要がなくなります。

于 2010-05-01T00:32:14.133 に答える
5

XSL-FO は PDF 表示専用です (これは厳密には正しくありませんが、ガイドラインとして使用できます)。したがって、HTML 出力と FO 出力は関係ありません。XML ソースから、XSLT を使用して XHTMLまたはXSL-FO を生成できますが、両方を同時に生成することはできません。

たとえば、DocBook を参照してください。すぐに使用できるいくつかの XSLT スタイルシートが付属しており、1 つは HTML 出力用で、もう 1 つは PDF (Apache Fop 経由) 用です。結果に満足している場合は、別の質問になる可能性があります。

于 2010-04-30T11:55:26.433 に答える