Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web/XSLT/Transforming_XML_with_XSLT/An_Overview を更新 #22827

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions files/ja/web/xslt/transforming_xml_with_xslt/an_overview/index.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
---
title: XSLT の概要
title: 概要
slug: Web/XSLT/Transforming_XML_with_XSLT/An_Overview
l10n:
sourceCommit: b74462b088bf7ee06f27038728a7f6ea39630ca3
---

{{XsltSidebar}}

Transforming XML with XSLT](/ja/docs/Web/XSLT/Transforming_XML_with_XSLT)
XSLT による XML の変換](/ja/docs/Web/XSLT/Transforming_XML_with_XSLT)

eXtensible Stylesheet Language/Transform は非常に強力な言語であり、この記事の全体的な議論はこの記事の範囲をはるかに超えていますが、基本的な概念の簡単な説明は Netscape の機能の説明の理解に役立ちます。

- XSLT スタイルシートは XML ドキュメントです
- XSLT スタイルシートは XML 文書です
- : 独自の特殊な構文を持つ CSS と異なり、XSLT スタイルシートは XML 文書であり、整形式を含むすべての XML 規則に準拠しなければなりません。したがって、変換のモデルは 1 つの XML 文書を使用して別の XML 文書を変換することです。
- XSLT スタイルシートには、標準の XSLT 見出しが含まれています。
- : XSLT スタイルシートの最も外側の要素は `<xsl:stylesheet>` 要素でなければなりません (受け入れ可能な代替要素は `<xsl:transform>` 要素です)。この要素には少なくとも 1 つの名前空間宣言と必須のバージョン属性が含まれます。他の名前空間と 3 つのオプションの属性も含めることができます。
Expand All @@ -21,25 +23,25 @@ eXtensible Stylesheet Language/Transform は非常に強力な言語であり、

- `<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">`
- : xmlns 擬似属性は、後続の文書全体で使用するために短縮名 xsl を完全な名前空間にマップします。したがって、上記の stylesheet 要素の前に `xsl:` が付いています。xsl は従来使用されていた短縮名 (接頭辞と呼ばれます) ですが必須ではなく、別の名前を選択することも可能です。この記事の例はすべて xsl 接頭辞の使用を前提としています。
- すべての XSLT 変換は、ドキュメントではなくツリーで実行されます
- すべての XSLT 変換は、文書ではなくツリーで実行されます

- : プロセッサと呼ばれる XSLT 変換エンジンは、ドキュメントでは直接動作しません。変換が行われる前に、プライマリ XML ドキュメントとスタイルシートドキュメントは、メモリ内のドキュメント構造の抽象的な表現を作成するパーサを介して実行する必要があります。ツリーと呼ばれるこの表現は、プロセッサによって実際に操作されるものです。ツリーは抽象データ型であり、パーサーとプロセッサに応じてさまざまな方法で実装できる概念モデルです。Netscape ではツリー構造として W3C DOM に似た構造を使用していますが、他のものも可能です。唯一の要件はツリー内のオブジェクトの配置、そのプロパティ、およびそれらの関係に関係します。
- : プロセッサーと呼ばれる XSLT 変換エンジンは、文書では直接動作しません。変換が行われる前に、プライマリ XML 文書とスタイルシート文書は、メモリー内の文書構造の抽象的な表現を作成するパーサーを介して実行する必要があります。ツリーと呼ばれるこの表現は、プロセッサーによって実際に操作されるものです。ツリーは抽象データ型であり、パーサーとプロセッサーに応じてさまざまな方法で実装できる概念モデルです。Netscape ではツリー構造として W3C DOM に似た構造を使用していますが、他のものも可能です。唯一の要件はツリー内のオブジェクトの配置、そのプロパティ、およびそれらの関係に関係します。

ツリーはノードの階層的なフレームワークで構成されています。単一のルートノード、要素ノード、テキストノード、属性ノード、コメントノード、処理命令ノード、および名前空間ノードの 7 つの異なるタイプのノードで構成できます。

ツリーの最上部にルートノードがあります。ルートノードは XML 文書の個々の部分に対応していません。文書全体を表します。ルートノードの下には要素、コメント、処理命令などの子要素があります。これらの子要素の中にはさらに子要素がいるものもあります。そして、これはいくつかのレベルのために続けることができます。たとえば、テキストノードには子を持たないなど、ノードの種類が発生する特定の制約があります。

プロセッサのアクションの結果もツリーです。Netscape はこのツリーを使用してブラウザウィンドウにコンテンツを表示します
プロセッサーのアクションの結果もツリーです。Netscape はこのツリーを使用してブラウザーウィンドウにコンテンツを表示します

- XSLT は、高水準の宣言型言語です。
- : 本質的に、XSLT スタイルシートはテンプレートと呼ばれる一連のルールであり、この特定のパターンに一致するノードはこの特定の方法で操作され、結果ツリーのこの特定の位置で終了することを宣言します。これがどのように達成されるかについての詳細は、プロセッサに委ねられています。スタイルシートの実行順序は保証できないため、XSLT は副作用を発生させる機能をサポートしていません。これは Lisp や Scheme のようなものです。
- : 本質的に、XSLT スタイルシートはテンプレートと呼ばれる一連のルールであり、この特定のパターンに一致するノードはこの特定の方法で操作され、結果ツリーのこの特定の位置で終了することを宣言します。これがどのように達成されるかについての詳細は、プロセッサーに委ねられています。スタイルシートの実行順序は保証できないため、XSLT は副作用を発生させる機能をサポートしていません。これは Lisp や Scheme のようなものです。
- ツリー上の場所は、別の W3C 勧告である XPath を使用して指定されます。
- : 変換はプロセッサがツリー上の個々のノードを特定できるかどうかに依存します。これを容易にするために、W3C は別の言語である XPath を使用することに決め、Xpath は XSLT コンテキスト外でも使用されています。その名前が示すように、XPath はプロセッサがツリーを通過して目的のノードに到達する「パス」を定義します。このパスは評価される XPath 特有の表現、一致される条件の数、ノードを関連付ける方法、および/またはツリー内の方向性の指示を含む式からなります。XSLT で最も一般的に使用される XPath の部分の詳細な説明は、参考セクションで説明します。
- : 変換はプロセッサーがツリー上の個々のノードを特定できるかどうかに依存します。これを容易にするために、W3C は別の言語である XPath を使用することに決め、XPath は XSLT コンテキスト外でも使用されています。その名前が示すように、XPath はプロセッサーがツリーを通過して目的のノードに到達する「パス」を定義します。このパスは評価される XPath 特有の表現、一致される条件の数、ノードを関連付ける方法、および/またはツリー内の方向性の指示を含む式からなります。XSLT で最も一般的に使用される XPath の部分の詳細な説明は、参考セクションで説明します。
- テンプレートマッチングの潜在的な競合は、一連のカスケード優先ルールを使用して解決されます。
- : 一般的に、より具体的なテンプレートルールはあまり具体的でないテンプレートルールよりも優先され、他のものは同等であるため、ドキュメントの後に表示されるテンプレートルールが先に表示されたものよりも優先されます
- : 一般的に、より具体的なテンプレートルールはあまり具体的でないテンプレートルールよりも優先され、他のものは同等であるため、文書の後に表示されるテンプレートルールが先に表示されたものよりも優先されます
- スタイルシートは、処理命令を介して XML 文書に添付することができます。
- : 特定の XML 文書を処理するためにどの XSLT スタイルシートを使用すべきかを示す最も簡単な方法は、XML 文書自体に処理命令を含めることです。 たとえば、スタイルシートが inventory.xsl と呼ばれ、xml ドキュメントと同じディレクトリにある場合、xml ドキュメントの処理命令は次のようになります
- : 特定の XML 文書を処理するためにどの XSLT スタイルシートを使用すべきかを示す最も簡単な方法は、XML 文書自体に処理命令を含めることです。 たとえば、スタイルシートが inventory.xsl と呼ばれ、XML 文書と同じディレクトリーにある場合、XML 文書の処理命令は次のようになります
- `<?xml-stylesheet type="text/xml" href="inventory.xsl"?>`
- : これは xml ドキュメントのプロローグセクションに配置する必要があります
- : これは XML 文書のプロローグセクションに配置する必要があります

XSLT と XPath の詳細については、この記事の最後にある[参考文献](/ja/docs/Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading)を参照してください。