#?SuikaWiki/0.9
* ev:listener 要素 observer 属性, ev:observer 大域属性(XML Events)

[1] [[XML事象]]の ([CODE(XMLe)[[[listener]]]]
要素の) [DFN[[CODE(XMLa)[observer]]]]
属性は、 [CODE(XML)[[[IDREF]]]] 型であり、
[[事象聴者]]が登録される要素
([DFN[観察器]]) の[[識別子]]を指定します。
<http://www.w3.org/TR/xml-events#attr-listener-observer>

[2] この属性が指定されていないときには、
観察器要素はその要素 (他の XML 事象属性が指定されている要素) 
自体となります。
<http://www.w3.org/TR/xml-events#section-listener-observer>

但し、この属性だけでなく [CODE(XMLa)[[[handler]]]]
属性も指定されていない時には、その要素は[[取扱器]]となり、
観察器はその[[親要素]]になります。
<http://www.w3.org/TR/xml-events#section-listener-handler>

例:

[PRE(XML)[
<ev:listener ev:event="foo" handler="#h" observer="o" />
<handler id="h">
  煮て焼く。
</handler>
<observer id="o">
  ...
</observer>
]PRE]

見てわかる通りの意味です。

[PRE(XML)[
<handler id="h">
  煮て焼く。
</handler>
<observer id="o" ev:event="foo" ev:handler="h">
  ...
</observer>
]PRE]

[SAMP(XMLe)[observer]] 要素を見た時、
[CODE(XMLa)[handler]] 属性はあって [CODE(XMLa)[observer]]
属性はないので、観察器は自分自身となります。

[PRE(XML)[
<observer id="o">
  <content>...</content>
  <handler id="h" ev:event="foo">
    煮て焼く。
  </handler>
</observer>
]PRE]

[SAMP(XMLe)[handler]] 要素を見た時、
[CODE(XMLa)[handler]] 属性も [CODE(XMLa)[observer]]
属性もないので、観察器は親要素、取扱器は自分自身となります。

[[#comment]]

* メモ