<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <code class="XSLTe"><var>xslt:</var>attribute</code> 要素型は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形</anchor>中で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性節</anchor>を生成するのに使います。
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xslt#element-attribute" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://www.w3.org/TR/xslt#element-attribute</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 属性:<table><tbody><tr><td><code class="XSLTa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">name</anchor></code></td><td>{<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">QName</anchor>}</td><td>(必須)</td><td>属性名</td></tr><tr><td><code class="XSLTa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">namespace</anchor></code></td><td>{<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URI参照</anchor>}</td><td>(<code class="XSLTa">name</code> 属性による)</td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前空間名</anchor></td></tr></tbody></table></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 属性名の決定は、
<code class="XSLTe"><var>xslt:</var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">element</anchor></code>
要素の場合とほぼ同じ手順で行われます。但し、<ul><li><code class="XSLTa">name</code> 属性の評価結果が接頭辞なしで、
<code class="XSLTa">namespace</code> 属性でも名前空間名がなしになる場合は
null 名前空間です。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">既定名前空間</anchor>ではありません。)</li><li><code class="XSLTa">name</code> 属性の評価結果が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">QName</anchor>
にならない場合だけでなく、丁度 <code class="XML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xmlns</anchor></code>
になった場合も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り</anchor>とし、報告するか、又は属性を追加しないことで誤りから回復しなければなりません。</li><li>名前空間接頭辞が <code class="XML">xmlns</code>
であった場合、結果木でも同じこの接頭辞にしてはいけません。<ul><li>例えば、 <samp class="XML">&lt;<var>xslt:</var>attribute name=&quot;xmlns:xslt&quot; namespace=&quot;whatever&quot;&gt;http://www.w3.org/1999/XSL/Transform&lt;/xsl:attribute&gt;</samp>
は誤りではありません。
しかし、結果木に <code class="XML">xmlns:xslt</code>
属性ができてはいけません。
例えば <samp class="XML">&lt;<var>element</var> <var>whatever</var>:xslt=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:<var>whatever</var>=&quot;whatever&quot;/&gt;</samp>
のような結果が得られるべきです。</li><li>それではこの例と同じで、但し <code>whatever</code>
の代わりに xmlns の名前空間 URI が指定されていたらどうかは仕様書には書かれていません。
XSLT 1.0 仕様書が xmlns の名前空間 URI が決定される以前に書かれたからでしょう。
単なる <code class="XML">xmlns</code> 属性と同様に誤りとするのが適当だと思われます。</li></ul></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 既に存在する名前の属性を追加しようとした場合、
後の方に置き換えられます。
例えば、<pre>&lt;element attr1=&quot;val1&quot;&gt;
  &lt;<var>xslt:</var>attribute name=&quot;attr1&quot;&gt;val2&lt;/<var>xslt:</var>attribute&gt;
  &lt;<var>xslt:</var>attribute name=&quot;attr2&quot;&gt;val3&lt;/<var>xslt:</var>attribute&gt;
  &lt;<var>xslt:</var>attribute name=&quot;attr2&quot;&gt;val4&lt;/<var>xslt:</var>attribute&gt;
&lt;/element&gt;</pre></p><p>なら結果木は<pre>&lt;element attr1=&quot;val2&quot; attr2=&quot;val4&quot;/&gt;</pre></p><p>になります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <ul><li>他の種類の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子節</anchor>が追加された後から属性節を追加しようとするとき、
それは誤りとします。<ul><li>例: ×<samp class="XSLT">&lt;template&gt;text&lt;attribute/&gt;&lt;/template&gt;</samp></li><li>誤りを報告するか、または追加しようとする属性節は追加せずに無視します。</li></ul></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素節</anchor>以外に属性節を追加しようとする時、
これは誤りとします。<ul><li>誤りを報告するか、または追加しようとする属性節は追加せずに無視します。</li></ul></li><li>属性節の内容の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値化</anchor>の過程で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文節</anchor>以外が生成されようとしたとき、
これを誤りとします。<ul><li>例: ×<samp>&lt;attribute&gt;attr val &lt;element/&gt; attr val&lt;/attribute&gt;</samp></li><li>誤りを報告するか、または追加しようとする属性節は追加せずに無視します。</li></ul></li></ul></p></body></html>