<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<article xml:id="xml.eventhandlers" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
 <title>Event Handlers</title>
 <para>
  The XML event handlers defined are:
  <table>
   <title>Supported XML handlers</title>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>PHP function to set handler</entry>
      <entry>Event description</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry><function>xml_set_element_handler</function></entry>
      <entry>
       Element events are issued whenever the XML parser
       encounters start or end tags.  There are separate handlers
       for start tags and end tags.
      </entry>
     </row>
     <row>
      <entry>
       <function>xml_set_character_data_handler</function>
      </entry>
      <entry>
       Character data is roughly all the non-markup contents of
       XML documents, including whitespace between tags.  Note
       that the XML parser does not add or remove any whitespace,
       it is up to the application (you) to decide whether
       whitespace is significant.
      </entry>
     </row>
     <row>
      <entry>
       <function>xml_set_processing_instruction_handler</function>
      </entry>
      <entry>
       PHP programmers should be familiar with processing
       instructions (PIs) already.  &lt;?php ?&gt; is a processing
       instruction, where <replaceable>php</replaceable> is called
       the "PI target".  The handling of these are
       application-specific, except that all PI targets starting
       with "XML" are reserved.
      </entry>
     </row>
     <row>
      <entry><function>xml_set_default_handler</function></entry>
      <entry>
       What goes not to another handler goes to the default
       handler.  You will get things like the XML and document
       type declarations in the default handler.
      </entry>
     </row>
     <row>
      <entry>
       <function>xml_set_unparsed_entity_decl_handler</function>
      </entry>
      <entry>
       This handler will be called for declaration of an unparsed
       (NDATA) entity.
      </entry>
     </row>
     <row>
      <entry>
       <function>xml_set_notation_decl_handler</function>
      </entry>
      <entry>
       This handler is called for declaration of a notation.
      </entry>
     </row>
     <row>
      <entry>
       <function>xml_set_external_entity_ref_handler</function>
      </entry>
      <entry>
       This handler is called when the XML parser finds a
       reference to an external parsed general entity.  This can
       be a reference to a file or URL, for example.  See <link
       linkend="example.xml-external-entity">the external entity
       example</link> for a demonstration.
      </entry>
     </row>
     <row>
      <entry>
       <function>xml_set_start_namespace_decl_handler</function>
      </entry>
      <entry>
       This handler is called for the start of a namespace declaration.
      </entry>
     </row>
     <row>
      <entry>
       <function>xml_set_end_namespace_decl_handler</function>
      </entry>
      <entry>
       This handler is called for the end of a namespace declaration. Note 
       that this event is <emphasis>not</emphasis> triggered by libXML.
      </entry>
     </row>
    </tbody>
   </tgroup>
  </table>
 </para>
</article>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->