#?SuikaWiki/0.9


* ev:listener 要素 handler 属性, ev:handler 属性 (XML 事象)

[1] [[XML事象]]の [DFN[[CODE(XMLa)[handler]] 属性]]は、
[[事象取扱器]]を指定します。[[属性値]]の型は
[[URI参照]]です。
[WEAK[([CODE(XMLa)[[[observer]]]] 属性や [CODE(XMLa)[[[target]]]] 属性は [CODE(XML)[[[IDREF]]]] であるのに注意。)]]

この属性が省略されたときには、その要素自身が事象取扱器となります。
[WEAK[(この属性が省略されているか否かは [CODE(XMLa)[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>

しかしながら、例示も含めて、どのような使用方法が想定されているのかは仕様書から読み取れます。

:[[HTML]] の [CODE(HTMLe)[[[script]]]] 要素のように、[[スクリプト]]で記述する:
[PRE(XML)[
<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>
]PRE]

:[[WML]] の [CODE(XMLe)[[[onevent]]]] 要素のように、宣言的マーク:
[PRE(XML)[
<image>
  <onevent ev:event="load">
    <loadImage src="image1"/>
  </onevent>
  <onevent ev:event="click">
    <loadImage src="image2"/>
  </onevent>
</image>
]PRE]

:あるいは「処理」ではないかもしれない:
[PRE(XML)[
<container>
  <ev:listener event="load">
    <image src="image1"/>
  <ev:listener>
  <ev:listener event="click">
    <image src="image2"/>
  <ev:listener>
</container>
]PRE]


[3]
この属性の値の型、 [[m12n]] 風の一覧表には
[Q[URI]] [WEAK[(m12n と同じ定義なら、 URI 参照を表す。)]] と、
本文の説明には [Q[URI reference]] と、 [[DTD]]
には [Q[%anyURI.datatype;]] (未定義の[[実体]]を[[参照]]) と、 
[[XML Schema]] には
[Q[xs:[[anyURI]]]] [WEAK[(つまり [[IRI参照]])]] 
と書かれているのですけど、一体どれを信用すればよいのやら。

仕様書中の記述から、[[素片識別子]]が扱えなければ話になりません。
だから URI 参照か IRI 参照のいずれかだと思うのですが、
どちらでしょうかねぇ。

[5] [CITE[Scripting – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/script.html#handler-attr>

[[属性値]]は [[RFC 3987]] [[IRI参照]]。


* memo

[11] 
[CITE[HTML3 Linking and Embedding Model]]

[9] [CITE[HTML3 Scripting Model]], [TIME[1999-02-04T17:41:21.000Z]], [TIME[2024-08-25T03:57:03.029Z]] <https://www.w3.org/TR/WD-script-960124.html>


[FIG(data)[ [284] [[HTML要素概説]]

:[F[要素名]]:[CODE[event]]
:日付:[TIME[1995-12-20]]
:説明:
[TIME[1995-12-20]]版
[CITE@en[HTML3 Linking and Embedding Model]]
に
[CODE[event]]
がある。
[CODE[insert]]
を初期化するため使う。
[SRC[>>12]]
[TIME[1996-01-24]]版 [[DTD]] に
[CODE[event]],
[CODE[script]]
の定義がある。
[SEE[>>13]]
詳細な説明はないが、
[[イベントハンドラー]]に当たるものだったと推測される。
:出典:
[REFS[

-
[12] 
[CITE@en[HTML3 Linking and Embedding Model]], 
[DATA(.author)[[[W3C]]]],
[DATA(.status)[Working Draft]],
[TIME(.published)[20-Dec-95][1995-12-20]],
[TIME[1999-02-04T17:57:09.000Z]], [TIME[2024-08-15T07:38:59.446Z]] <https://www.w3.org/TR/WD-insert-951220.html>

]REFS]
:注釈:
- [13] 
[TIME[1995-12-21]]版にはない。

]FIG]



[FIG(data)[ [216] [[HTML要素概説]]

:[F[要素名]]:[CODE[event]]
:日付:[TIME[1996-01-24]]
:説明:
[TIME[1996-01-24]]版
[CITE@en[HTML3 Scripting Model]]
に
[CODE[event]]
がある。
[CODE[insert]]
と組み合わせて[[イベントハンドラー]]を記述できる。
:出典:
[REFS[

-
[DFN[SCRIPT19960124]]:
[CITE@en[HTML3 Scripting Model]], 
[DATA(.author)[[[W3C]]]],
[DATA(.status)[[[Working Draft]]]],
[TIME(.published)[24-Jan-96][1996-01-24]],
[TIME[1999-02-04T17:41:21.000Z]], [TIME[2024-08-25T03:57:03.029Z]] <https://www.w3.org/TR/WD-script-960124.html>

]REFS]
:注釈:
-
[DFN[[CITE@en[HTML3 Scripting Model]]]]
[[HTML3]] 世代の仕様書の1つ。
後に [[HTML4]] に発展した。

]FIG]

[10] [[xHTML]]

-*-*-

[4] [CITE[Scripting – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/script.html#xmlevents>

[6] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#the-handler>

[7] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#event0>

[8] [CITE@en-US[XML Binding Language (XBL) 2.0]]
( ([TIME[2007-03-16 22:20:16 +09:00]] 版))
<http://www.w3.org/TR/2007/CR-xbl-20070316/#event3>