You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general-cvs@xml.apache.org by ja...@apache.org on 2001/07/09 07:18:18 UTC

cvs commit: xml-site/targets/xerces-p/graphics index-header.jpg

jasons      01/07/08 22:18:18

  Modified:    targets/xerces-p domcount.html domcreate.html domprint.html
                        download.html index.html releases.html samples.html
               targets/xerces-p/graphics index-header.jpg
  Added:       targets/xerces-p sax2count.html saxcount.html
  Log:
  new
  
  Revision  Changes    Path
  1.6       +2 -1      xml-site/targets/xerces-p/domcount.html
  
  Index: domcount.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/xerces-p/domcount.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- domcount.html	2001/07/08 23:39:57	1.5
  +++ domcount.html	2001/07/09 05:18:15	1.6
  @@ -7,6 +7,8 @@
     
     
     
  +  
  +  
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
   
  @@ -22,7 +24,6 @@
   #
   
   my $USAGE = &quot;USAGE: $0 [-v][-n] file\n&quot;;
  -my $VERSION = q[$Id: domcount.html,v 1.5 2001/07/08 23:39:57 jasons Exp $];
   
   getopts ('vn') and ($#ARGV == 0)	or die &quot;$USAGE&quot;;
   -f $ARGV[0] or die &quot;File '$ARGV[0]' does not exist!\n&quot;;
  
  
  
  1.5       +2 -0      xml-site/targets/xerces-p/domcreate.html
  
  Index: domcreate.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/xerces-p/domcreate.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- domcreate.html	2001/07/08 23:39:57	1.4
  +++ domcreate.html	2001/07/09 05:18:15	1.5
  @@ -7,6 +7,8 @@
     
     
     
  +  
  +  
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
   
  
  
  
  1.5       +2 -0      xml-site/targets/xerces-p/domprint.html
  
  Index: domprint.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/xerces-p/domprint.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- domprint.html	2001/07/08 23:39:57	1.4
  +++ domprint.html	2001/07/09 05:18:15	1.5
  @@ -7,6 +7,8 @@
     
     
     
  +  
  +  
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
   
  
  
  
  1.2       +2 -0      xml-site/targets/xerces-p/download.html
  
  Index: download.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/xerces-p/download.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- download.html	2001/07/08 23:39:38	1.1
  +++ download.html	2001/07/09 05:18:15	1.2
  @@ -7,6 +7,8 @@
     
     
     
  +  
  +  
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
   
  
  
  
  1.10      +244 -35   xml-site/targets/xerces-p/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/xerces-p/index.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- index.html	2001/07/08 23:39:57	1.9
  +++ index.html	2001/07/09 05:18:15	1.10
  @@ -1,4 +1,4 @@
  -<HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>Xerces Perl</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/index-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
  +<HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>Xerces.pm: The Perl API to the Apache Xerces XML parser</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/index-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
     <A href="../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG alt="Home" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','graphics/ext-2-label-2.jpg','graphics/ext-2-label-3.jpg');" src="graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <IMG alt="Readme" border="0" height="12" hspace="0" src="graphics/index-label-1.jpg" vspace="0" width="120"><BR>
  @@ -7,40 +7,195 @@
     
     
     
  +  
  +  
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
   
   <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
  -  <P> The Xerces Perl project has created a Perl module,
  -  <B>Xerces.pm</B>, as the Perl API to the Apache project's Xerces
  -  XML parser. It is implemented using the Xerces C++ API, and it
  -  provides access to all of the C++ API from Perl.
  -  </P>
  -
  -  <P> Because it is based on Xerces-C, Xerces.pm provides a validating
  -  XML parser that makes it easy to give your application the ability
  -  to read and write XML data. A shared library is provided for
  -  parsing, generating, manipulating, and validating XML
  -  documents. Xerces.pm is faithful to the XML 1.0 recommendation and
  -  associated standards ( DOM 1.0, DOM 2.0. SAX 1.0, SAX 2.0,
  -  Namespaces), The parser provides high performance, modularity, and
  -  scalability. Source code, samples and API documentation are provided
  -  with the parser.
  -  </P>
  -
  -  <P> The majority of the API is created automatically using <A href="http://www.swig.org/">Simplified Wrapper Interface Generator
  -  (SWIG)</A>. However, care has been taken to make most method
  -  invocations natural to perl programmers, so a number of rough C++
  -  edges have been smoothed over (See the <A href="#perl-api">Special Perl API Features</A> section).
  -  </P>
  -  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Xerces.pm version 1.3</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  -    <P> This is the first fully-featured release of Xerces.pm. It
  -    provides access to <B>all</B> functionality in the Xerces-C 1.3
  -    API. 
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Xerces.pm 1.5.0</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <P> This module implements the Perl API to the Apache project's
  +      Xerces XML parser. It is implemented using the Xerces C++ API, and
  +      it provides access to <B>most</B> of the C++ API from Perl.
  +    </P>
  +
  +    <P> Because it is based on Xerces-C, Xerces.pm provides a validating
  +      XML parser that makes it easy to give your application the
  +      ability to read and write XML data. A shared library is provided
  +      for parsing, generating, manipulating, and validating XML
  +      documents. Xerces.pm is faithful to the XML 1.0 recommendation
  +      and associated standards (DOM 1.0, DOM 2.0. SAX 1.0, SAX 2.0,
  +      Namespaces, and Schema), The parser provides high performance,
  +      modularity, and scalability.
  +    </P>
  +
  +    <P>Xerces.pm implements the vast majority of the Xerces-C API (if you
  +      notice any discrepancies please mail the <A href="mailto:xerces-p-dev@xml.apache.org">list</A>). The
  +      exception of this is functions in the C++ API which have been
  +      overloaded to accept different arguments, currently have only a
  +      single version in the Perl API. This is a simple fix, but will
  +      take time.
  +    </P>
  +
  +    <P> The majority of the API is created automatically using <A href="http://www.swig.org/">Simplified Wrapper Interface Generator
  +	(SWIG)</A>. However, care has been taken to make most method
  +      invocations natural to perl programmers, so a number of rough C++
  +      edges have been smoothed over (See the <A href="#perl-api">Special Perl API Features</A> section).
  +    </P>
  +  </FONT></TD></TR></TABLE><BR>
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Available Platforms</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <P> The code has been tested on the following Unix platforms: </P>
  +    <UL>
  +      <LI>Linux</LI>
  +      <UL>
  +	<LI>PPC-debian: works jason</LI>
  +	<LI>x86-debian: works harmon</LI>
  +	<LI>x86-redhat6.2: works jason</LI>
  +	<LI>x86-redhat7: works jason (recompile Xerces-C and
  +	Perl-5.6.1 from source)</LI>
  +      </UL>
  +      <LI>BSD</LI>
  +      <UL>
  +	<LI>NetBSD (egcs-2.91.66, works: Emanuel Dreyfus
  +	&lt;p99dreyf@criens.u-psud.fr&gt;)</LI>
  +	</UL>
  +      <LI>Solaris </LI>
  +      <UL>
  +	<LI>Solaris 8: works cc and gcc (recompile perl and Xerces-C from source)</LI>
  +	<LI>Solaris 5.6: works gcc</LI>
  +      </UL>
  +    </UL>
  +    <P>Windows is currently not supported. However, minimal changes would be
  +      necessary to enable functionality under Windows (modification of
  +      some Unix 'make' specific code in Makefile.PL).
  +    </P>
  +  </FONT></TD></TR></TABLE><BR>
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Build Requirements</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <OL>
  +      <LI>An ANSI C++ compiler.  Builds are known to work with the GNU
  +	compiler.  Ports to other compilers such as MSVC++ (the Microsoft
  +	Visual C++ compiler and development environment) are in the works.
  +	Contributions in this area are always welcome :-).
  +      </LI>
  +      <LI>Perl5 (Xerces.pm has been tested with perl 5.005 and 5.6).
  +	Currently only tested on XML documents that are encoded in plain
  +	old ASCII.
  +      </LI>
  +      <LI>The Apache Xerces C++ XML Parser version 1.5 (which can be
  +	downloaded from: <A href="http://xml.apache.org/dist/xerces-c/stable/">http://xml.apache.org/dist/xerces-c/stable/</A>
  +	<BR><BR>
  +	You'll need both the library and header files, and to set up any
  +	environment variables that will direct the Xerces.pm build to the
  +	directories where these reside.
  +      </LI>
  +    </OL>
  +  </FONT></TD></TR></TABLE><BR>
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Optional Components</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <P><A href="http://www.swig.org/"> Simplified Wrapper Interface
  +	Generator (SWIG)</A> is an open source tool by David Beazley of
  +      the University of Chicago for automatically generating Perl
  +      wrappers for C and C++ libraries (i.e. *.a or *.so for UNIX, *.dll
  +      for Windoes).  You can get the source from <A href="http://www.swig.org/">www.swig.org</A> and then build it
  +      for your platform.
  +    </P>
  +    <P>You will only need this if the include Xerces.C and Xerces.pm
  +      files do not work for your perl distribution. The pre-generated
  +      files have been created by SWIG 1.3 and work under perl-5.005
  +      and perl-5.6.
  +    </P>
  +    <P>
  +      This port is know to work with versions 1.1p5 and 1.3a5 of SWIG.
  +    </P>
  +    <P>
  +      If your planning to use SWIG, you can set the environment variable
  +      SWIG to the full path to the SWIG executable before running <CODE><FONT face="courier, monospaced">perl
  +	Makefile.pl</FONT></CODE>. For example:</P>
  +    <UL>
  +      <LI><CODE><FONT face="courier, monospaced">export SWIG=/usr/bin/swig</FONT></CODE></LI>
  +    </UL>
  +    <P>
  +      This is only necessary if it isn't in your path or you have more
  +      than one version installed.
       </P>
     </FONT></TD></TR></TABLE><BR>
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Prepare for the build</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <OL>
  +      <LI>Unpack the archive in a directory of your choice.  Example (for
  +	UNIX):</LI>
  +      <UL>
  +	<LI><CODE><FONT face="courier, monospaced">cd &lt;DIRECTORY OF YOUR CHOICE&gt;</FONT></CODE></LI>
  +	<LI><CODE><FONT face="courier, monospaced">tar xvf &lt;DIRECTORY Xerces-1.5.x.tar.gz IS
  +	    LOCATED&gt;/Xerces-1.5.x.tar.gz</FONT></CODE></LI>
  +      </UL>
  +      <LI>Go to the Xerces-1.5.x directory:</LI>
  +      <UL>
  +	<LI><CODE><FONT face="courier, monospaced">cd Xerces-1.5.x</FONT></CODE></LI>
  +      </UL>
  +      <LI>Examine the Perl script &quot;Makefile.PL&quot;.  You may need to change
  +	some locations of libraries and include directories. If you
  +	attempt to build on a platform other than UNIX, you will probably
  +	have to change more.
  +	<BR><BR>
  +	Also, you may want to edit the path to the swig executable
  +	($SWIG), if you're planning on regenerating Xerces.C and
  +	Xerces.pm
  +      </LI>
  +      <LI>If the Xerces-C library and header files are installed on your
  +	system directly, e.g. via an rpm or deb package, proceed to the
  +	build.
  +	<BR><BR>    
  +	Otherwise, you must download Xerces from xml.apache.org and build
  +	it.  To build Xerces.pm in this case, make sure the value of your
  +	XERCESCROOT environment variable is the top-level directory of
  +	your xerces distribution (i.e. the same value it needs to be to
  +	build XERCES).
  +	<BR><BR>
  +	If you have built Xerces-C yourself and want to work directly from
  +	the build directory, then you should only need to set the
  +	XERCESCROOT environment variable.
  +	If you have installed xerces on your system you should only need
  +	to set the XERCES_INCLUDE and XERCES_LIB environment
  +	variables. For example:
  +      </LI>
  +      <UL>
  +	<LI><CODE><FONT face="courier, monospaced">export
  +	    XERCES_INCLUDE=/usr/include/xerces</FONT></CODE></LI>
  +	<LI><CODE><FONT face="courier, monospaced">export XERCES_LIB=/usr/lib</FONT></CODE></LI>
  +      </UL>
  +    </OL>
  +  </FONT></TD></TR></TABLE><BR>
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Build Xerces.pm</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <OL>
  +      <LI>Go to the Xerces-1.5.x directory.</LI>
  +      <LI>Build Xerces.pm as you would any perl package that you might get
  +	from CPAN: </LI>
  +      <UL>
  +	<LI><CODE><FONT face="courier, monospaced">perl Makefile.PL</FONT></CODE></LI>
  +	<LI><CODE><FONT face="courier, monospaced">make</FONT></CODE></LI>	
  +	<LI><CODE><FONT face="courier, monospaced">make test</FONT></CODE></LI>	
  +	<LI><CODE><FONT face="courier, monospaced">make install</FONT></CODE></LI>	
  +      </UL>
  +    </OL>
  +  </FONT></TD></TR></TABLE><BR>
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Using Xerces.pm</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <P>
  +      Xerces.pm implements the vast majority of the Xerces-C API (if
  +      you notice any discrepancies please mail the
  +      list). Documentation for this API are sadly not available in POD
  +      format, but the Xerces-C html documentation is available at:
  +      <A href="http://xml.apache.org/xerces-c/apiDocs/index.html">
  +      http://xml.apache.org/xerces-c/apiDocs/index.html </A></P>
  +    <P>
  +      For more information, see the sample scripts: DOMCount.pl,
  +      DOMCreate.pl, and DOMPrint.pl in the samples/ directory, or the test
  +      scripts located in the t/ directory (especially the TestUtils.pm
  +      module).
  +    </P>
  +  </FONT></TD></TR></TABLE><BR>
     <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Special Perl API Features</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  -    <P> Special handling has been provided for certain functions:
  +    <P> Even though Xerces.pm is based on the C++ API, it has been modified in
  +      a few ways to make it more accessible to typical Perl usage,
  +      primarily in the handling:
       <A name="perl-api"><!--anchor--></A>
       </P>
       <UL>
  @@ -48,10 +203,13 @@
         <LI> <A href="#list">List I/O</A>   (Perl lists versus DOM_NodeList's)</LI>
         <LI> <A href="#hash">Hash I/O</A>   (Perl hashes versus DOM_NamedNodeMap's)</LI>
         <LI> <A href="#serialize">Serialize API</A></LI>
  +      <LI> <A href="#handlers">Implementing Perl handlers for C++
  +      even callbacks</A></LI>
  +      <LI> <A href="#exceptions">handling C++ exceptions</A></LI>
       </UL>
  -
  +    <P><A name="string"><!--anchor--></A></P>
       <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>String I/O</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  -      <P><A name="string"><!--anchor--></A>Note that the creation of
  +      <P>Note that the creation of
         <CODE><FONT face="courier, monospaced">DOMString</FONT></CODE>'s as arguments to to functions is
         optional.  That is, where in C++ you'd have to use:</P>
   
  @@ -78,8 +236,9 @@
         fact, it makes them entirely invalid).
         </P>
       </FONT></TD></TR></TABLE><BR>
  +    <P><A name="list"><!--anchor--></A></P>
       <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>List I/O</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  -      <P><A name="list"><!--anchor--></A>Any function that in the C++ API returns
  +      <P>Any function that in the C++ API returns
         a <CODE><FONT face="courier, monospaced">DOM_NodeList</FONT></CODE> (<B>e.g.</B>
         <CODE><FONT face="courier, monospaced">getChildNodes()</FONT></CODE> and
         <CODE><FONT face="courier, monospaced">getElementsByTagName()</FONT></CODE> for example) will return
  @@ -98,8 +257,9 @@
         </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
   
       </FONT></TD></TR></TABLE><BR>
  +    <P><A name="hash"><!--anchor--></A></P>
       <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Hash I/O</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  -      <P><A name="hash"><!--anchor--></A> Any function that in the C++ API
  +      <P> Any function that in the C++ API
         returns a <CODE><FONT face="courier, monospaced">DOM_NamedNodeMap</FONT></CODE>
         (<CODE><FONT face="courier, monospaced">getEntities()</FONT></CODE> and <CODE><FONT face="courier, monospaced">getAttributes()</FONT></CODE> for
         example) will return different types if they are called in a
  @@ -118,20 +278,69 @@
         	my %attrs = $element_node-&gt;getAttributes();
         </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
       </FONT></TD></TR></TABLE><BR>
  +    <P><A name="serialize"><!--anchor--></A></P>
       <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Serialize API</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  -      <P><A name="serialize"><!--anchor--></A> The XML::Xerces::DOMParse module implements a generic
  +      <P>The XML::Xerces::DOMParse module implements a generic
         serializer API for DOM Trees. See the script <A href="domprint.html"> DOMPrint.pl</A> for an example of how to
         use the API.
         </P>
  +      <P>For less complex usage, just use the serialize() method defined for
  +	all DOM_Node subclasses.
  +      </P>
  +    </FONT></TD></TR></TABLE><BR>
  +    <P><A name="handlers"><!--anchor--></A></P>
  +    <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Implementing {Document,Content,Error}Handlers from Perl     </B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  +      <P>Thanks to suggestions from Duncan Cameron, Xerces.pm now has a handler
  +	API that matches the currently used semantics of other Perl
  +	XML API's. There are three classes available for application
  +	writers:</P>
  +      <UL>
  +	<LI>PerlErrorHandler    (SAX 1/2 and DOM 1)</LI>
  +	<LI>PerlDocumentHandler (SAX 1)</LI>
  +	<LI>PerlContentHandler  (SAX 2)</LI>
  +      </UL>
  +      <P>Using these classes is as simple as creating a perl subclass of the
  +	needed class, and redefining any needed methods. For example,
  +	to override the default fatal_error() method of the
  +	PerlErrorHandler class we can include this piece of code
  +	within our application:</P>
  +      <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +
  +  package MyErrorHandler;
  +  @ISA = qw(XML::Xerces::PerlErrorHandler);
  +  sub fatal_error {die &quot;Oops, I got an error\n&quot;;}
  +  
  +  package main;
  +  my $dom = new XML::Xerces::DOMParser;
  +  $dom-&gt;setErrorHandler(MyErrorHandler-&gt;new());
  +
  +</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +    </FONT></TD></TR></TABLE><BR>
  +    <P><A name="exceptions"><!--anchor--></A></P>
  +    <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Handling exceptions ({XML,DOM,SAX}Exception's)</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  +      <P>Some errors occur outside parsing and are not caught by the parser's
  +	ErrorHandler. Xerces.pm provides a way for catching these errors using
  +	the PerlExceptionHandler class.
  +      </P>
  +      <P>
  +	There are a default methods that prints out an error message and calls
  +	die(), but if more is needed, see the files t/XMLException.t,
  +	t/SAXException.t, and t/DOMException.t for details on how to roll your
  +	own handler.
  +      </P>
       </FONT></TD></TR></TABLE><BR>
     </FONT></TD></TR></TABLE><BR>
     <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Sample Code</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
       <P> Xerces.pm comes with three sample applications:</P>
       <UL>
  -      <LI> <A href="domprint.html">DOMPrint.pl</A>: Uses the DOM
  -      interface to output a pretty-printed version of an XML file to STDOUT </LI>
  +      <LI> <A href="saxcount.html">SAXCount.pl</A>: Uses the SAX
  +      interface to output a count of the number of elements in an XML document</LI>
  +      <LI> <A href="sax2count.html">SAX2Count.pl</A>: Uses the SAX2
  +      interface to output a count of the number of elements in an XML document</LI>
         <LI> <A href="domcount.html">DOMCount.pl</A>: Uses the DOM
         interface to output a count of the number of elements in an XML document</LI>
  +      <LI> <A href="domprint.html">DOMPrint.pl</A>: Uses the DOM
  +      interface to output a pretty-printed version of an XML file to STDOUT </LI>
         <LI> <A href="domcreate.html">DOMCreate.pl</A>: Creates a simple XML
         document using the DOM interface and writes it to STDOUT</LI>
       </UL>
  
  
  
  1.3       +2 -0      xml-site/targets/xerces-p/releases.html
  
  Index: releases.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/xerces-p/releases.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- releases.html	2001/07/08 23:39:57	1.2
  +++ releases.html	2001/07/09 05:18:16	1.3
  @@ -7,6 +7,8 @@
     
     
     
  +  
  +  
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <IMG alt="Releases" border="0" height="12" hspace="0" src="graphics/releases-label-1.jpg" vspace="0" width="120"><BR>
   
  
  
  
  1.5       +6 -0      xml-site/targets/xerces-p/samples.html
  
  Index: samples.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/xerces-p/samples.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- samples.html	2001/07/08 23:39:57	1.4
  +++ samples.html	2001/07/09 05:18:16	1.5
  @@ -7,6 +7,8 @@
     
     
     
  +  
  +  
     <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
     <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
   
  @@ -14,6 +16,10 @@
     <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Sample Code</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
       <P> Xerces.pm comes with three sample applications:</P>
       <UL>
  +      <LI> <A href="saxcount.html">SAXCount.pl</A>: Uses the SAX
  +      interface to output a count of the number of elements in an XML document</LI>
  +      <LI> <A href="sax2count.html">SAX2Count.pl</A>: Uses the SAX2
  +      interface to output a count of the number of elements in an XML document</LI>
         <LI> <A href="domprint.html">DOMPrint.pl</A>: Uses the DOM
         serialize API to output a pretty-printed version of an XML file
         to STDOUT.</LI> 
  
  
  
  1.1                  xml-site/targets/xerces-p/sax2count.html
  
  Index: sax2count.html
  ===================================================================
  <HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>DOMCount.pl</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/sax2count-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
    <A href="../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG alt="Home" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','graphics/ext-2-label-2.jpg','graphics/ext-2-label-3.jpg');" src="graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
    <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
    <A href="index.html" onMouseOut="rolloverOff('side-index');" onMouseOver="rolloverOn('side-index');"><IMG alt="Readme" border="0" height="12" hspace="0" name="side-index" onLoad="rolloverLoad('side-index','graphics/index-label-2.jpg','graphics/index-label-3.jpg');" src="graphics/index-label-3.jpg" vspace="0" width="120"></A><BR>
    <A href="samples.html" onMouseOut="rolloverOff('side-samples');" onMouseOver="rolloverOn('side-samples');"><IMG alt="Samples" border="0" height="12" hspace="0" name="side-samples" onLoad="rolloverLoad('side-samples','graphics/samples-label-2.jpg','graphics/samples-label-3.jpg');" src="graphics/samples-label-3.jpg" vspace="0" width="120"></A><BR>
    <A href="download.html" onMouseOut="rolloverOff('side-download');" onMouseOver="rolloverOn('side-download');"><IMG alt="Download" border="0" height="12" hspace="0" name="side-download" onLoad="rolloverLoad('side-download','graphics/download-label-2.jpg','graphics/download-label-3.jpg');" src="graphics/download-label-3.jpg" vspace="0" width="120"></A><BR>
    
    
    
    
    
    <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
    <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
  
  <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
        <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  use strict;
  use XML::Xerces;
  use Getopt::Std;
  use vars qw($opt_v $opt_n);
  use Benchmark;
  #
  # Read and validate command line args
  #
  
  my $USAGE = &quot;USAGE: $0 [-v][-n] file\n&quot;;
  
  getopts ('vn') &amp;&amp; ($#ARGV == 0)	or die &quot;$USAGE&quot;;
  -f $ARGV[0] or die &quot;File '$ARGV[0]' does not exist!\n&quot;;
  
  my $validate = $opt_v || 0;
  my $namespace = $opt_n || 0;
  my $file = $ARGV[0];
  
  #
  # Count the nodes
  #
  
  package MyContentHandler;
  use strict;
  use vars qw(@ISA);
  @ISA = qw(XML::Xerces::PerlContentHandler);
  
  sub start_element {
    my $self = shift;
    $self-&gt;{elements}++;
    $self-&gt;{attrs} = 0;
  }
  sub characters {
    my ($self,$str,$len) = @_;
    $self-&gt;{chars} += $len;
  }
  sub ignorable_whitespace {
    my ($self,$str,$len) = @_;
    $self-&gt;{ws} += $len;
  }
  
  package main;
  my $parser = XML::Xerces::XMLReaderFactory::createXMLReader();
  $parser-&gt;setFeature(&quot;http://xml.org/sax/features/namespaces&quot;, $namespace);
  $parser-&gt;setFeature(&quot;http://xml.org/sax/features/validation&quot;, $validate);
  my $error_handler = XML::Xerces::PerlErrorHandler-&gt;new();
  $parser-&gt;setErrorHandler($error_handler);
  
  my $CONTENT_HANDLER = MyContentHandler-&gt;new();
  $parser-&gt;setContentHandler($CONTENT_HANDLER);
  
  my $t0 = new Benchmark;
  $parser-&gt;parse (XML::Xerces::LocalFileInputSource-&gt;new($file));
  my $t1 = new Benchmark;
  my $td = timediff($t1, $t0);
  
  print &quot;$file: duration: &quot;, timestr($td), &quot;\n&quot;;
  print &quot;elems: &quot;, $CONTENT_HANDLER-&gt;{elements}, &quot;\n&quot;; 
  print &quot;attrs: &quot;, $CONTENT_HANDLER-&gt;{attrs}, &quot;\n&quot;;
  print &quot;whitespace: &quot;, $CONTENT_HANDLER-&gt;{ws}, &quot;\n&quot;;
  print &quot;characters: &quot;, $CONTENT_HANDLER-&gt;{chars}, &quot;\n&quot;;
  
  exit(0);
  </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  </TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
                Copyright &copy; 1999 The Apache Software Foundation.
                All Rights Reserved.
              </I></FONT></TD></TR></TABLE></BODY></HTML>
  
  
  1.1                  xml-site/targets/xerces-p/saxcount.html
  
  Index: saxcount.html
  ===================================================================
  <HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>DOMCount.pl</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/saxcount-header.jpg" vspace="0" width="456"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
    <A href="../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG alt="Home" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','graphics/ext-2-label-2.jpg','graphics/ext-2-label-3.jpg');" src="graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
    <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
    <A href="index.html" onMouseOut="rolloverOff('side-index');" onMouseOver="rolloverOn('side-index');"><IMG alt="Readme" border="0" height="12" hspace="0" name="side-index" onLoad="rolloverLoad('side-index','graphics/index-label-2.jpg','graphics/index-label-3.jpg');" src="graphics/index-label-3.jpg" vspace="0" width="120"></A><BR>
    <A href="samples.html" onMouseOut="rolloverOff('side-samples');" onMouseOver="rolloverOn('side-samples');"><IMG alt="Samples" border="0" height="12" hspace="0" name="side-samples" onLoad="rolloverLoad('side-samples','graphics/samples-label-2.jpg','graphics/samples-label-3.jpg');" src="graphics/samples-label-3.jpg" vspace="0" width="120"></A><BR>
    <A href="download.html" onMouseOut="rolloverOff('side-download');" onMouseOver="rolloverOn('side-download');"><IMG alt="Download" border="0" height="12" hspace="0" name="side-download" onLoad="rolloverLoad('side-download','graphics/download-label-2.jpg','graphics/download-label-3.jpg');" src="graphics/download-label-3.jpg" vspace="0" width="120"></A><BR>
    
    
    
    
    
    <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
    <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');" src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
  
  <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
        <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  use strict;
  use XML::Xerces;
  use Getopt::Std;
  use vars qw($opt_v $opt_n);
  use Benchmark;
  #
  # Read and validate command line args
  #
  
  my $USAGE = &quot;USAGE: $0 [-v][-n] file\n&quot;;
  
  getopts ('vn') &amp;&amp; ($#ARGV == 0)	or die &quot;$USAGE&quot;;
  -f $ARGV[0] or die &quot;File '$ARGV[0]' does not exist!\n&quot;;
  
  my $validate = $opt_v || 0;
  my $namespace = $opt_n || 0;
  my $file = $ARGV[0];
  
  #
  # Count the nodes
  #
  
  my $parser = XML::Xerces::SAXParser-&gt;new();
  $parser-&gt;setDoValidation ($validate);
  $parser-&gt;setDoNamespaces ($namespace);
  my $ERROR_HANDLER = XML::Xerces::PerlErrorHandler-&gt;new();
  $parser-&gt;setErrorHandler($ERROR_HANDLER);
  
  package MyDocumentHandler;
  use strict;
  use vars qw(@ISA);
  @ISA = qw(XML::Xerces::PerlDocumentHandler);
  
  sub start_element {
    my $self = shift;
    $self-&gt;{elements}++;
    $self-&gt;{attrs} = 0;
  }
  sub characters {
    my ($self,$str,$len) = @_;
    $self-&gt;{chars} += $len;
  }
  sub ignorable_whitespace {
    my ($self,$str,$len) = @_;
    $self-&gt;{ws} += $len;
  }
  
  package main;
  my $DOCUMENT_HANDLER = MyDocumentHandler-&gt;new();
  $parser-&gt;setDocumentHandler($DOCUMENT_HANDLER);
  
  my $t0 = new Benchmark;
  $parser-&gt;parse (XML::Xerces::LocalFileInputSource-&gt;new($file));
  my $t1 = new Benchmark;
  my $td = timediff($t1, $t0);
  
  print &quot;$file: duration: &quot;, timestr($td), &quot;\n&quot;;
  print &quot;elems: &quot;, $DOCUMENT_HANDLER-&gt;{elements}, &quot;\n&quot;; 
  print &quot;attrs: &quot;, $DOCUMENT_HANDLER-&gt;{attrs}, &quot;\n&quot;;
  print &quot;whitespace: &quot;, $DOCUMENT_HANDLER-&gt;{ws}, &quot;\n&quot;;
  print &quot;characters: &quot;, $DOCUMENT_HANDLER-&gt;{chars}, &quot;\n&quot;;
  
  
  </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  </TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
                Copyright &copy; 1999 The Apache Software Foundation.
                All Rights Reserved.
              </I></FONT></TD></TR></TABLE></BODY></HTML>
  
  
  1.9       +49 -28    xml-site/targets/xerces-p/graphics/index-header.jpg
  
  	<<Binary file>>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: general-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: general-cvs-help@xml.apache.org