XSLTファイルを書き直そうとしているが、一致パターンが何を対象としているのかわからない。
/ *がXMLドキュメントの最上位要素をターゲットにしていることは知っていますが、このパターンが何をするのかわかりません。これがラインです。
<xsl:key name="ids" match="//*" use="@xml:id"/>
XSLTファイルを書き直そうとしているが、一致パターンが何を対象としているのかわからない。
/ *がXMLドキュメントの最上位要素をターゲットにしていることは知っていますが、このパターンが何をするのかわかりません。これがラインです。
<xsl:key name="ids" match="//*" use="@xml:id"/>
式で使用//*
すると、select
ドキュメント全体のすべての要素ノードが選択されます。
match
式(テンプレートまたはキーの場合)では、先頭を使用しても意味がありません。どちら//
もまったく同じノード、つまりドキュメント内の任意の要素に一致するためです。match="//*"
match="*"
//
/descendant-or-self::node()/
は、のテキストの省略形にすぎません。//*
つまり/descendant-or-self::node()/*
、、またはドキュメントノードまたはその子孫の子である要素を意味します。