Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

SAXClient.hpp

Go to the documentation of this file.
00001 /*
00002 This product contains certain software code or other information
00003 ("AT&T Software") proprietary to AT&T Corp. ("AT&T").  The AT&T
00004 Software is provided to you "AS IS".  YOU ASSUME TOTAL RESPONSIBILITY
00005 AND RISK FOR USE OF THE AT&T SOFTWARE.  AT&T DOES NOT MAKE, AND
00006 EXPRESSLY DISCLAIMS, ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND
00007 WHATSOEVER, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
00008 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, WARRANTIES OF
00009 TITLE OR NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS, ANY
00010 WARRANTIES ARISING BY USAGE OF TRADE, COURSE OF DEALING OR COURSE OF
00011 PERFORMANCE, OR ANY WARRANTY THAT THE AT&T SOFTWARE IS "ERROR FREE" OR
00012 WILL MEET YOUR REQUIREMENTS.
00013 
00014 Unless you accept a license to use the AT&T Software, you shall not
00015 reverse compile, disassemble or otherwise reverse engineer this
00016 product to ascertain the source code for any AT&T Software.
00017 
00018 (c) AT&T Corp. All rights reserved.  AT&T is a registered trademark of AT&T Corp.
00019 
00020 ***********************************************************************
00021 
00022 History:
00023 
00024       24/11/99  - initial release by Hartmut Liefke, liefke@seas.upenn.edu
00025                                      Dan Suciu,      suciu@research.att.com
00026 */
00027 
00028 //**************************************************************************
00029 //**************************************************************************
00030 
00031 // This module contains the SAX-Client. The interface used is very similar to SAX.
00032 
00033 #ifndef SAX_CLIENT
00034 #define SAX_CLIENT
00035 
00036 #include "MemStreamer.hpp"
00037 #include "PathTree.hpp"
00038 #include "LabelDict.hpp"
00039 #include "Compress.hpp"
00040 
00041 void PrintLabel(char *str,int len);
00042 
00043 // XMLParse contains the XML parser that calls the SAX client.
00044 class XMLParse;
00045 extern XMLParse *xmlparser;
00046 
00047 class SAXClient
00048 {
00049 public:
00050 
00051    static void HandleAttribName(char *str,int len,char iscont);
00052       // Handles a given attribute name
00053       // 'iscont' is one, if the string is not complete and more is to follow
00054 
00055    static void HandleAttribValue(char *str,int len,char iscont);
00056       // Handles an attribute value
00057       // 'iscont' is one, if the string is not complete and more is to follow
00058 
00059    static void HandleAttribWhiteSpaces(char *str,int len,char iscont);
00060       // Handles white spaces between attribute-value pairs
00061       // 'iscont' is one, if the string is not complete and more is to follow
00062 
00063    static void HandleStartLabel(char *str,int len,char iscont);
00064       // Handles a start tag
00065       // 'iscont' is one, if the string is not complete and more is to follow
00066 
00067    static void HandleEndLabel(char *str,int len,char iscont);
00068       // Handles an end tag
00069       // 'iscont' is one, if the string is not complete and more is to follow
00070 
00071    static void HandleText(char *str,int len,char iscont,int leftwslen,int rightwslen);
00072       // Handles a piece of text.
00073       // 'leftwslen' and 'rightwslen' specify how many white spaces (' ', '\n', ...)
00074       // are on the left and right end of the text.
00075       // If 'iscont=1', then 'rightwslen' must be zero and for the text piece
00076       // coming afterwards, 'leftwslen' must be zero.
00077       // It is also possible that 'len=leftwslen=rightwslen'
00078 
00079    static void HandleComment(char *str,int len,char iscont);
00080       // Handles a piece of comment data
00081 
00082    static void HandlePI(char *str,int len,char iscont);
00083       // Handles a piece of processing instruction data
00084 
00085    static void HandleDOCTYPE(char *str,int len,char iscont);
00086       // Handles a piece of DOCTYPE data
00087 
00088    static void HandleCDATA(char *str,int len,char iscont);
00089       // Handles a piece of CDATA data
00090 };
00091 
00092 #endif

Generated on Sat Oct 13 16:08:40 2001 for XMILL by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001