Die einzige normative Version ist die englische Version unter:
http://www.w3.org/TR/2003/REC-xml-events-20031014
Diese Übersetzung ist zu finden unter:
http://www.schumacher-netz.de/TR/2003/REC-xml-events-20031014-de.html
Diese Übersetzung kann Fehler enthalten. Kommentare oder Korrekturvorschläge zu dieser deutschen Übersetzung senden Sie dem Übersetzer bitte per Email.
Weitere Übersetzungen zum Thema HTML und XML finden Sie auf Schumacher-Netz.de, unter edition-w3c (Buchprojekt von Stefan Mintert) oder direkt beim W3C (http://www.w3.org/Consortium/Translation/).
Übersetzer: Stefan Schumacher ([email protected])
Urheberrecht
Bitte konsultieren Sie die Errata für dieses Dokument, die eventuell normative Korrekturen enthalten können.
Dieses Dokument ist ebenso in diesen nicht normativen Formaten erhältlich: PostScript-Version, PDF-Version, ZIP-Archiv und Gezipptes TAR-Archiv.
Die englische Version dieser Spezifikation ist die einzige normative Version . Nicht normative Übersetzungen können ebenfalls verfügbar sein.
Copyright © 2003 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
div
in einem eigenen Kasten oder im Text
unterlegt mit der gleichen Hintergrundfarbe.Das in dieser Spezifikation definierte XML-Ereignismodul bietet XML-Sprachen die Möglichkeit, Ereignis-Listener und diesbezügliche Ereignis-Handler mit Ereignisschnittstellen des Document Object Model (DOM) Level 2 einheitlich zu verbinden [DOM2EVENTS]. Als Ergebnis erhält man einen interoperablen Weg, ein bestimmtes Verhalten mit Dokument-Markup zu verknüpfen.
Dieser Abschnitt beschreibt den Status dieses Dokuments zur Zeit seiner Veröffentlichung. Andere Dokumente können dieses Dokument eventuell ablösen. Eine Liste der aktuellen W3C-Publikationen und die aktuelle Revision dieses technischen Berichts können im Index der technischen Berichte des W3C unter http://www.w3.org/TR/ gefunden werden.
Dieses Dokument ist eine Empfehlung des W3C. Es wurde von W3C-Mitgliedern und interessierten Gruppen überprüft und vom Direktor als W3C-Empfehlung anerkannt. Es ist ein stabiles Dokument und kann als Referenzmaterial verwendet werden oder von einem anderen Dokument als normative Referenz zitiert werden. Die Intention des W3C bei der Erstellung der Empfehlung ist, Aufmerksamkeit auf diese Spezifikation zu lenken und ihre weitläufige Verbreitung zu fördern. Dies verbessert die Funktionalität und die Interoperabilität des Webs. Eine Test-Suite für XML-Ereignissse wurde als Teil der öffentlichen XForms 1.0 Test Suite zusammen mit einem Implementierungsbericht entwickelt.
Dieses Dokument wurde von der W3C HTML-Arbeitsgruppe (nur Mitglieder) als Teil der HTML Activity erarbeitet. Die Ziele der HTML-Arbeitsgruppe werden in der Charta der HTML-Arbeitsgruppe besprochen. Patentoffenlegungen, die relevant für diese Spezifikation sind, können auf der Seite für Patentoffenlegungen der Arbeitsgruppe gefunden werden.
Bitte senden Sie Fehlerberichte zu dieser Spezifikation an [email protected] (Archiv). Es ist nicht angebracht, Diskussionsbeiträge per E-Mail an diese Adresse zu schicken. Die öffentliche Diskussion sollte auf [email protected] (Archiv) stattfinden.
Dieser Abschnitt ist informativ.
Ein Ereignis ist die Repräsentation irgendeiner asynchronen Erscheinung (wie einem Mausklick auf die Darstellung eines Elements oder einem arithmetischer Fehler im Wert eines Attributs des Elements oder irgendeine von undenkbar vielen anderen Möglichkeiten), die mit einem Element (gezielt (target) auf ein Element) in einem XML-Dokument in Beziehung gesetzt wird.
Im DOM-Ereignismodell [DOM2EVENTS] wird ein allgemeines Verhalten beschrieben. Tritt ein Ereignis auf, wird es dispatched. Dies geschieht in Form einer Durchleitung durch den Dokumentbaum in einer Phase, die capture genannt wird, zu dem Element, an dem das Ereignis aufgetreten ist (benannt als sein Ziel -- target). Dort wird es eventuell in einer bubbling-Phase wieder zurück durch den Baum geschickt. Im Allgemeinen kann auf ein Ereignis bei jedem Element im Pfad (ein observer) in jeder Phase durch die Veranlassung einer Aktion, und/oder durch Stoppen des Ereignisses, und/oder durch Abbrechen der voreingestellten Reaktion auf das Ereignis reagiert werden. Das folgende Diagramm illustriert dieses:
Ereignisfluss in DOM2: Ein Ereignis, das auf ein
Element gerichtet ist (markiert als target
), durchläuft den Baum
von der Wurzel bis
hin zum Ziel in einer Phase, die capture
genannt wird. Sofern der
Ereignistyp es erlaubt, tritt das Ereignis die Reise zurück durch den
Baum auf der gleichen Route an. Diese Phase nennt sich bubbling
.
Jeder Knoten auf der Route, eingeschlossen der Wurzel- und der
Zielknoten, kann ein observer
sein: das ist sozusagen ein
eventuell daran angehängter Handler, der aktiviert wird, wenn das
Ereignis in einer der Phasen vorbeikommt. Ein Handler kann nur in einer
Phase aufpassen. Um in beiden Phasen zu horchen, müssen zwei
Handler angehängt werden.
Eine Aktion ist eine Möglichkeit, auf ein Ereignis zu antworten; ein Handler ist eine mögliche Angabe für solch eine Aktion, zum Beispiel die Verwendung von Skripten oder eine andere Methode. Ein Listener ist die Bindung solch eines Handlers an ein Ereignis, das auf irgendein Element im Dokument zielt.
HTML [HTML4] bindet Ereignisse an ein Element, indem der Ereignisname in einen Attributnamen kodiert wird, so dass der Wert des Attributs die Aktion für das Ereignis bei diesem Element ist. Diese Methode hat zwei grundsätzliche Nachteile: einerseits verankert es die Ereignisse in die Sprache, so dass die Sprache verändert werden muss, um ihr neue Ereignisse hinzuzufügen. Andererseits wird der Autor gezwungen, den Inhalt des Dokuments mit den Skriptangaben und Ereignis-Handlern zu vermischen, anstatt zu erlauben, diese herauszutrennen. SVG [SVG] verwendet eine ähnliche Methode.
Die Definition einer neuen Version von HTML zeigte die Notwendigkeit für eine erweiterbare Methode zur Ereignisangabe. Die Designanforderungen waren die folgenden:
Das DOM gibt ein Ereignismodell an, das die folgenden Eigenschaften bereitstellt:
Element-Listener
und seine Attribute, die in dieser
Spezifikation definiert sind, sind die Methode, um
DOM Level 2-Ereignisse eines Elements an einen
Ereignis-Handler zu binden. Sie beinhalten verschiedene
Aspekte der DOM Level 2-Ereignisschnittstelle. Dadurch stellen sie
Markup-Angaben der durchzuführenden Aktionen bereit, die
während der verschiedenen Phasen der Ereignisdurchleitung getätigt
werden müssen.
Dieses Dokument gibt weder bestimmte Ereignisse an, noch schreibt es eine bestimmte Methode vor, Aktionen anzugeben. Diese Definitionen werden jeder Bezeichnersprache selbst überlassen, welche die hier beschriebenen Möglichkeiten nutzt.
Dieser Abschnitt ist normativ.
Die Schlüsselworte "MÜSSEN", "NICHT DÜRFEN", "ERFORDERLICH", "SOLLTEN", "SOLLTEN NICHT", "EMPFOHLEN", "EVENTUELL" und "OPTIONAL" in diesem Dokument sind zu interpretieren wie in [RFC2119] beschrieben.
XML-Ereignisse ist kein stand-alone
Dokumenttyp.
Die Spezifikation verfolgt die Intention, in andere Wirtsprachen, wie zu
Beispiel XHTML, integriert zu werden. Ein konformes Dokument zu
XML-Ereignisse
ist ein Dokument, das nur die Eigenschaften fordert, die in
dieser Spezifikation als erforderlich beschrieben sind, und die
Eigenschaften, die in seiner Wirtsprache als erforderlich beschrieben
sind. Solch ein Dokument muss alle der folgenden Kriterien erfüllen:
Das Dokument muss konform zu den Beschränkungen sein, die in Appendix�B - Schema-Implementierung oder Appendix�A - DTD-Implementierung beschrieben werden, kombiniert mit den Beschränkungen, die in der Implementierung seiner Wirtsprache beschrieben werden.
Das Dokument muss eine xmlns
-Deklaration für den
Namensraum von XML-Ereignisse enthalten [XMLNAMES]. Der Namensraum für XML-Ereignisse
ist definiert als http://www.w3.org/2001/xml-events
.
Ein Start-Tag eines Wurzelelements könnte zum Beispiel so aussehen:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:ev="http://www.w3.org/2001/xml-events" >
Wird XML-Ereignisse in eine Wirtsprache eingeschlossen, müssen alle Eigenschaften, die in dieser Spezifikation gefordert werden, in der Wirtsprache eingeschlossen werden. Zusätzlich müssen alle Elemente und Attribute, die in dieser Spezifikation definiert sind, in das Inhaltsmodell der Wirtsprache aufgenommen werden.
Ein konformes Benutzerprogramm muss alle Eigenschaften unterstützen, die in dieser Spezifikation gefordert werden.
Dieser Abschnitt ist normativ.
Diese Spezifikation definiert ein Modul namens XML-Ereignisse
(XML Events). Das XML-Ereignismodul verwendet den XML-Namensraum-Identifier
http://www.w3.org/2001/xml-events
.
[XMLNAMES]
Beispiele in diesem Dokument, die das Namensraumpräfix
ev
verwenden, nehmen alle eine xmlns
-Deklaration
xmlns:ev="http://www.w3.org/2001/xml-events"
an geeigneter
Stelle im Dokument an. Alle Beispiele sind informativ.
Der Rest dieses Abschnitts beschreibt die Elemente und Attribute in diesem Modul, die Semantik und stellt eine abstrakte Moduldefinition zur Verfügung wie in [XHTMLMOD] gefordert wird.
Das XML-Ereignismodul unterstützt das folgende Element und die folgenden Attribute:
Element | Attribute | Minimales Inhaltsmodell |
---|---|---|
listener | event (
NMTOKEN), observer ( IDREF), target ( IDREF), handler ( URI), phase ("capture" | "default"*), propagate ("stop" | "continue"*), defaultAction ("cancel" | "perform"*), id ( ID) |
EMPTY |
Implementierungen: DTD, XML Schema
Das Element listener
unterstützt eine Untermenge
der Schnittstelle EventListener
des DOM. Es wird verwendet,
um Ereignis-Listener zu deklarieren und sie mit bestimmten Knoten im DOM
zu registrieren. Es hat die folgenden Attribute:
event
gibt den Ereignistyp an,
für den der Listener registriert wird. Wie durch
[DOM2EVENTS] angegeben ist, sollte
der Wert des Attributs ein XML-Name sein [XML].observer
gibt die
id
des Elements an, zu dem der Ereignis-Listener registriert
werden muss. Ist dieses Attribut nicht verfügbar, ist der
observer das Element, für das das event
-Attribut
angegeben ist (siehte später unter
Attribute einem Observer-Element direkt
zuordnen) oder dem Elternteil dieses Elements (siehe später unter Attribute einem Handler-Element direkt
zuordnen).target
gibt die
id
des Zielelements des Ereignisses an (zum Beispiel der Knoten,
der das Ereignis verursacht hat). Ist dieses Attribut verfügbar, werden
nur Ereignisse vom entsprechenden Ereignis-Handler verarbeitet, die beide
Attribute, event
und target
, besitzen.
Ohne Frage sollte das Zielelement, vorgegeben durch den Weg, den Ereignisse
nehmen, ein Nachkomme des Observer-Elements oder
das Observer-Element selbst sein.
Die Verwendung dieses Attributs erfordert sorgfalt; wenn Sie zum Beispiel angeben
<listener event="click" observer="para1" target="link1" handler="#clicker"/>
wobei para1
irgendein Nachfahre des folgenden Knoten ist
<a id="link1" href="doc.html">The <em>draft</em> document</a>
und der Benutzer auf das Wort draft klickt, wird das Element
<em>
und nicht
<a>
das Ziel sein und so wird der Handler nicht aktiviert;
um alle Mausklicks auf das Element <a>
und seine Kinder
abzufangen, verwenden Sie observer="link1"
und kein
target
-Attribut.
handler
-Attribut gibt den URI-Verweis
der Quelle an, welche die Aktion definiert, die ausgeführt werden
soll, wenn das Ereignis den Observer erreicht. (Diese Spezifikation
gibt nicht vor, welche Form dieses Element annehmen sollte: Weiteres im
Abschnitt Ereignis-Handler).
Ist dieses Attribut nicht vorhanden, ist der Handler das Element, welches
das event
-Attribut enthält (siehe unten
Attribute einem Handler-Element
direkt zuordnen).phase
-Attribut gibt an, wann
(zu welcher DOM 2-Ereignisverlaufsphase) der Listener vom gewünschten
Ereignis aktiviert wird.
capture
default
bubbling
- oder
target
-Phase aktiviert.Das voreingestellte Verhalten ist phase="default"
.
Beachten Sie, dass nicht alle Ereignisse eine bubbling-Phase durchlaufen.
In diesem Fall kann mit phase="default"
das Ereignis nur
verarbeitet werden, wenn Sie das Ereignisziel zum Observer machen.
propagate
-Attribut gibt an, ob dem Ereignis
nach der Verarbeitung aller Listener am aktuellen Knoten gestattet
wird, seinen Weg fortzusetzen (entweder in der capture
- oder
in der bubbling
-Phase).
stop
continue
Das voreingestellte Verhalten ist propagate="continue"
.
defaultAction
gibt an, ob nach der
Verarbeitung aller Listener für das Ereignis, die voreingestellte
Aktion für das Ereignis (sofern vorhanden) ausgeführt werden
soll oder nicht. Zum Beispiel ist in XHTML die voreingestellte Aktion
für einen Mausklick auf ein <a>
-Element oder eines
seiner Nachfahren, die Verfolgung des Verweises.
cancel
perform
Der voreingestellte Wert ist defaultAction="perform"
.
Beachten Sie, dass nicht alle Ereignisse abgebrochen werden können, in diesem Fall wird das Attribut ignoriert.
id
ist eine dokumentweit einzigartiger
Identifier. Der Wert dieses Identifiers wird oft dazu verwendet, das Element
über eine DOM-Schnittstelle zu manipulieren.Beachten Sie, dass observer = "<element-id>"
und
event = "<event-type>"
ähnlich zum Attribut
begin = "<element-id>.<event-type>"
in SMIL EventTiming [SMIL20] sind.
listener
Dieses Beispiel verbindet den Handler im Element mit
#doit
, der aktiviert wird, wenn das Ereignis
activate
beim Element mit id="button1"
oder irgendeiner seiner Kinder auftritt. Die Aktivierung wird während
der bubbling
-Phase geschehen, oder wenn das Ereignis am
Observer-Element selbst
auftritt, wenn das Ereignis das Element erreicht (target-Phase).
<listener event="activate" observer="button1" handler="#doit"/>
Dies verbindet den Handler mit #overflow-handler
,
der aktiviert wird, wenn das Ereignis overflow
beim
Element mit id="expr1"
eintritt und in der
bubbling
-Phase
hinauf zum Element mit id="prog1"
kommt.
<listener event="overflow" observer="prog1" target="expr1" handler="#overflow-handler"/>
Dies verbindet den Handler mit #popup
, das aktiviert wird,
sooft ein activate
-Ereignis beim Element mit
id="embargo"
oder irgendeiner seiner Kinder auftritt.
Weil es während der capture
-Phase aktiviert wird, und
die Wanderung gestoppt wird, wirkt sich dies
(unabhängig davon, was die Handler machen) auf alle Kindelemente des
embargo
-Elements insofern aus, dass sie keine
activate
-Ereignisse zu Gesicht bekommen.
<listener event="activate" observer="embargo" handler="#popup" phase="capture" propagate="stop"/>
Dies verbindet einen Handler eines anderen Dokuments.
<listener event="activate" observer="image1" handler="/handlers/events.xml#activate"/>
Alle Attribute des listener
-Elements mit Ausnahme von
id
können als globale Attribute verwendent werden, wie
in Namensräume in XML [XMLNAMES] definiert ist, um das
Attribut einem anderen Element zuzuordnen.
Beachten Sie, dass dies bedeutet, dass das
<listener>
-Element streng genommen redundant ist, weil
das folgende
<anyelement ev:event="click" ev:observer="button1" ev:handler="#clicker"/>
die gleiche Auswirkung hat wie
<ev:listener event="click" observer="button1" handler="#clicker"/>
Trotzdem wurde das Element <listener>
aus funktionellen Gründen beibehalten.
Wird das Attribut observer
weggelassen (nicht jedoch das
handler
-Attribut), dann ist das Element, dem die anderen
Attribute angehängt sind, das Observer-Element.
Dieses erste Beispiel wird den Handler, identifiziert durch
#popper
, mit dem Element <a>
verbinden und
die voreingestellte Aktion für dieses Ereignis abbrechen.
<a href="doc.html" ev:event="activate" ev:handler="#popper" ev:defaultAction="cancel">The document</a>
Dies wird den Handler, zu finden unter #handle-overflow
,
für das Ereignis overflow
mit dem aktuellen Element
verbinden.
<div ev:event="overflow" ev:handler="#handle-overflow"> ... </div>
Wird das handler
-Attribut weggelassen, wenn die globalen
Attribute einem Element zugeordnet werden, dann ist das Element, dem die
anderen Attribute zugeordnet werden, das Handler-Element.
Beachten Sie: Weil die Attribute observer
und
target
IDREFs sind, müssen in diesem Fall die
Handler- und Observer-/Zielelemente im gleichen Dokument sein
(während in anderen Fällen, weil das
handler
-Attribut ein URI ist, das Handler-Element in
einem anderen Dokument sein kann).
Wird das Attribut observer
gleichfalls weggelassen, dann
ist der Elternteil des Handler-Elements das Observer-Element.
In diesem Fall ist das Element der Handler für das
submit
-Ereignis des Elements mit id="form1"
.
<script type="application/x-javascript" ev:event="submit" ev:observer="form1"> return docheck(event); </script>
In diesem Fall ist das Element <action>
der
Handler für das Ereignis q-submit
und der Observer
ist das Element questionnaire
.
<questionnaire submissionURL="/q/tally"> <action ev:event="q-submit"> ... </action> ... </questionnaire>
Das Element <script>
ist der Handler für das
Ereignis click
; das Element <img>
ist der
Observer.
<img src="button.gif" alt="OK"> <script ev:event="activate" type="application/x-javascript"> doactivate(event); </script> </img>
Ein Element kann zum Beispiel durch ein click
-Ereignis
aktiviert (activate
) werden. Das activate
-Ereignis
wird in DOM2-Ereignisse, Abschnitt 1.6.1 beschrieben.
Das Element <onevent>
ist der Handler für das
Ereignis enterforward
. Das Element <card>
ist der Observer.
<card> <onevent ev:event="enterforward"> <go href="/http/www.schumacher-netz.de/url"/> </onevent> <p> Hello! </p> </card>
Das Element <catch>
ist der Handler für das
Ereignis nomatch
. Der Observer ist das Element
<field>
.
<form id="launch_missiles"> <field name="password"> <prompt>What is the code word?</prompt> <grammar> <rule id="root" scope="public">rutabaga</rule> </grammar> <help>It is the name of an obscure vegetable.</help> <catch ev:event="nomatch"> <prompt>Security violation!</prompt> <submit next="apprehend_felon" namelist="user_id"/> </catch> </field> <block> <goto next="#get_city"/> </block> </form>
Dieses Beispiel zeigt drei Handler für verschiedene Ereignisse.
Der Observer für alle drei ist das Element
<secret>
<secret ref="/login/password"> <caption>Please enter your password</caption> <info ev:event="help"> Mail [email protected] in case of problems </info> <info ev:event="hint"> A pet's name </info> <info ev:event="alert"> This field is required </info> </secret>
Die folgende Tabelle fasst zusammen, welche Elemente die Rolle des Observers oder Handlers spielen, wenn die relevanten Attribute weggelassen werden.
Handler vorhanden | Handler weggelassen | |
---|---|---|
Observer vorhanden | (wie deklariert) | Element ist Handler |
Observer weggelassen | Element ist Observer | Element ist Handler Elternteil ist Observer |
Diese Spezifikation stellt nicht die Anforderung, dass eine XML-Applikation, die XML-Ereignisse verwendet, irgendeine bestimmte Methode verwenden muss, um Handler anzugeben. Jedoch sind die Beispiele, insbesondere jene im Abschnitt über die direkte Zuordnung der Attribute zu einem Handler, darauf ausgelegt, Beispiele zu geben, wie sie angegeben werden könnten.
Es wurde jedoch erkannt, dass zwei Methoden oft auftauchen werden: Skripte (wie das XHTML-Element <script>) und deklaratives Markup, das XML-Elemente verwendet (so wie das Element <onevent> bei WML). Eine unterstützende Spezifikation wird Markup zur Verfügung stellen, das diese Methoden unterstützt.
Das Basic XML Events Profile gestattet Beschränkungen zum Gebrauch des XML-Ereignismoduls, um die Verarbeitung auf kleinen Geräten einfacher zu gestalten.
Das Profil Basic gestattet folgende Beschränkungen
beim Gebrauch des Elements listener
und seinen Attributen und
beim Gebrauch der Attribute des Elements listener
als globale
Attribute.
Externe Ereignis-Handler
Die Fähigkeit, externe Ereignis-Handler verarbeiten zu
können, ist nicht erforderlich. Wird das handler
-Attribut
zum listener
-Element verwendet oder wird das globale
handler
-Attribut verwendet, sollte der Handler, der im Wert
dieses Attributs angegeben ist, im aktuellen Dokument sein.
Zum Beispiel ist das Folgende gestattet:
<listener event="click" target="#button1" handler="#clicker"/>
während das Folgende nicht verarbeitet werden muss:
<listener event="click" target="#button1" handler="doc2.html#clicker"/>
Die Bindung eines Ereignis-Handlers an einen Observer kann lexikalisch
vor dem Ende des Observer-Elements erforderlich sein. Mit anderen Worten
dürfte eine listener
-Bindung an einen Observer nicht
nach dem schließenden Tag des Observer-Elements auftauchen und ein
Ereignis-Handler, der die Attribute trägt, um ihn an den Observer
zu binden, dürfte ebenfalls nicht nach dem schließenden Tag
des Observer-Elements erscheinen.
Dieser Abschnitt ist informativ.
Diese Spezifikation gibt nicht normativ an, wie Sprachdesigner
die Ereignisse benennen sollten (zum Beispiel die verwendeten Werte im
event
-Attribut).
Zukünftige Versionen von DOM-Ereignissen gestatten jedoch voraussichtlich Namensraum gebundene Ereignisnamen, deshalb sind Sprachdesigner angehalten, nicht das Doppelpunktzeichen ":" in Ereignisnamen zu verwenden.
Zahlreiche Ereignistypen sind in DOM2 [DOM2EVENTS] definiert, darauf sollten Sie sich in Bezug auf deren Namen und Semantik beziehen.
Dieser Anhang ist normativ.
Die DTD-Implementierung von XML-Ereignisse ist konform zu den Anforderungen, die in [XHTMLMOD] definiert sind. Daher stellt sie ein Untermodul für qualifizierte Namen zur Verfügung, sowie eine Modul-Datei für das XML-Ereignismodul, definiert in dieser Proposed Recommendation.
Beachten Sie, dass dieses Modul das Parameter-Entity
%xml-events-attrs.qname;
definiert. Dieses Entity ist
zur Verwendung in den Attributlisten von Elementen in jeder Wirtsprache
gedacht, die die Verwendung von Ereignisattributen in Elementen in ihrem
eigenen Namensraum gestattet. In diesem Fall sollte der Wirtsprachentreiber
(Anmerkung d. Übersetzters:
zum Beispiel eine DTD) ein
Parameter-Entity %XML-EVENTS.prefixed;
auf
INCLUDE
setzen und ein Parameter-Entity
%XML-EVENTS.prefix;
auf einen Wert, der das Präfix
für das XML-Ereignisattribut ist.
<!-- ....................................................................... --> <!-- XML Events Qname Module ............................................ --> <!-- file: xml-events-qname-1.mod This is XML Events - the Events Module for XML, a definition of access to the DOM events model. Copyright 2000-2003 W3C (MIT, ERCIM, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XML Events Qnames 1.0//EN" SYSTEM "http://www.w3.org/MarkUp/DTD/xml-events-qname-1.mod" Revisions: (none) ....................................................................... --> <!-- XML Events Qname (Qualified Name) Module This module is contained in two parts, labeled Section 'A' and 'B': Section A declares parameter entities to support namespace- qualified names, namespace declarations, and name prefixing for XML Events and extensions. Section B declares parameter entities used to provide namespace-qualified names for all XML Events element types: %listener.qname; the xmlns-qualified name for <listener> ... XML Events extensions would create a module similar to this one. Included in the XML distribution is a template module ('template-qname-1.mod') suitable for this purpose. --> <!-- Section A: XML Events XML Namespace Framework :::::::::::::::::::: --> <!-- 1. Declare a %XML-EVENTS.prefixed; conditional section keyword, used to activate namespace prefixing. The default value should inherit '%NS.prefixed;' from the DTD driver, so that unless overridden, the default behavior follows the overall DTD prefixing scheme. --> <!ENTITY % NS.prefixed "IGNORE" > <!ENTITY % XML-EVENTS.prefixed "%NS.prefixed;" > <!-- 2. Declare a parameter entity (eg., %XML-EVENTS.xmlns;) containing the URI reference used to identify the XML Events namespace --> <!ENTITY % XML-EVENTS.xmlns "http://www.w3.org/2001/xml-events" > <!-- 3. Declare parameter entities (eg., %XML.prefix;) containing the default namespace prefix string(s) to use when prefixing is enabled. This may be overridden in the DTD driver or the internal subset of an document instance. If no default prefix is desired, this may be declared as an empty string. NOTE: As specified in [XMLNAMES], the namespace prefix serves as a proxy for the URI reference, and is not in itself significant. --> <!ENTITY % XML-EVENTS.prefix "" > <!-- 4. Declare parameter entities (eg., %XML-EVENTS.pfx;) containing the colonized prefix(es) (eg., '%XML-EVENTS.prefix;:') used when prefixing is active, an empty string when it is not. --> <![%XML-EVENTS.prefixed;[ <!ENTITY % XML-EVENTS.pfx "%XML-EVENTS.prefix;:" > ]]> <!ENTITY % XML-EVENTS.pfx "" > <!-- declare qualified name extensions here ............ --> <!ENTITY % xml-events-qname-extra.mod "" > %xml-events-qname-extra.mod; <!-- 5. The parameter entity %XML-EVENTS.xmlns.extra.attrib; may be redeclared to contain any non-XML Events namespace declaration attributes for namespaces embedded in XML. The default is an empty string. XLink should be included here if used in the DTD. --> <!ENTITY % XML-EVENTS.xmlns.extra.attrib "" > <!-- Section B: XML Qualified Names ::::::::::::::::::::::::::::: --> <!-- 6. This section declares parameter entities used to provide namespace-qualified names for all XML Events element types. --> <!ENTITY % xml-events.listener.qname "%XML-EVENTS.pfx;listener" > <!-- The following defines a PE for use in the attribute sets of elements in other namespaces that want to incorporate the XML Event attributes. Note that in this case the XML-EVENTS.pfx should always be defined. --> <!ENTITY % xml-events.attrs.qname "%XML-EVENTS.pfx;event NMTOKEN #IMPLIED %XML-EVENTS.pfx;observer IDREF #IMPLIED %XML-EVENTS.pfx;target IDREF #IMPLIED %XML-EVENTS.pfx;handler %URI.datatype; #IMPLIED %XML-EVENTS.pfx;phase (capture|default) #IMPLIED %XML-EVENTS.pfx;propagate (stop|continue) #IMPLIED %XML-EVENTS.pfx;defaultAction (cancel|perform) #IMPLIED" > <!-- end of xml-events-qname-1.mod -->
<!-- ...................................................................... --> <!-- XML Events Module .................................................... --> <!-- file: xml-events-1.mod This is XML Events - the Events Module for XML. a redefinition of access to the DOM events model. Copyright 2000-2003 W3C (MIT, ERCIM, Keio), All Rights Reserved. This DTD module is identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//ENTITIES XML Events 1.0//EN" SYSTEM "http://www.w3.org/MarkUp/DTD/xml-events-1.mod" Revisions: (none) ....................................................................... --> <!-- XML Events defines the listener element and its attributes --> <!ENTITY % xml-events.listener.content "EMPTY" > <!ELEMENT %xml-events.listener.qname; %xml-events.listener.content;> <!ATTLIST %xml-events.listener.qname; id ID #IMPLIED event NMTOKEN #REQUIRED observer IDREF #IMPLIED target IDREF #IMPLIED handler %anyURI.datatype; #IMPLIED phase (capture|default) #IMPLIED propagate (stop|continue) #IMPLIED defaultAction (cancel|perform) #IMPLIED > <!-- end of xml-events-1.mod -->
Dieser Anhang ist normativ.
Die Schema-Implementierung von XML-Ereignisse ist konform zu den Anforderungen, definiert in [XHTMLSCHEMAMOD]. Sie ist unterteilt in ein Attributmodul und ein Elementmodul für das XML-Ereignismodul, definiert in dieser Proposed Recommendation.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.w3.org/2001/xml-events" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd" elementFormDefault="unqualified" blockDefault="#all" finalDefault="#all" attributeFormDefault="unqualified"> <xs:annotation> <xs:documentation> This is the XML Schema for XML Events global attributes URI: http://www.w3.org/MarkUp/SCHEMA/xml-events-attribs-1.xsd $Id: xml-events-attribs-1.xsd,v 1.5 2003/08/02 09:36:54 mimasa Exp $ </xs:documentation> <xs:documentation source="xml-events-copyright-1.xsd"/> </xs:annotation> <xs:annotation> <xs:documentation> XML Event Attributes These "global" event attributes are defined in "Attaching Attributes Directly to the Observer Element" of the XML Events specification. </xs:documentation> </xs:annotation> <xs:attribute name="event" type="xs:NMTOKEN"/> <xs:attribute name="observer" type="xs:IDREF"/> <xs:attribute name="target" type="xs:IDREF"/> <xs:attribute name="handler" type="xs:anyURI"/> <xs:attribute name="phase" default="default"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="capture"/> <xs:enumeration value="default"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="propagate" default="continue"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="stop"/> <xs:enumeration value="continue"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="defaultAction" default="perform"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="cancel"/> <xs:enumeration value="perform"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attributeGroup name="XmlEvents.attlist"> <xs:attribute ref="ev:event"/> <xs:attribute ref="ev:observer"/> <xs:attribute ref="ev:target"/> <xs:attribute ref="ev:handler"/> <xs:attribute ref="ev:phase"/> <xs:attribute ref="ev:propagate"/> <xs:attribute ref="ev:defaultAction"/> </xs:attributeGroup> </xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="http://www.w3.org/2001/xml-events"
xmlns="http://www.w3.org/2001/xml-events"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/XMLSchema
http://www.w3.org/2001/XMLSchema.xsd"
elementFormDefault="unqualified"
blockDefault="#all"
finalDefault="#all"
attributeFormDefault="unqualified">
<xs:annotation>
<xs:documentation>
This is the XML Schema for XML Events
URI: http://www.w3.org/MarkUp/SCHEMA/xml-events-1.xsd
$Id: xml-events-1.xsd,v 1.6 2003/08/02 09:36:54 mimasa Exp $
</xs:documentation>
<xs:documentation source="xml-events-copyright-1.xsd"/>
</xs:annotation>
<xs:annotation>
<xs:documentation>
XML Events element listener
This module defines the listener element for XML Events.
This element can be used to define event listeners. This
module relies upon the XmlEvents.attlist attribute group
defined in xml-events-attribs-1.xsd.
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="listener.attlist">
<xs:attribute name="event" use="required" type="xs:NMTOKEN"/>
<xs:attribute name="observer" type="xs:IDREF"/>
<xs:attribute name="target" type="xs:IDREF"/>
<xs:attribute name="handler" type="xs:anyURI"/>
<xs:attribute name="phase" default="default">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="capture"/>
<xs:enumeration value="default"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="propagate" default="continue">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="stop"/>
<xs:enumeration value="continue"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="defaultAction" default="perform">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="cancel"/>
<xs:enumeration value="perform"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="id" type="xs:ID"/>
</xs:attributeGroup>
<xs:complexType name="listener.type">
<xs:attributeGroup ref="listener.attlist"/>
</xs:complexType>
<xs:element name="listener" type="listener.type"/>
</xs:schema>
Dieser Anhang ist normativ.
Dieser Abschnitt ist informativ.
Dieses Dokument wurde ursprünglich von Ted Wugofski geschrieben (Openwave).
Besonderer Dank an: Mark Baker (Sun Microsystems), Wayne Carr (Intel Corporation), Warner ten Kate (Philips Electronics), Patrick Schmitz und Peter Stark (Ericsson) für ihre signifikanten Beiträge zur fortschreitenden Entwicklung dieser Spezifikation.
Zur Zeit der Veröffentlichung waren folgende Personen Mitglieder der W3C HTML-Arbeitsgruppe: