handler

handler

ev:listener 要素 handler 属性, ev:handler 属性 (XML 事象)

[1] XML事象handler 属性は、 事象取扱器を指定します。属性値の型は URI参照です。 (observer 属性や target 属性は IDREF であるのに注意。)

この属性が省略されたときには、その要素自身が事象取扱器となります。 (この属性が省略されているか否かは observer 属性の既定値にも影響します。) <http://www.w3.org/TR/xml-events#section-listener-handler>

仕様書: <http://www.w3.org/TR/xml-events#attr-listener-handler>

[2] XML 事象の仕様では、事象取扱器がどの様な形態であるかは特に規定していません。 <http://www.w3.org/TR/xml-events#section-eventhandlers>

しかしながら、例示も含めて、どのような使用方法が想定されているのかは仕様書から読み取れます。

HTMLscript 要素のように、スクリプトで記述する
<image id="image">
  <script type="application/x-javascript" ev:event="load">
    document.getElementById ('image').src = 'image1';
  </script>
  <script type="application/x-javascript" ev:event="click">
    document.getElementById ('image').src = 'image2';
  </script>
</image>
WMLonevent 要素のように、宣言的マーク
<image>
  <onevent ev:event="load">
    <loadImage src="image1"/>
  </onevent>
  <onevent ev:event="click">
    <loadImage src="image2"/>
  </onevent>
</image>
あるいは「処理」ではないかもしれない
<container>
  <ev:listener event="load">
    <image src="image1"/>
  <ev:listener>
  <ev:listener event="click">
    <image src="image2"/>
  <ev:listener>
</container>

[3] この属性の値の型、 m12n 風の一覧表には URI (m12n と同じ定義なら、 URI 参照を表す。) と、 本文の説明には URI reference と、 DTD には %anyURI.datatype; (未定義の実体参照) と、 XML Schema には xs:anyURI (つまり IRI参照) と書かれているのですけど、一体どれを信用すればよいのやら。

仕様書中の記述から、素片識別子が扱えなければ話になりません。 だから URI 参照か IRI 参照のいずれかだと思うのですが、 どちらでしょうかねぇ。

[5] Scripting – SVG Tiny 1.2 ( 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/script.html#handler-attr>

属性値RFC 3987 IRI参照

memo

[4] Scripting – SVG Tiny 1.2 ( 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/script.html#xmlevents>

[6] XML Binding Language (XBL) 2.0 ( ( 版)) <http://www.w3.org/TR/2007/CR-xbl-20070316/#the-handler>

[7] XML Binding Language (XBL) 2.0 ( ( 版)) <http://www.w3.org/TR/2007/CR-xbl-20070316/#event0>

[8] XML Binding Language (XBL) 2.0 ( ( 版)) <http://www.w3.org/TR/2007/CR-xbl-20070316/#event3>