XSL ファイル形式とは?
.xsl ファイルは XSLT スタイルシートであり、XSLT 言語で記述された変換ルールを含むプレーンテキストの XML ドキュメント です。XSLT (Extensible Stylesheet Language Transformations) は 1999 年 11 月に W3C によって標準化されました。現在のバージョンである XSLT 3.0 は 2017 年に登場しました。スタイルシートはデータそのものでも完成したドキュメントでもありません。これは XSLT プロセッサが入力 XML ファイルに適用して、HTML、プレーンテキスト、または別の XML 出力を生成するためのプログラムです。
.xsl ファイル内では、ルート要素は <xsl:stylesheet> または <xsl:transform> であり、名前空間 http://www.w3.org/1999/XSL/Transform で宣言されます。テンプレートルール (<xsl:template match="...">) がソースツリーからノードを選択し、<xsl:value-of>、<xsl:for-each>、<xsl:apply-templates> などの出力命令が結果を構築します。ルート要素の version 属性(1.0、2.0、または 3.0)は、プロセッサが適用すべき言語レベルを指示します。
.xsl と .xslt は同じ種類のファイルを指します。.xsl は XSLT 1.0 時代の古い綴りであり、.xslt は XSLT 2.0 および 3.0 でより一般的になりました。歴史的に .xsl 拡張子は、現在は .fo ファイルに関連付けられている XSL ファミリーの別個の枝である XSL-FO (PDF 出力用のフォーマットオブジェクト) もカバーしていました。
一般的な用途には、XML データフィードを読み取り可能な Web ページに変換すること、異なるスキーマ間で設定ファイルを変換すること、Apache FOP などの XSL-FO プロセッサを介して PDF を生成することなどがあります。
セキュリティと安全性
リスク: LOW.xsl はプレーンテキストの XML であり、コンパイルされたコードは含まれていないため、読み取りや編集は安全です。現実的なリスクは、信頼できないスタイルシートや入力を実行する際の「プロセッサ」側にあります。XSLT 2.0/3.0 や一部の拡張機能は、ファイルの読み書きやネットワークコール (document(), unparsed-text(), 拡張関数) を行うことができ、XML 処理は XXE(外部実体参照)攻撃を受ける可能性があります。そのため、拡張機能や外部実体が有効な状態で、信頼できないソースからのスタイルシートを実行しないでください。エンドユーザーが単に .xsl を開いて読むだけであれば、危険はありません。
形式の詳細
概要XSL ファイルを開くプログラム
技術的詳細
詳細仕様| MIME タイプ | application/xslt+xml (text/xsl, application/xml, text/xml も許容されます) |
| ファイルのエンコーディング | デフォルトは UTF-8。UTF-16 およびその他の XML 宣言されたエンコーディングが許可されます。XML 宣言の前に UTF-8 BOM (EF BB BF) が付く場合があります |
| コンテナ形式 | 整形式 (Well-formed) XML ドキュメント |
| ルート要素 | 名前空間 http://www.w3.org/1999/XSL/Transform 内の <xsl:stylesheet> または <xsl:transform> |
| バージョンの通知 | ルート要素の version 属性 (1.0, 2.0, 3.0) - プロセッサが適用する XSLT 言語レベルを選択します |
| ファイルシグネチャ (マジックバイト) | オフセット 0 に 3C 3F 78 6D 6C («<?xml»)。確定的な識別には、固定のマジックナンバーではなく、XSLT ルート要素と名前空間が必要です |
| 一般的なファイルサイズ | 1 KB - 200 KB。大規模なエンタープライズ向けスタイルシートはこれより大きくなる場合があります |
| 出力モード | HTML, XHTML, プレーンテキスト, または XML - スタイルシート内の <xsl:output method="..."> 宣言によって選択されます |
| 主要な命令要素 | <xsl:template>, <xsl:apply-templates>, <xsl:for-each>, <xsl:value-of>, <xsl:if>, <xsl:choose>, <xsl:call-template> |
| XPath への依存 | ノードのアドレス指定と選択に XPath 式を使用:XSLT 1.0 では XPath 1.0、XSLT 2.0 では XPath 2.0、XSLT 3.0 では XPath 3.1 |
| 名前空間 URI | http://www.w3.org/1999/XSL/Transform (慣習的に接頭辞 xsl: にバインドされます) |
| 圧縮 | 組み込みのものはありません。プレーンテキストであり、HTTP 転送レベルで gzip 圧縮される場合があります |
| プロセッサのサポート | xsltproc (libxslt), Saxon (2.0/3.0), Xalan-C/J, MSXML, .NET XslCompiledTransform, 組み込みブラウザエンジン (XSLT 1.0) |
| プラットフォームのサポート | クロスプラットフォーム:Windows, macOS, Linux、および準拠する XSLT プロセッサを備えたあらゆる環境 |
| 標準化団体 | W3C (World Wide Web Consortium) |
| リリース日 | 1999 (XSLT 1.0, W3C Recommendation, November 16, 1999) |
| 最新バージョン | XSLT 3.0 (W3C Recommendation, June 8, 2017) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.w3.org |
XSL の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。XSL ファイルについて最初の質問をしてみましょう。
よくある質問
XSL ファイルとは何ですか?
XSL ファイルを開くにはどうすればよいですか?
XSL と XSLT の違いは何ですか?
XSL ファイルを使用して XML を HTML に変換するにはどうすればよいですか?
XSL と XSD の違いは何ですか?
なぜ XSL スタイルシートが正しい出力を生成しないのですか?
<xsl:template match> が期待したノードを選択していない、名前空間が宣言されていない、または version 属性がプロセッサと一致していない可能性があります。XMLSpy、oXygen、または VS Code で XPath をテストし、入力の名前空間を確認してください。