XPath のコードインスペクション
このトピックでは、XPath で利用できるすべての JetBrains Rider コードインスペクション を一覧表示します。
エディター | インスペクション設定 | インスペクション重大度 | 他の言語 設定ページ  Ctrl+Alt+S で、特定のインスペクションを切り替えたり、その重要度レベルを変更できます。
インスペクション | 説明 | デフォルトの重大度 |
|---|
ハードコードされた名前空間接頭辞 | name() 関数とコロンを含む文字列(: )との比較を報告します。 このような使用箇所は通常、比較でハードコードされた名前空間接頭辞を示します。 その結果、同じ名前空間に別の接頭辞を使用する XML に対して実行すると、コードが壊れます。
例:
<xsl:if test="name() = 'xlink:href'">...<xsl:if>
| 警告
|
暗黙的な型変換 | 事前定義された XPath 型 STRING、 NUMBER、 BOOLEAN、 NODESET 間の暗黙的な変換を報告します。 型についてより表現力があり、微妙なバグを防ぐ XSLT スクリプトを作成できます。 例:
<xsl:if test="foo" />
は同じではありません
<xsl:if test="string(foo)" />
最初のテストでは、要素「foo」が存在するかどうかを確認します(count(foo) > 0) 。一方、後者はその要素に実際にテキストが含まれている場合にのみ真となります(string-length(foo) > 0)。 型変換をより明示的にすることを推奨します。 インスペクションを構成するには、次のオプションを使用します。 特定のタイプ間の暗黙的な変換を有効または無効にします <xsl:if test="number(foo)" /> など、実際に期待されるタイプにならない明示的なコンバージョンを常に報告してください
string-length() > 0 を書き込むためのショートカットとして string() 関数を使用して、 NODESET から BOOLEAN への変換を無視します。
| 警告
|
冗長な型変換 | 不要な型変換を報告します。 string()、 number()、 boolean() 関数の引数型が関数の戻り型とすでに同じである場合、または予期される式の型が any である場合、型変換は不要です。 不要な変換を削除することをお勧めします。 | 警告
|
不明な要素または属性の名前 | XPath 式で使用されているが、関連する XML ファイルにはなく、参照されているスキーマで定義されていない要素または属性の名前を報告します。 このような名前は型ミスの結果であることが多く、そうでない場合は実行時にのみ検出される可能性があります。 例:
<xsl:template match="h:txtarea" />
h が XHTML 名前空間にバインドされている場合、要素の正しい名前は「textarea」であるため、インスペクションは match 式のこの部分を不明な要素名として報告します。
| 警告
|
インデックスが 0 の XPath 述語 | 述語索引または関数 position() との比較で 0 の使用状況を報告します。 XPath では、インデックスは 0 では なく1 で始まるため、このような使用箇所はほとんどの場合バグです。 例:
//someelement[position() = 0]
または //something[0] | 警告
|
2026 年 6 月 12 日