Polskie tłumaczenie Rekomendacji "XML Events"

Autor: Mariusz Żebrowski.
Lokalizacja: http://www.antyspam.pl/w3c/REC-xml-events-20031014/

Dokument ten jest tłumaczeniem rekomendacji W3C XML Events. Przekład ten nie jest przekładem normatywnym i może zawierać błędy wynikajšce z tłumaczenia. Status normatywny posiada jedynie wersja angielskojęzyczna na stronie W3C http://www.w3.org/TR/2003/REC-xml-events-20031014/.
Dokument jest chroniony prawem autorskim. Copyright © 2004 W3C® (MIT, ERCIM, Keio).

W3C

Zdarzenia XML

Zdarzenia Składni dla XML

Rekomendacja W3C 14 października 2003

Obecna wersja:
http://www.w3.org/TR/2003/REC-xml-events-20031014
Najnowsza wersja:
http://www.w3.org/TR/xml-events
Poprzednia wersja:
http://www.w3.org/TR/2003/PR-xml-events-20030804
Diff-marked version:
xml-events-diff.html
Edytorzy:
Shane McCarron, Applied Testing and Technology, Inc.
Steven Pemberton, CWI /W3C ®
T. V. Raman, IBM Corporation

Prosimy odnieść się do erraty dla tego dokumentu, który może zawierać normatywne poprawki.

Ten dokument jest także dostępny w formatach nienormatywnych: wersja PostScript, wersja PDF, archiwum ZIP, oraz archiwum Gzip'd TAR.

Wersja angielska tej specyfikacji jest jedyną wersją normatywną. Nienormatywne tłumaczenia również mogą być dostępne.


Streszczenie

Moduł zdarzeń XML określony w tej specyfikacji zapewnia języki XML ze zdolnością do jednostajnej integracji zdarzeń słuchaczy i powiązanych posiadaczy zdarzeń ze specyfikacją DOM. Interfejs zdarzeń poziomu 2 [DOM2EVENTS]. Wynikiem jest zapewnienie interoperacyjnego sposobu łączenia zachowań z adjustacją poziomu dokumentu.

Status Tego Dokumentu

Ta część opisuje status tego dokumentu w czasie jego publikacji. Inne dokumenty mogą zastąpić ten dokument. Lista obecnych publikacji W3C i ostatni przegląd tego raportu technicznego można znaleźć w indeksie raportów technicznych W3C pod adresem http://www.w3.org/TR/.

Ten dokument jest Rekomendacją W3C. Został omówiony przez Członków W3C i inne zainteresowane strony, został zatwierdzony przez Dyrektora jako rekomendacja W3C. Jest to stabilny dokument i może być używany jako wzorzec lub cytowany jako odnośnik normatywny z innego dokumentu. Rola Rola W3C podczas tworzenia rekomendacji polega na zwróceniu uwagi na specyfikację oraz promocję jego rozwoju. Zwiększa to funkcjonalność i interoperacyjność sieci internetowej. Zestaw testów dla Zdarzeń XML został rozwinięty jako część powszechnego Zestawu Testów XForms 1.0 , razem z raportem implementacji.

Ten dokument został stworzony przez Grupę Roboczą W3C HTML Working Group ( tylko Członkowie) jako część Działalności HTML. Cele Grupy Roboczej HTML są omówione w karcie Grupy Roboczej HTML . Ujawnienia patentowe do tej specyfikacji można znaleźć na stronie o ujawnieniach patentowych Grupy Roboczej .

Prosimy o zgłaszanie błędów tej specyfikacji w www-html-editor@w3.org (archiwum). Nie należy wysyłać maili w celu dyskusji na ten adres. Powszechne dyskusje mogą odbywać się pod adresem www-html@w3.org ( archiwum).

Spis treści

1.Wstęp

Jest to część informacyjna.

Zdarzenie jest odzwierciedleniem pewnego asynchronicznego zdarzenia (takim jak kliknięcie myszką na wyświetlany element, lub błąd arytmetyczny we wartości atrybutu elementu, lub jeden z niewyobrażalnie wielu innych możliwości), które łączy się z elementem (wycelowane na niego) w dokumencie XML.

W modelu DOM zdarzeń [DOM2EVENTS], ogólnym zachowaniem jest kiedy zdarzenie ma miejsce, jest przesłany poprzez przekazanie w dół drzewa dokumentu w fazie zwanej schwytanie (capture phase) do elementu, w którym zdarzenie miało miejsce (zwane jegocelem), gdzie poźniej może być przekazane z powrotem do trzech razy w fazie zwanej bulgotanie (bubbling). Ogólnie zdarzenie może odpowiadać do jakiegokolwiek elementu we wstawce do programu ( observer) w niemal każdej fazie przez powodowanie czynności, i/lub zatrzymanie zdarzenia, i/lub anulowanie domyślnej czynności dla zdarzenia. Poniższy diagram ilustruje to:

Event propagation flow diagram
Przebieg zdarzenia w DOM2: zdarzenie wycelowane na element (marked 'target') w trzech fazach do dołu drzewa od korzeni do celu w trzech fazach zwanych 'capture' (chwytanie). Jeżeli typ zdarzenia zezwala na to, zdarzenie wtedy wraca do góry drzewa poprzez ten sam szlak w fazie zwanej bulgotanie (bubbling). Jakikolwiek węzeł na szlaku, łącznie z węzeł korzenia i cel, może być 'observer': tj. handler może być dołączony do niego, aktywowany kiedy fazy zdarzenia przechodzą każdą z nich. Handler może jedynie oczekiwać na jedną fazę. Aby oczekiwać na obie należy załączyć dwa.

Czynność jest pewnego rodzaju reakcją na zdarzenie; handler jest pewnego rodzaju specyfikacją dla takich czynności, np. używanie skrytpów lub innej metody. Słuchacz jest takim atrybutem handler dla zdarzenia mającego na celu pewien element w dokumencie.

HTML [HTML4] łączy zdarzenia do elementu poprzez kodowanie nazwy zdarzenia w nazwie atrybutu, takiego jak wartość atrybutu, która jest czynnością dla zdarzenia w tamtym elemencie. Ta metoda posiada dwie główne zalety: po pierwsze łączy na stałe zdarzenia w język tak, by dodać nowe zdarzenie, należy zmienić język, a po drugie zmusza do zmieszania zawartości dokumentu ze specyfikacjami skryptów i obsługo zdarzeń, raczej niż zezwala na wyodrębnienie ich. SVG [SVG] używa podobnej metody.

Proces definiowania nowej wersji HTML zidentyfikował zapotrzebowanie na metodę specyfikacji rozszerzalnego zdarzenia. Wymagania projektowe były następujące:

DOM wskazuje model zdarzenia zapewniające następujące cechy:

Element listener i jego atrybuty zdefiniowane w tej specyfikacji są metodą łączenia zdarzenia poziomu 2 DOM z elementem zdarzenia handler. Zamykają one różne aspekty interfejsu zdarzenia poziomu 2 DOM, zapewniając specyfikację poziomu adjustacji czynności, które mają być wykonana podczas różnych faz rozprzestrzeniania się zdarzenia.

Ten dokument ani nie wyróżnia szczególnych zdarzeń, ani nie narzuca żadnych szczególnych metod wyszczególnianych czynności. Te definicje są pozostawione jakiemukolwiek językowi znaczników korzystając z wyżej opisanych ułatwień.

2.Wymagania zgodności

Ta część jest normatywna.

Słowa kluczowe "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "RECOMMENDED", "MAY", oraz "OPTIONAL" będą zinterpretowane w tym dokumencie tak, jak opisano w [RFC2119].

2.1.Zgodność dokumentu

Zdarzenia XML nie są samodzielnym typem dokumentu. Zamierzona jest integracja z innymi językami Host takimi jak XHTML. Dokument zgodny z zdarzeniami XML jest dokumentem wymagającym jedynie ułatwień opisanych jako niezbędne w tej specyfikacji i ułatwień opisanych jako niezbędne w jego języku host. Taki dokument musi spełniać wszystkie następujące kryteria:

  1. Dokument musi być zgodny z ograniczeniami wyrażonymi w Appendix B - Implementacja Schematu, lub Appendix A - Implementacja DTD, połączona z ograniczeniami wyrażonymi w implementacji jego języka host.

  2. Dokument musi zawierać deklarację xmlns dla przestrzeni nazw zdarzeń XML[XMLNAMES]. Przestrzeń nazw dla zdarzeń XML jest zdefiniowana jako http://www.w3.org/2001/xml-events. Przykładowy znacznik początkowy elementu korzenia może wyglądać następująco:

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
     xmlns:ev="http://www.w3.org/2001/xml-events" >
    

2.2.Zgodność języka host

Kiedy Zdarzenia XML są zawarte w języku host, wszystkie z urządzeń wymaganych w tej specyfikacji nie mogą być zawarte w języku host. W dodatku elementy i atrybuty odreślone w tej specyfikacji muszą być zawarte w modelu zawartości języka host.

2.3. Zgodność Agenta Użytkownika

Zgodny użytkownik musi wspierać wszystkie cechy wymagane w tej specyfikacji.

3. Moduł Zdarzeń XML

Tak specyfikacja jest normatywna.

Ta specyfikacja określa moduł zwany Zdarzenia XML. Moduł zdarzeń XML używa identyfikatora przestrzeni nazw XML [XMLNAMES] http://www.w3.org/2001/xml-events.

Przykłady w tym dokumencie, które używają prefiksu przestrzeni nazw "ev" zakładają wszystkie deklarację xmlns xmlns:ev="http://www.w3.org/2001/xml-events" gdziekolwiek w danym dokumencie. Wszystkie przykłady są informacyjne.

Reszta tej części opisuje elementy i atrybuty w tym module, semantykę i zapewnia streszczenie definicji modułu jako wymaganą w [ XHTMLMOD].

Moduł Zdarzeń XML wspomaga następujący element i atrybuty:

Element Atrybuty Minimalny Model Zawartości
listener event ( NMTOKEN),
observer ( IDREF),
target (IDREF ),
handler ( URI),
phase ("capture" | "default"*),
propagate ("stop" | "continue"*),
defaultAction ("cancel" | "perform"*),
id ( ID)
PUSTY

Implementacje: DTD, Schemat XML

3.1. Element listener

Element listener wspomaga podzbiór interfejsu EventListener DOM. Jest używany do deklaracji event listener i zarejestrowania ich ze szczególnymi węzłami w DOM, oraz posiada następujące atrybuty:

event
Wymagany atrybut event wyszczególnia typ event, dla którego który listener jest rejestrowany. Jak określono przez [DOM2EVENTS], wartość atrybutu powinna być Nazwą XML [XML].
observer
Opcjonalny atrybut observer określa id elementu, z którym dany event listener ma być zarejestrowany. Jeżeli ten atrybut nie występuje, observer jest elementem, na którym jest atrybut event (patrz dalej pod " Dołączanie Atrybutów Bezpośrednio do Elementu Observer"), lub przodek celu tamtego elementu (patrz dalej pod " Dołączanie Atrybutów Bezpośrednio do Elementu Observer").
Opcjonalny atrybuttarget określa id elementu docelowego zdarzenia (tj. węzeł, który spowodował zdarzenie). Jeżeli ten atrybut występuje, tylko zdarzenia pasujące do obu atrybutów event oraz target będą przetworzone przez powiązany program obsługi handler. Niewątpliwie ze względu na sposób, w jaki zdarzenia rozprzestrzeniają się, docelowy element powinien być węzłem potomkowym elementu observer, lub też sam powinien być elementem observer.

Używanie tego atrybutu wymaga staranności; n przykład jeśli określasz

<
     listener event="click" observer="para1"
     target="link1" handler="#clicker"/>

gdzie 'para1' jest pewnym przodkiem następującego węzła

<a id="link1" href="doc.html">
     The <em>draft</em> document</a>

i użytkownik klika słowo "draft", element <em> a nie <a> będzie celem, tak więc handler nie będzie aktywowany; aby złapać wszystkie kliknięcia myszką, element <a> i jego potomkowie używają observer="link1", i żadnego atrybutu target.

handler
Opcjonalny atrybut handler określa odnośnik URI źródła, który definiuje czynność, która powinna być wykonana, jeżeli zdarzenie osiąga observer. (Ta specyfikacja nie nakazuje, jaką formę tego elementu powinien przyjąć: patrz dalej w tej części" Event Handlers"). Jeśli ten atrybut nie występuje, handler jest elementem, na którym jest atrybut event (patrz dalej pod " Dołączanie Atrybutów Bezpośrednio do Elementu Handler ").
phase
Opcjonalny atrybut phase określa kiedy (podczas którego zdarzenia DOM 2 propagation phase) listener będzie aktywowany przez żądane zdarzenie.
capture
Listener jest aktywowany podczas fazy chwytania.
default
Listener jest aktywowany podczas fazy bulgotania lub celowania.

Zachowanie wartości domyślnej to phase="default".

Zauważ, że nie wszystkie zdarzenia bąbelkują, przypadek phase="default", w którym można tylko obsługiwać zdarzenie poprzez zmianę celu zdarzenia w observer.

propagate
Opcjonalny atrybut propagate określa, czy po przetwarzaniu wszystkich listener w aktualnym węźle, zdarzenie może kontunuować na swoim podprogramie korekcyjnym (zarówno w fazie chwytania, jak i bulgotania).
stop
zatrzymanie rozprzestrzeniania zdarzenia
continue
rozprzestrzenianie zdarzenia jest kontynuowane (chyba, że zostanie zatrzymane innymi środkami takimi jak, skrypty, lub przez inny listener).

Zachowanie wartości domyślnej to propagate="continue".

defaultAction
Opcjonalny atrybut defaultAction określa, czy po przetworzeniu wszystkich listener dla zdarzenia, czy domyślna czynność dla zdarzenia (jeśli jest) powinna być wykonana, czy nie. Na przykład, w XHTML domyślną czynnością dla kliknięcia myszą na element <a> lun jeden z jego potomków jest transwersja linku.
cancel
jeśli można skasować typ zdarzenia, czynność domyślna jest kasowana
perform
domyślna czynność jest wykonywana (chyba, że zostanie zatrzymane innymi środkami takimi jak, skrypty, lub przez inny listener)

Wartością domyślną jestdefaultAction="perform" .

Zauważ, że nie wszystkie zdarzenia można kasować, w tym przypadku ten atrybut jest ignorowany.

id
Opcjonalny atrybut id jest jednoznacznym identyfikatorem dokumentu. Wartość tego identyfikatora jest często używana do manipulowania elementem przez interfejs DOM.

Zauważ, że observer = "< element-id>" i event = "<event-type>" są podobne do atrybutu begin = "<element-id>.<event-type>" w SMIL EventTiming [SMIL20].

3.1.1.Przykłady użycia listener

  1. Ten przykład załącza handler w element na "#doit", który zostanie aktywowany, kiedy zdarzenie zwane activate wystąpi na elemencie z id="button1", lub jakimkolwiek z jego potomków. Aktywacja będzie miałą miejsce podczas bąbelkowania, lub jeśli zdarzenie miało miejsce w samym elemencie observer, kiedy zdarzenie osiąga element (faza e target).

    <
                listener event="activate" observer="button1" handler="#doit"/>
    
  2. Załącza do handler na #overflow-handler, który zostanie aktywowany, kiedy zdarzenie overflow wydarzy się na elemencie z id="expr1" i przejdzie do elementu id="prog1".

    <
                listener event="overflow" observer="prog1" target="expr1"
                handler="#overflow-handler"/>
    
  3. Załącza do handler na #popup, który zostanie aktywowany kiedykolwiek zdarzenie activate wystąpi na elemencie z id="embargo", lub jakimkolwiek z jego potomków. Ponieważ będzie aktywowany podczas fazy chwytania, a rozprzestrzenianie jest zatrzymane, będzie miało efekt (bez względu na to, co robi handler) zabobiegania jakichkolwiek elementów potomków w elemencie embargo , nie widząc zdarzeń activate .

    <
                listener event="activate" observer="embargo" handler="#popup"
            phase="capture" propagate="stop"/>
                
  4. Załącza to handler z innego dokumentu.

    <
                listener event="activate" observer="image1"
        handler="/handlers/events.xml#activate"/>
    

3.2. Załączanie Atrybutów Bezpośrednio do Elementu Observer

Wszystkie atrybuty z elementu listener z wyjątkiem id mogą być użyte jako atrybuty globalne, jak zdefiniowano w Przestrzeniach nazw w XML [XMLNAMES], do załączania atrybutów do innych elementów.

Zauważ, że znaczy to, że element <listener> jest dokładnie mówiąc zbędny, ponieważ następujący element

<
            anyelement ev:event="click" ev:observer="button1" ev:handler="#clicker"/>

miałby ten sam efekt, co

<
            ev:listener event="click" observer="button1" handler="#clicker"/>

Niemniej jednak, dla użyteczności element <listener> został zachowany.

Jeżeli atrybut observer jest ominięty (ale nie atrybut handler), wtedy element, do którego inne elementy są załączone jest elementem observer.

3.2.1. Przykłady Używania Atrybutów Załączanych do Elementu Observer

  1. Ten pierwszy przykład załączy handler zidentyfikowany przez "#popper" do elementu <a> i skasuje domyślną czynność dla zdarzenia.

    <a href="doc.html" ev:event="activate" ev:handler="#popper"
                ev:defaultAction="cancel">The document</a>
    
  2. Załączy to handler do #handle-overflow dla zdarzenia overflow do bieżącego elementu.

    <div ev:event="overflow"
                 ev:handler="#handle-overflow"> ... </div>
    

3.3.Załączanie Atrybutów Bezpośrednio do Elementu Handler

Jeśli podczas załączania globalnych atrybutów do elementu, atrybut handler jest ominięty, wtedy element, do którego inne atrybuty są załączone to element handler.

Zauważ, że ze względu na to, że atrybuty observer i target są IDREF, w tym przypadku elementy handler i observer/target nie mogą być w tym samym dokumencie (kiedy w innych przypadkach, ponieważ atrybut handler to URI, element handler może być w innym dokumencie). Jeżeli atrybut observer jest również pominięty, wtedy przodek elementu handler jest elementem observer.

3.3.1. Przykłady Używania Atrybutów Załączanych do Elementu Handler

  1. W tym przypadku element to handler dla zdarzenia submit na elemencie z id="form1".

    <script type="application/x-javascript"
                        ev:event="submit" ev:observer="form1">
       return docheck(event);
    </script>
       
  2. W tym przypadku element <action> to handler dla zdarzenia q-submit, a observer to element questionnaire .

    <
       questionnaire submissionURL="/q/tally">
        <action ev:event="q-submit">
          ...
        </action>
          ...
     </questionnaire>
    
  3. Element <script> to handler dla zdarzenia click; element <img> to observer.

    <img src="button.gif" alt="OK">
        <
       script ev:event="activate" type="application/x-javascript">
            doactivate(event);
       </script>
    </img>
    
  4. Element <onevent> to handler dla zdarzenia enterforward. Element <card> to observer.

    <card>
        <onevent ev:event="enterforward">
       <go href="/url"/>
        </onevent>
        <p>
          Hello!
        </p>
    </card>
    
  5. Element <catch> to handler dla zdarzenia nomatch. Observer to 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>
       
  6. Ten przykład pokazuje trzy handlery dla różnych zdarzeń. Observer dla wszystkich trzech to element <secret>.

    <secret ref="/login/password">
       <caption>Please enter your password</caption>
        <info ev:event="help">
       Mail help@example.com in case of problems
        </info>
        <info ev:event="hint">
       A pet's name
        </info>
        <info ev:event="alert">
       This field is required
        </info>
    </secret>
    

3.4. Streszczenie Wartości Domyślnych Atrybutu Observer i Handler

Następująca tabelka podsumowuje, które elementy odgrywają role observer lub handler, jeśli odpowiedni atrybut jest pominięty.

Skutek pominiętego atrybutu observer i handler
Handler obecny Handler pominięty
Observer obecny (Jak zdeklarowano) Element to handler
Observer pominięty Element to observer Element to handler
Przodek to observer

3.5. Event Handler

Ta specyfikacja nie wymaga aplikacji XML używającej Zdarzenia XML do używania żadnej szczególnej metody specyfikacji handlerów. Jednak przykłady, szczególnie te w sekcji o załączania atrybutów bezpośrednio do handlera, mają na celu podanie przykładów jak mogą być określane.

Można jednak dostrzec, że dwie metody mogą często występować razem: skrypty (takie jak element skryptu XMTML i deklaracyjne znakowanie używające elementów XML (takich jak element <onevent> ). Specyfikacja zapewni znakowanie do wspierania tych metod.

3.6. Podstawowy Profil Zdarzeń XML

Podstawowy Profil Zdarzeń XML pozwala na używanie Modułu Zdarzeń XML w celu ułatwienia przetwarzania na małych urządzeniach.

Podstawowy Profil zezwala na następujące ograniczenia przy użyciu elementu listener i jego atrybutów, i na używanie atrybutów z elementu listener jako atrybutów globalnych.

  1. Zewnętrzne Event Handlers

    Zdolność przetworzenia zewnętrznych event handlers nie jest wymagana. Kiedy jest używany atrybut 'handler' na elemencie listener, lub kiedy jest używany globalny atrybut 'handler', to handler wyszczególniony w wartości tego atrybutu powinien znajdować się w obrębie bieżącego dokumentu.

    Na przykłąd następujące są dozwolone:

    <
       listener event="click" target="#button1" handler="#clicker"/>
    

    kiedy następujący nie musi być przetwarzany:

    <
       listener event="click" target="#button1" handler="doc2.html#clicker"/>
    
  2. Porządkowanie Łączeń Zdarzeń

    Łączenie event handler z observer może być wymagane, aby było leksykalnie przed końcem elementu observer. Innymi słowy, łączenie <listener> z observer może nie wystąpić po znaczniku zamykającym element observer, a przenoszenie atrybutów event handler do połączenia z observer może również nie nastąpić po znaczniku zamykającym element observer.

4. Typy Nazewnictwa Zdarzeń

Jest to część informacyjna.

Ta specyfikacja nie określa normatywnie jak projektanci języków powinni nazywać zdarzenia (tj. wartości używane w atrybucie event).

Jednak przyszłe wersje Zdarzeń DOM prawdopodobnie pozwolą na nazwy zdarzeń przestrzeni nazw, więc zaleca się projektantom języków, aby nie używali znaku dwukropka ":" w nazwach zdarzeń.

Liczba typów zdarzeń jest określona w DOM2 [DOM2EVENTS], do której należy odnosić się przy ich nazwach i semantyce.

A.Implementacja DTD

Ten załącznik jest normatywny.

Implementacja DTD Zdarzeń XML odpowiada wymaganiom określonym w [XHTMLMOD]. W konsekwencji zapewnia to submoduł Nazw Określających, oraz plik modułu dla modułu Zdarzeń XML określonych w tej Proponowanej Rekomendacji.

A.1.Moduł Nazw Określających

Zauważ, że ten moduł okrela parametr elementu rekordu %xml-events-attrs.qname;. Ten element rekordu powinien być używany w liście elementów atrybutów w każdym języku host, który zezwala na użycie atrybutów event na elementach w ich własnej przestrzeni nazw. W tym przypadku program obsługi Języka Host powinien ustawić parametr elementu rekordu %XML-EVENTS.prefixed; do INCLUDE i parametr elementu rekordu %XML-EVENTS.prefix; do wartości, która jest prefiksem dla atrybutów Zdarzeń XML.

<!-- ....................................................................... -->
   <!-- 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: Nazwy Określające  ::::::::::::::::::::::::::::: -->

<!--
   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 -->
   

A.2. Moduł Zdarzeń XML

<
   !-- ...................................................................... -->
<
   !-- 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 -->

B. Implementacja Schematu

This appendix is normative.

Implementacja Schematu Zdarzeń XML odpowiada wymaganiom określonym w [XHTMLSCHEMAMOD]. Jest podzielona na moduł atrybutów i moduł elementu dla Modułu Zdarzeń XML określone w tej Proponowanej Rekomendacji.

B.1. Moduł Atrybutów

<?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>

B.2. Moduł Zdarzeń XML

<?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>

C.Odnośniki

Ten załącznik jest normatywny.

C.1.Odnośniki Normatywne

[ DOM2EVENTS]
" Document Object Model (DOM) Poziom 2 Specyfikacja Zdarzeń", Rekomendacja W3C, T. Pixley, ed., 13 listopada 2000.
Dostępny na: http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/DOM-Level-2-Events
[ XML]
" Extensible Markup Language (XML) 1.0 (Edycja druga) ", Rekomendacja W3C, T. Bray et al., eds. , 6 października 2000.
Dostępny na: http://www.w3.org/TR/2000/REC-xml-20001006
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/REC-xml
[ SCHEMA]
" Schemat XML Część 2: Typy danych", Rekomendacja W3C, P. V. Biron et al., eds., 2 maja 2001.
Dostępny na: http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/xmlschema-2/
[RFC2119]
" Słowa kluczowe do użycia w RFC do wskazania poziomów wymagań ", RFC 2119, S. Bradner, March 1997.
Dostępny na: http://www.rfc-editor.org/rfc/rfc2119.txt
[XMLNAMES]
" Przestrzenie nazw w XML", Rekomendacja W3C, T. Bray et al., eds., 14 stycznia 1999.
dostępny na: http://www.w3.org/TR/1999/REC-xml-names-19990114
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/REC-xml-names

C.2.Inne odnośniki

[ HTML4]
" Specyfikacja HTML 4.01", Rekomendacja W3C, D. Raggett et al., eds. , 24 grudnia 1999.
Dostępna na: http://www.w3.org/TR/1999/REC-html401-19991224
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/html4
[SMIL20]
" Synchroniczny Język Integracji Multimediów (SMIL 2.0)", Rekomendacja W3C, J. Ayars et al., eds., 7 sierpnia 2001.
Dostępny na: http://www.w3.org/TR/2001/REC-smil20-20010807/
najnowsza wersja jest dostępna na: http://www.w3.org/TR/smil20
[ SVG]
" Scalable Vector Graphics (SVG) Specyfikacja 1.0", Rekomendacja W3C, J. Ferraiolo, ed., 4 września 2001.
Dostępny na: http://www.w3.org/TR/2001/REC-SVG-20010904/
najnowsza wersja jest dostępna na: http://www.w3.org/TR/SVG/
[ XHTML]
" XHTML™ 1.0: Rozszerzalny Hipertekstowy Język Znaczników (Druga Edycja)". S. Pemberton et al., 26 stycznia 2000, poprawione i uzupełnione 1 sierpnia 2002.
Dostępny na: http://www.w3.org/TR/2002/REC-xhtml1-20020801
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/xhtml1
[ XHTMLMOD]
" Modularyzacja XHTML™", Rekomendacja W3C, M. Altheim et al., eds., 10 kwietnia 2001.
Dostępny na: http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/xhtml-modularization
[ XHTMLSCHEMAMOD]
" Modularyzacja XHTML™ w Schemacie XML ", Projekt Roboczy W3C, D. Austin et al., eds., 3 października 2003, prace trwają.
Dostępne na: http://www.w3.org/TR/2003/WD-xhtml-m12n-schema-20031003
Najnowsza wersja jest dostępna na: http://www.w3.org/TR/xhtml-m12n-schema

D.Podziękowania

Jest to sekcja informacyjna.

Ten dokument został oryginalnie zredagowany przez Teda Wugofskiego (Openwave).

Specjalne podziękowania dla: Mark Baker (Sun Microsystems), Wayne Carr (Intel Corporation), Warner ten Kate (Philips Electronics), Patrick Schmitz i Peter Stark (Ericsson) za ich znaczny wkład w rozwój tej specyfikacji.

W czasie publikacji, uczestnikami Grupy Roboczej W3C HTML byli: