Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

XSLTとは? わかりやすく解説

エックス‐エス‐エル‐ティー【XSLT】

読み方:えっくすえすえるてぃー

extensible stylesheet language transformationsXML文書別の形式変換する規則記述する言語XSL仕様の一であり、HTMLCSVなどの形式変換することができる。XSL変換


XSLT 関数

導入

このPHP拡張モジュールは、APIに独立なXSLT変換を提供します。現在、 この拡張モジュールは、Ginger AllianceによるSablotronライブラリの みをサポートします。Xalanライブラリまたはlibxsltライブラリのよう な他のライブラリのサポートも計画されています。
XSLT (Extensible Stylesheet Language (XSL) Transformations) は、XMLドキュメントを他のXMLドキュメントに変換 する言語です。XSLTは、World Wide Web コンソーシアム (W3C) により 標準化されています。XSLTに関する情報と関連技術については、 » http://www.w3.org/TR/xslt から得ることができま す。
注意: この拡張は、PHP 4.1より前のバージョンPHPで配布されていた sablotron拡張モジュールとは異なっており、現在、PHP 4.1の新しい XSLT拡張モジュールのみがサポートされています。古い拡張モジュー ルのサポートが必要な場合は、PHPのメーリングリストに質問してください。
注意: この拡張モジュールは » PECL レポジトリに移動 されており、以下のバージョン以降 PHP にバンドルされなくなっています。 PHP 5.0.0.
注意: PHP5でxsltサポートを必要とする場合、 XSLエクステンションを使用することができます。

要件

このエクステンションは、Sabloton™および expat™ を使用します。これらは、共に » http://www.gingerall.org/sablotron.htmlから得ること が可能です。 実行バイナリがソースコードと同様に配布されています。

インストール手順

UNIXでは、オプション --enable-xslt --with-xslt-sablotを指定 してconfigure を実行します。ライブラリ Sablotron™ をコンパイラが見付けられる 場所にインストールする必要があります。
Sablotron™にリンクされているのと 同じライブラリとPHPがリンクされていることを確認してください。 設定オプション --with-expat-dir=DIR --with-iconv-dir=DIR は、これらの指定を行う際に有用です。 サポートに質問する際に、常にこれらのディレクティブや、他のバージョン のライブラリが使用するシステムのどこかにインストールされて いるかどうかについて述べるようにしてください。 普通は、全てのバージョン番号を知らせてください。

注意
Sablot ライブラリは -lstdc++ にリンクしていることに 注意してください。そうでないとコンフィギュアに失敗したり、 PHP が起動しない、あるいはロードされません。

JavaScript E-XSLTサポート: Sablotron™をJavaScriptサポートを付けてコ ンパイルした場合、オプション --with-sablot-js=DIRを指定する必 要があります。
Win32ユーザへの注意: このモジュールを Windows 環境で使用するには、 sablot.dll を PHP/Win32 バイナリパッケージの DLL フォルダから使用する Windows マシンの SYSTEM32 フォルダ (例: C:\WINNT\SYSTEM32 または C:\WINDOWS\SYSTEM32) へコピーする必要があります。 PHP <= 4.2.0 の場合、sablot.dllexpat.dllを SYSTEM32フォルダにコピーしてください。 PHP >= 4.2.1 の場合、sablot.dll, expat.dll, iconv.dll を SYSTEM32 フォルダにコピーしてください。

実行時設定

設定ディレクティブは定義されていません。

リソース型

リソース型は定義されていません。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
XSLT_OPT_SILENT (integer)
ログ出力とエラー報告を全てドロップします。 将来追加される全てのバックエンドについて共通のオプションです。
XSLT_SABOPT_PARSE_PUBLIC_ENTITIES (integer)
Sablotron™がpublicエンティティを パースするようにします。デフォルトではオフになっています。
XSLT_SABOPT_DISABLE_ADDING_META (integer)
HTML出力のときに "Content-Type" メタタグを追加しません。 Sablotron™のコンパイル時にデフォルト値が セットされます。
XSLT_SABOPT_DISABLE_STRIPPING (integer)
空白の除去を抑制します。(データファイルに対してのみ)
XSLT_SABOPT_IGNORE_DOC_NOT_FOUND (integer)
解決できない文章 (document() 関数) をリテラルでないものと見なします。
XSLT_SABOPT_FILES_TO_HANDLER (integer)
XSLT_ERR_UNSUPPORTED_SCHEME (integer)
スキームハンドラ のエラーをコードで返します。

目次

xslt_backend_info — バックエンドのコンパイル設定についての情報を返す
xslt_backend_name — バックエンドの名前を返す
xslt_backend_version — Sablotron のバージョン番号を返す
xslt_create — 新規のXSLTプロセッサを作成する
xslt_errno — カレントエラー番号を返す
xslt_error — カレントのエラー文字列を返す
xslt_free — XSLT プロセッサを開放する
xslt_getopt — XSL プロセッサのオプションを取得する
xslt_process — XSLデータを有する文字列によりXMLデータを変換する
xslt_set_base — 全てのXSLT変換用の基準URIを設定する
xslt_set_encoding — XMLドキュメントをパースするエンコーディングを設定する
xslt_set_error_handler — XSLTプロセッサ用のエラーハンドラを設定する
xslt_set_log — ログメッセージを書き込むためのログファイルを設定する
xslt_set_object — コールバック関数を解決するためのオブジェクトを設定する
xslt_set_sax_handler — XSLTプロセッサに SAX ハンドラを設定する
xslt_set_sax_handlers — XMLドキュメントを処理する際にコールされる SAX ハンドラを設定する
xslt_set_scheme_handler — XSLTプロセッサ用にスキーマハンドラを設定する
xslt_set_scheme_handlers — XSLTプロセッサに関するスキーマハンドラを設定する
xslt_setopt — 与えられた XSL プロセッサにオプションを設定する

XSL Transformations

(XSLT から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/14 07:00 UTC 版)

XSL Transformations
拡張子.xsl, .xslt
MIMEタイプapplication/xslt+xml[注釈 1][1]
開発者World Wide Web Consortium (W3C)
種別XML変換言語関数型言語
派生元XML
国際標準1.0 (Recommendation),

2.0 (Recommendation),

3.0 (Recommendation)
XML変換におけるXSLTの位置付け

XSL変換[2]: XSL TransformationsXSLT)は、W3Cにより標準化されたXML文書の変換用言語である。3つの仕様から成るXSLのうちの、ひとつの仕様である。XSLT の仕様はジェームズ・クラークを中心とした人々が設計した。XSLT と XSL-FO はDSSSLをもとにして設計された。

XSLT 1.0 は1999年11月23日にW3C勧告となり、2007年には JIS X 4169 としてJIS規格へ翻訳された。XSLT 2.0 は2007年1月23日に、3.0は2017年6月8日にW3C勧告となった。

XSLTはXML形式の文書を変換する。XPath による選択と検索にもとづき、XML文書全体または文書の一部に対して変換を行い、XML として出力する他、XML(整形式)ではないその他任意のテキスト形式としても出力できる。

例としては次のような応用がある。

  • 一定フォーマットのHTML用の、文書型宣言・ヘッダ情報の追加
  • テキストの移動
  • テキストのソート

変換の指定は関数型言語として見ることもでき、実のところチューリング完全であるため、コンピュータ・プログラムを書くようにしてどんな応用も可能である。裏返せば、その機能を十分に発揮させるためには利用者に通常のプログラミングと同様の能力と作業が必要であり、しばしばXMLに対して持たれている「プログラミングが不要」という期待を裏切るものではある。

変換の対象となるXML文書は木構造であり、XSLTによる変換は宣言的に指定される。つまり、XSLTプログラムは、変換をどう行うべきか指定する規則をいくつか集めたものからなり、この規則を再帰的に適用することによって変換を行う。

XSLT処理系はまずどの規則が適用できるかチェックし、優先順にもとづいて該当する変換を行う。

XSLTプログラムは、以下のようにXML文書の形式をとる。

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 ...
</xsl:stylesheet>

データ変換

XML 形式のデータを様々な形式のデータに変換できる。ここではその例を示す。

変換前のXML

<?xml version="1.0" ?>
<persons>
  <person username="JS1">
    <name>John</name>
    <family-name>Smith</family-name>
  </person>
  <person username="MI1">
    <name>Morka</name>
    <family-name>Ismincius</family-name>
  </person>
</persons>
変換後の形式 XSLTコード 変換結果
XML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/persons">
    <root>
      <xsl:apply-templates select="person"/>
    </root>
  </xsl:template>

  <xsl:template match="person">
    <name username="{@username}">
      <xsl:value-of select="name" />
    </name>
  </xsl:template>

</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <name username="JS1">John</name>
  <name username="MI1">Morka</name>
</root>
XHTML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="http://www.w3.org/1999/xhtml">

  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

  <xsl:template match="/persons">
    <html>
      <head> <title>Testing XML Example</title> </head>
      <body>
        <h1>Persons</h1>
        <ul>
          <xsl:apply-templates select="person">
            <xsl:sort select="family-name" />
          </xsl:apply-templates>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="person">
    <li>
      <xsl:value-of select="family-name"/><xsl:text>, </xsl:text><xsl:value-of select="name"/>
    </li>
  </xsl:template>

</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head> <title>Testing XML Example</title> </head>
  <body>
    <h1>Persons</h1>
      <ul>
        <li>Ismincius, Morka</li>
        <li>Smith, John</li>
      </ul>
  </body>
</html>
CSV
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text" encoding="UTF-8"/>

  <xsl:template match="/persons">
    <xsl:apply-templates select="person" />
  </xsl:template>

  <xsl:template match="person">
    <xsl:value-of select="@username" />
    <xsl:text>,</xsl:text>
    <xsl:apply-templates select="*" />
  </xsl:template>

  <xsl:template match="name">
    <xsl:value-of select="." />
    <xsl:text>,</xsl:text>
  </xsl:template>

  <xsl:template match="family-name">
    <xsl:value-of select="." />
    <xsl:text>&#10;</xsl:text>
  </xsl:template>

</xsl:stylesheet>
JS1,John,Smith
MI1,Morka,Ismincius

テンプレート関数

XSLT はテンプレートの関数を再帰的な形で定義ができる純粋関数型言語でもある。

下記のものはテンプレート関数 String_replaceAllである。これは、パラメーター this で指定した文字列中にある、パラメーター substring で指定した部分文字列をすべて、パラメーター replacement で指定する文字列に置換した文字列を返す関数。これの例から以下の点が分かる。

  • テンプレート関数の定義の仕方(xsl:templatexsl:param
  • 引数の値の参照の仕方($引数名
  • 条件分けの仕方(xsl:ifxsl:choose
  • XSLT関数(notcontainssubstring-beforesubstring-after
  • XSLT関数の使い方(<xsl:value-of select="XSLT関数 (引数...)" />
  • 定義されたテンプレート関数の呼び出し方(xsl:call-templatexsl:with-param:再帰呼び出しの箇所)
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="String_replaceAll">
  <!-- 引数 -->
  <xsl:param name="this" select="''" />
  <xsl:param name="substring" />
  <xsl:param name="replacement" />

  <xsl:if test="not ($this='')">
    <xsl:choose>
      <!-- this に substring が含まれる場合の値 -->
      <xsl:when test="contains ($this, $substring)">
        <xsl:value-of select="substring-before ($this, $substring)" />
        <xsl:copy-of select="$replacement" />
        <xsl:call-template name="String_replaceAll"> <!-- 再帰呼び出し -->
          <xsl:with-param name="this" select="substring-after ($this, $substring)" />
          <xsl:with-param name="substring" select="$substring" />
          <xsl:with-param name="replacement" select="$replacement" />
        </xsl:call-template>
      </xsl:when>

      <!-- そうでない場合の値 -->
      <xsl:otherwise>
        <xsl:value-of select="$this" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
</xsl:template>
</xsl:stylesheet>

メディア型

XSLTのメディア型は、「application/xslt+xml」としてIANAに登録されており[3]、「application/xslt+xml」または「application/xml」が望ましいMIMEタイプである[注釈 2]。しかし、Internet Explorerなど一部のユーザーエージェントには、これらのMIMEではXSLTを認識しないものや、「text/xsl」などの独自に定めたMIMEのみを認識するものも多い[4]

脚注

注釈

  1. ^ 上記#メディア型参照。
  2. ^ RFC 3023 は「application/xslt+xml」を推奨している。なお、「text/xml」は廃止予定。

出典

関連項目

外部リンク


XSLT

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/12/30 02:54 UTC 版)

XML変換言語」の記事における「XSLT」の解説

最も有名なXML変換言語。XSLT 1.0W3C勧告1999年XPath 1.0 と共に公開されそれ以降広く実装されている。XSLT 2.02007年1月W3C勧告となり、Saxon XSLT のように既にそれを実装したソフトウェア出回っている。

※この「XSLT」の解説は、「XML変換言語」の解説の一部です。
「XSLT」を含む「XML変換言語」の記事については、「XML変換言語」の概要を参照ください。

ウィキペディア小見出し辞書の「XSLT」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「XSLT」の関連用語

XSLTのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XSLTのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
拡張子辞典拡張子辞典
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【.xslt】の記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのXSL Transformations (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのXML変換言語 (改訂履歴)、ジェームズ・クラーク (ソフトウェア技術者) (改訂履歴)、ユニットテスト・フレームワーク一覧 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS