XSLTとXSL-FOの違いは何ですか?
私が読んだすべてのリソースは、それらが1であるかのように、または少なくとも非常に密接に結びついているように扱います。
答えやすいと思ったので、質問の根拠について疑問に思っていましたが、http://www.w3.org/TR/xsl/にアクセスするとすぐに、実際には良い質問であることが明らかになります -このページのほとんどの最初の部分は次のステートメントです。
この仕様は、スタイルシートを表現するための言語である Extensible Stylesheet Language (XSL) の機能と構文を定義します。これは次の 2 つの部分で構成されています。
- XML ドキュメントを変換するための言語 (XSLT)、および
- フォーマットのセマンティクスを指定するための XML ボキャブラリ。
しかし、現実の世界では、XSLT (XSL が XSL の意味であるとほとんどの人が想定しているものでもあります) は、XML ドキュメントを別のものに変換する手段です。 XML (ただし、XSLT を使用して XML を csv およびプレーン (っぽい) テキストにレンダリングしました)。
一方、XSL-FO は書式設定に関するものです。ページまたは一連のページのコンテンツをかなり厳密な方法でレイアウトすることに関するものです。複数のページにまたがるコンテンツを管理できるので便利です。ヘッダー、フッター、境界線、列などを含むページ (または偶数ページと奇数ページ) のフォーマットを比較的簡単に指定し、コンテンツをそこに流し込むことができます。 . したがって、たとえば XML 形式のデータのロードを取得し、XSLT を使用してそのデータを XSL-FO で構成されるドキュメントに変換します。XSL-FO は、適切なツールを使用してレンダリングされ、印刷またはその他の配布手段として PDF に変換されます。 .
私が持っているユースケースは、表形式のデータの山を取り、そのデータを XML としてエクスポートし、それを XSL-FO にレンダリングし、そこから PDF に変換して、PDF を 500 ページのディレクトリに変換するプリンターに送ることです。XSL-FO で、ページ番号、特定の状況での改ページ、目次とインデックス (それぞれが特定の要素に基づく) が必要であり、(PDF への) レンダリング プロセスがページ番号の入力を処理することを指定します。全面的に。
うまくいけば、あなたは今少し混乱していません..
頭字語の類似点を除けば、2 つのテクノロジは同じ W3C 仕様 (ドラフト形式) の一部でした。その後、XSL(XSL-fo) と XSLT を 2 つの別々の仕様に分割することが決定されました。
XSL-FO の正式名称は XSL です
なぜこの混乱?XSL-FO と XSL は同じものですか?
はい、そうですが、説明をさせていただきます。
スタイリングとは、情報の変換と書式設定の両方に関するものです。World Wide Web Consortium (W3C) が最初の XSL Working Draft を作成したとき、XML ドキュメントの変換と書式設定の両方の言語構文が含まれていました。
その後、W3C のワーキング グループは、元のドラフトを個別の推奨事項に分割しました。
* XSLT, a language for transforming XML documents * XSL or XSL-FO, a language for formatting XML documents * XPath, a language for navigating in XML documents
年表の詳細な注釈は、Dave Pawson のホームページにあります: http://www.dpawson.co.uk/xsl/sect1/history.html
XSLTは変換に使用され、XSL(XSL-FOと同じ)はフォーマットに使用されます。
ウィキペディアの定義はどうですか?
XSL Formatting Objects(XSL-FO)は、PDFの生成に最もよく使用されるXMLドキュメントフォーマットのマークアップ言語です。XSL-FOは、XMLデータの変換とフォーマット用に設計された一連のW3CテクノロジーであるXSLの一部です。XSLの他の部分は、XSLTとXPathです。2006年12月12日の時点で、XSL-FOの現在のバージョンはv1.1です。
w3schoolsチュートリアルサイト(w3.orgとは関係ありません)が言うように、これはかなり混乱する可能性があります
XSL-FO は正式に XSL と呼ばれるようになりました
つまり、XSL-FO と XSL は同じものですが、そうではありません!
XSL は、基本的に XML データを HTML ドキュメントに表現することです。XSL-FO は、ドキュメント自体のフォーマットに関するものです。たとえば、XML を Word 文書に変換したい場合、ページ番号を追加したり、余白やページ レイアウトを変更したり、ヘッダーとフッターを追加したりしたい場合があります。これらの項目は XSL FO タグを介してのみアドレス指定でき、XSLT にはアクセスする方法がありません。ドキュメント プロパティ。技術分野では、XML データが Word または PDF ドキュメントでレンダリングされるシナリオに遭遇する可能性が最も高くなります。ページ番号、レイアウト形式、ヘッダーなどが必要です。これらはドキュメントの非常に重要な部分です。
もう 1 つの大きな違いは、XSL と XSL FO のエンジンが異なることです。XSL は XSL-FO タグをレンダリングできません。この質問では、XSL FO に使用するエンジンについて説明します
典型的な XSL Fo tempate は、このように笑っています
<?xml version="1.0" encoding="ISO-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4">
<fo:region-body />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello W3Schools</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
XML データへの参照がないことに注意してください。ドキュメント自体をフォーマットすることがすべてです。これは、XML データを法律文書に変換する際に非常に重要な要素です。出力ドキュメントがpdfまたはwordの場合、ページャー番号、ドキュメント番号、レイアウトなどが必要になるためです。この情報がなければ、ページ番号やヘッダーなどを実装するのは非常に困難です。
XML データをプルするため、このドキュメントにはほぼ確実に XSL タグが含まれるため、混乱が生じます。ただし、XSL Fo エンジンがない場合、ドキュメントはレンダリングされません。
要するに、それらは似ていて一緒に機能しますが、同じものではありません。それらは異なるエンジンによってレンダリングされます。
XSL-FOはExtensibleStylesheetLanguage Formatting Objectsの略で、フォーマットに関するものであり、すべての混乱を避けるためにXSLとして知られています。したがって、XSL-FOについてはもう心配する必要はありません。
ただし、XSLTはxMLの変換に関するものです。ですから、それは非常に明確です。XSLはフォーマットに関するものであり、XSLTは変換に関するものです。
XSLTは、プレーンテキストドキュメントを含むあらゆる種類のドキュメントを生成するために使用できるテンプレート形式です。
XSL-FOは、FOドキュメントを作成するためのXSLTの使用を示します。