Skip to content

Web/XML/XSLT/Guides 以下の記事を更新 #26832

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

Merged
merged 6 commits into from
Apr 20, 2025
Merged
Show file tree
Hide file tree
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
17 changes: 8 additions & 9 deletions files/ja/web/xml/xslt/guides/common_errors/index.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
---
title: 一般的な XSLT エラー
slug: Web/XML/XSLT/Guides/Common_errors
original_slug: Web/XSLT/Guides/Common_errors
l10n:
sourceCommit: 3e1b5277c6451e7d27ab628f23fb9702947a7a7b
---

{{XsltSidebar}}

### MIME タイプ

サーバーは、XML mime タイプの`text/xml`または`application/xml`のソースとスタイルシートの両方を送信する必要があります。 現在のタイプを調べるには、Mozilla でファイルを読み込み、ページ情報を見てください。 または、ダウンロードツールを使用してください。これらのツールは通常、MIME タイプを示します。
サーバーは、 XML mime タイプの `text/xml` または `application/xml` のソースとスタイルシートの両方を送信する必要があります。 現在のタイプを調べるには、 Mozilla でファイルを読み込み、ページ情報を見てください。 または、ダウンロードツールを使用してください。これらのツールは通常、MIME タイプを示します。

Firefox 6 以降では、公式の XSLT mimetype である `application/xslt+xml`を使用することもできます。
Firefox 6 以降では、公式の XSLT mimetype である `application/xslt+xml` を使用することもできます。

### 名前空間

XSLT 1.0 の名前空間は[`http://www.w3.org/1999/XSL/Transform`](https://www.w3.org/1999/XSL/Transform)です。IE の古いバージョンでは、異なる名前空間が使用されていました。 しかしこれらのバージョンでは、最終的に XSLT 1.0 仕様となったものと互換性のない XSLT のドラフト版も使用されていました。Firefox は公式の XSLT 1.0 バージョンのみをサポートしています
XSLT 1.0 の名前空間は [`http://www.w3.org/1999/XSL/Transform`](https://www.w3.org/1999/XSL/Transform) です。 IE の古いバージョンでは、異なる名前空間が使用されていました。 しかしこれらのバージョンでは、最終的に XSLT 1.0 仕様となったものと互換性のない XSLT のドラフト版も使用されていました。 Firefox は公式の XSLT 1.0 バージョンのみに対応しています

### 不足している機能

XSLT 1.0 仕様には、Firefox が残念ながらサポートしていない機能がいくつかあります。具体的には:
XSLT 1.0 仕様には、Firefox が残念ながらサポートしていない機能がいくつかあります。具体的には次の通りです。

- XPath 式の`namespace::` 軸。これをサポートすることは将来的に可能になりそうです
- `disable-output-escaping`属性。この機能は構築された出力ドキュメントのシリアル化の仕組みを制御します。しかし、Firefox は出力ドキュメントをシリアル化しないので、属性は実際には適用されません。 `disable-output-escaping`を適用した出力ドキュメントの一部だけをシリアライズして再解析するためのヒューリスティックを追加しようとする可能性がありますが、ヒューリスティックはしばしば間違った結果を招き、これまでこれを追加することを躊躇してきました。スタイルシートに`<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>`のようなコードが含まれていることがよくあります。これはスタイルシートを入れるだけで、すべての XSLT エンジンでうまく動作します。私たちは、`disable-output-escaping`の欠如が問題であることを認識しています。私たちはそれに対する解決策を見いだしたいと思いますが、これまでのところ、良い解決策は見つかりませんでした。
- XPath 式の `namespace::` 軸。これに対応することは将来的に可能になりそうです。
- `disable-output-escaping` 属性。この機能は構築された出力文書のシリアライズの仕組みを制御します。しかし、 Firefox は出力文書をシリアライズしないので、属性は実際には適用されません。 `disable-output-escaping`を適用した出力文書の一部だけをシリアライズして再解析するためのヒューリスティックを追加しようとする可能性がありますが、ヒューリスティックはしばしば間違った結果を招き、これまでこれを追加することを躊躇してきました。スタイルシートに `<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>` のようなコードが含まれていることがよくあります。これはスタイルシートを入れるだけで、すべての XSLT エンジンでうまく動作します。私たちは、 `disable-output-escaping` の欠如が問題であることを認識しています。私たちはそれに対する解決策を見いだしたいと思いますが、これまでのところ、良い解決策は見つかりませんでした。
- `<xsl:namespace-alias>` 要素

上記の機能のいずれかを手助けしたい場合は、大いに助けてください。
15 changes: 15 additions & 0 deletions files/ja/web/xml/xslt/guides/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: XSLT ガイド
short-title: ガイド
slug: Web/XML/XSLT/Guides
l10n:
sourceCommit: 3e1b5277c6451e7d27ab628f23fb9702947a7a7b
---

このページでは、ウェブ上での XSLT の使い方のガイドを紹介します。

{{SubPagesWithSummaries}}

## 関連情報

- [XSLT: 拡張可能なスタイルシートの言語変換](/ja/docs/Web/XML/XSLT)
35 changes: 16 additions & 19 deletions files/ja/web/xml/xslt/guides/pi_parameters/index.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
---
title: PI パラメーター
title: PI の引数
slug: Web/XML/XSLT/Guides/PI_Parameters
original_slug: Web/XSLT/Guides/PI_Parameters
l10n:
sourceCommit: 9f325923caffac2d0239773d4562303fd02ea30a
sourceCommit: 3e1b5277c6451e7d27ab628f23fb9702947a7a7b
---

{{XsltSidebar}}

### 概要

XSLT は実行時にパラメーターをスタイルシートに渡すという概念に対応しています。これにより当面は JavaScript で {{domxref("XSLTProcessor")}} を使用することが可能です。しかし、 `<?xml-stylesheet?>` 処理命令 (PI) を使用するときは、パラメーターを提供する方法がありませんでした
XSLT は実行時に引数をスタイルシートに渡すという概念に対応しています。これにより当面は JavaScript で {{domxref("XSLTProcessor")}} を使用することが可能です。しかし、 `<?xml-stylesheet?>` 処理命令 (PI) を使用するときは、引数を提供する方法がありませんでした

これを解決するために 2 つの新しい PI 、つまり `<?xslt-param?>` および `<?xslt-param-namespace?>` が [Firefox 2](/ja/docs/Mozilla/Firefox/Releases/2)(詳細については[対応バージョン](#対応バージョン)を参照)で実装されています。どちらの PI にも、`xml-stylesheet` PI と同じ方法で「擬似属性」を含めることができます。

次のドキュメントは "color" と "size" の 2 つのパラメーターをスタイルシート "style.xsl" に渡します。
次のドキュメントは "color" と "size" の 2 つの引数をスタイルシート "style.xsl" に渡します。

```xml
<?xslt-param name="color" value="blue"?>
Expand All @@ -30,52 +27,52 @@ XSLT は実行時にパラメーターをスタイルシートに渡すという

`xslt-param` と `xslt-param-namespace` PI の両方はドキュメントのプロローグ、つまり最初の要素タグの前になければなりません。プロローグ内のすべての PI は、`xml-stylesheet` PI の前後に発生する必要があります。

複数の `xml-stylesheet` PI がある場合、パラメーターはすべてのスタイルシートに適用され、その結果すべてのスタイルシートが XSLT 仕様に従って単一のスタイルシートにインポートされます。複数の `xml-stylesheet` XSLT PI は現在 Firefox では対応していません。
複数の `xml-stylesheet` PI がある場合、引数はすべてのスタイルシートに適用され、その結果すべてのスタイルシートが XSLT 仕様に従って単一のスタイルシートにインポートされます。複数の `xml-stylesheet` XSLT PI は現在 Firefox では対応していません。

#### xslt-param

`xslt-param` PI は 4 つの属性をサポートしています。

- `name`
- : パラメーター名のローカル名部分。属性の構文チェックは行われませんが、有効な [NCName](https://www.w3.org/TR/REC-xml-names/#NT-NCName) でない場合は、スタイルシートのどのパラメーターにも一致しません
- : 引数名のローカル名部分。属性の構文チェックは行われませんが、有効な [NCName](https://www.w3.org/TR/REC-xml-names/#NT-NCName) でない場合は、スタイルシートのどの引数にも一致しません
- `namespace`
- : パラメーター名の名前空間。属性の構文チェックは行われません。
- : 引数名の名前空間。属性の構文チェックは行われません。
- `value`
- : パラメーターの文字列値を格納します。属性の値はパラメーターの値として使用されます。データ型は常に最適です。
- : 引数の文字列値を格納します。属性の値は引数の値として使用されます。データ型は常に最適です。
- `select`
- : パラメーターの [XPath](/ja/docs/Web/XML/XPath) 式。属性の値は XPath 式として解析されます。式を評価した結果はパラメーターの値として使用されます
- : 引数の [XPath](/ja/docs/Web/XML/XPath) 式。属性の値は XPath 式として解析されます。式を評価した結果は引数の値として使用されます

`name` 属性がないか空の場合、PI は無視されます。

`namespace` 属性がないか空の場合、null 名前空間が使用されます。

スタイルシートに存在しない (またはスタイルシート内の変数である) パラメーター名を指定するのはエラーではありません。PI は単に無視されます。
スタイルシートに存在しない (またはスタイルシート内の変数である) 引数名を指定するのはエラーではありません。PI は単に無視されます。

`value` と `select` の両方が存在する場合、または `value` も `select` も存在しない場合、PI は無視されます。

`value="..."` はアポストロフィと引用文字の両方を含むことができるので、厳密には `select="'...'"` と等しくないことに注意してください。

##### 例

パラメーター 'color' を文字列 'red' に設定します。
引数 'color' を文字列 'red' に設定します。

```xml
<?xslt-param name="color" value="red"?>
```

パラメーター 'columns' を 2 に設定します。
引数 'columns' を 2 に設定します。

```xml
<?xslt-param name="columns" select="2"?>
```

パラメーター 'books' を null 名前空間のすべての `<book>` 要素を含むノードセットに設定します
引数 'books' を null 名前空間のすべての `<book>` 要素を含むノード集合に設定します

```xml
<?xslt-param name="books" select="//book"?>
```

パラメーター 'show-toc' を真偽値 `true` に設定します。
引数 'show-toc' を真偽値 `true` に設定します。

```xml
<?xslt-param name="show-toc" select="true()"?>
Expand Down Expand Up @@ -113,7 +110,7 @@ XSLT は実行時にパラメーターをスタイルシートに渡すという

##### 例

パラメーター 'books' を 'http\://www\.example.org/myNamespace' 名前空間のすべての `<book>` 要素を含むノードセットに設定します
引数 'books' を `http://www.example.org/myNamespace` 名前空間のすべての `<book>` 要素を含むノード集合に設定します

```xml
<?xslt-param-namespace prefix="my" namespace="http://www.example.org/myNamespace"?>
Expand All @@ -128,4 +125,4 @@ Firefox 2.0.0.1 以降で対応しています。**value** 属性は Firefox 2

式に XSLT 関数を許可する必要がありますか? `document()` は役に立ちそうですが、`generate-id()` が同じ文書に対して同じ文字列を生成しなければならない不変条件を維持するのは難しいようです。

XSLT スタイルシートで URL パラメーターをクエリーするとどうなりますか? 例えば、それらを指定された \<xsl:param>に渡します。
XSLT スタイルシートで URL 引数をクエリーするとどうなりますか? 例えば、それらを指定された \<xsl:param> に渡します。
Loading