observer

observer

ev:listener 要素 observer 属性, ev:observer 大域属性(XML Events)

[1] XML事象の (listener 要素の) observer 属性は、 IDREF 型であり、 事象聴者が登録される要素 (観察器) の識別子を指定します。 <http://www.w3.org/TR/xml-events#attr-listener-observer>

[2] この属性が指定されていないときには、 観察器要素はその要素 (他の XML 事象属性が指定されている要素) 自体となります。 <http://www.w3.org/TR/xml-events#section-listener-observer>

但し、この属性だけでなく handler 属性も指定されていない時には、その要素は取扱器となり、 観察器はその親要素になります。 <http://www.w3.org/TR/xml-events#section-listener-handler>

例:

<ev:listener ev:event="foo" handler="#h" observer="o" />
<handler id="h">
  煮て焼く。
</handler>
<observer id="o">
  ...
</observer>

見てわかる通りの意味です。

<handler id="h">
  煮て焼く。
</handler>
<observer id="o" ev:event="foo" ev:handler="h">
  ...
</observer>

observer 要素を見た時、 handler 属性はあって observer 属性はないので、観察器は自分自身となります。

<observer id="o">
  <content>...</content>
  <handler id="h" ev:event="foo">
    煮て焼く。
  </handler>
</observer>

handler 要素を見た時、 handler 属性も observer 属性もないので、観察器は親要素、取扱器は自分自身となります。

メモ