Jump to content
  • 0

XML Events


Bolmazov
 Share

Question

Что такое XML Events? Хотел бы разобраться. Пробывал курить мануал W3C по XML Events. Но он слишком тяжелый для меня - я такие не курю. А больше то инфы то и нет...

Вопрос: Может кто приведет реально работающий простенький код с XML Events (только не надо кидать ссылки на xForms, пожалуйста), что бы был там XML/XHTML и вот этот XML Events и только?

Edited by Bolmazov
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Не люблю оставлять открытых вопросов, поэтому я немножко покопался и кое к каким выводам пришел. Сразу оговорюсь, что я могу ошибаться и не правильно понять какие-то вещи. В любом случае хочу, что бы эта тема получила развитие, для более правильного понимания формата XML Events

Я перевел (худо-бедно) статью XML Events for HTML Authors

Выкладывать не стал только потому, что она большая в сравнении с комментариями.

Попробую коротко:

Рассмотрим этот простой пример HTML:

<input type="submit" onclick="verify(); return true;">

Здесь говорится о том, что если элемент <input> (или любой из его детей), получает событие click, то выполняется код связанный со значением атрибута onclick (т.е. выполняется verify(); return true;).

Мы говорим "или любой из его детей", потому что в случае, как этот

<a href="..." onclick="..."> <em>very</em>  nice place to go</a>

или

<a href="..." onclick="..."> <strong>More</strong> </a>

вы хотите, что бы onclick выполнялось, даже если на самом деле происходит, нажмите на элементах <em> или <strong>.

Итак, что получается, что требуются три важных элемента: события - event, наблюдатели - observer и какой-нибудь сценарий (называемый обработчик - handler).

XML Events определяет связь между событием, наблюдателем и обработчиком по-другому.

Следующие примеры эквивалентны:

<input type="submit" onclick="validate(); return true;">

То же самое с использованием XML Events:

<input type="submit"> 
<script ev:event="DOMActivate" type="text/javascript">
validate();
</script>
</input>

Здесь элемент <script> является обработчиком для события DOMActivate (который мы используем вместо click, потому что кнопка может быть активирован по-разному, причем не только кликом), и в отсутствие какой-либо другой информации, родитель является наблюдателем (в данном случае <input>).

Этот подход теперь позволяет задавать обработчики для разных языков:

<input type="submit"> 
<script ev:event="DOMActivate" type="text/javascript" >
...
</script>
<script ev:event="DOMActivate" type="text/vbs" >
...
</script>
</input>

и / или иные события:

<input type="submit"> 
<script ev:event="DOMActivate" type="text/javascript">
...
</script>
<script ev:event="DOMFocusIn" type="text/javascript">
...
</script>
</input>

Ну это коротко говоря...

Только проблема то в том, что я не знаю как это приминить, а точнее всё больше и больше склоняюсь к выводу, что это пока вообще нельзя реально применить, т.к. в самом низу можно прочесть следующее (...ну я так перевел, что...)

...в настоящее время не существует версии XHTML, которая поддерживает XML Events; XHTML2 находится в стадии подготовки. XForms использует XML Events (хотя и со своим собственным <action> элементом, а не <script>), другие языки, которые используют XML Events XHTML + Voice (также известной как X + V), и SVG 1.2 (также в рамках подготовки).

То есть по существу XForms - единственный формат который поддерживает XML Events и то только в рамках своих целей?!

И следующий код не будет работать

<!DOCTYPE  html PUBLIC "-//W3C//DTD XHTML 1.0//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xml:lang="en">
<head>
<title>XML events</title>
<style type="text/css">
div.n1{border: 5px solid blue;}
div.n2{border: 5px solid red;}
div.n3{border: 5px solid black;}
</style>

</head>
<body>
<div class="n1">
Это нижний DIV
<div class="n2">
Это серединный DIV
<div class="n3">
Это верхний DIV
<script ev:event="DOMActivate" type="text/javascript">
arlet("Ты понял как это работает?!");
</script>
</div>
</div>
</div>
</body>
</html>

не потому, что он в чем-то синтаксически не правильный, а просто потому, что XML Events пока что на прямую ни кем и ни чем не поддерживается?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy