CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 M y S Q L A B 00002 00003 T h i s p r o g r a m i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y 00004 00005 i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y 00006 00007 t h e F r e e S o f t w a r e F o u n d a t i o n ; v e r s i o n 2 o f t h e L i c e n s e . 00008 00009 T h i s p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , 00010 00011 b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f 00012 00013 M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e 00014 00015 G N U G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s . 00016 00017 Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e 00018 00019 a l o n g w i t h t h i s p r o g r a m ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e 00020 00021 F o u n d a t i o n , I n c . , 5 9 T e m p l e P l a c e , S u i t e 3 3 0 , B o s t o n , M A 0 2 1 1 1 - 1 3 0 7 U S A * / 00022 00023 00024 00025 # i f n d e f _ m y _ x m l _ h 00026 00027 # d e f i n e _ m y _ x m l _ h 00028 00029 # i f d e f _ _ c p l u s p l u s 00030 00031 e x t e r n " C " { 00032 00033 # e n d i f 00034 00035 00036 00037 # d e f i n e M Y _ X M L _ O K 0 00038 00039 # d e f i n e M Y _ X M L _ E R R O R 1 00040 00041 / * 00042 00043 A f l a g w h e t h e r t o u s e a b s o l u t e t a g n a m e s i n c a l l - b a c k f u n c t i o n s , 00044 00045 l i k e " a " , " a . b " a n d " a . b . c " ( u s e d i n c h a r a c t e r s e t f i l e p a r s e r ) , 00046 00047 o r r e l a t i v e n a m e s l i k e " a " , " b " a n d " c " . 00048 00049 * / 00050 00051 # d e f i n e M Y _ X M L _ F L A G _ R E L A T I V E _ N A M E S 1 00052 00053 / * 00054 00055 A f l a g w h e t h e r t o s k i p n o r m i l i z a t i o n o f t e x t v a l u e s b e f o r e c a l l i n g 00056 00057 c a l l - b a c k f u n c t i o n s : i . e . s k i p l e a d i n g / t r a i l i n g s p a c e s , 00058 00059 \ r , \ n , \ t c h a r a c t e r s . 00060 00061 * / 00062 00063 # d e f i n e M Y _ X M L _ F L A G _ S K I P _ T E X T _ N O R M A L I Z A T I O N 2 00064 00065 e n u m m y _ x m l _ n o d e _ t y p e 00066 00067 { 00068 00069 M Y _ X M L _ N O D E _ T A G , / * c a n h a v e T A G , A T T R a n d T E X T c h i l d r e n * / 00070 00071 M Y _ X M L _ N O D E _ A T T R , / * c a n h a v e T E X T c h i l d r e n * / 00072 00073 M Y _ X M L _ N O D E _ T E X T / * c a n n o t h a v e c h i l d r e n * / 00074 00075 } ; 00076 00077 t y p e d e f s t r u c t x m l _ s t a c k _ s t 00078 00079 { 00080 00081 i n t f l a g s ; 00082 00083 e n u m m y _ x m l _ n o d e _ t y p e c u r r e n t _ n o d e _ t y p e ; 00084 00085 c h a r e r r s t r [ 1 2 8 ] ; 00086 00087 c h a r a t t r [ 1 2 8 ] ; 00088 00089 c h a r * a t t r e n d ; 00090 00091 c o n s t c h a r * b e g ; 00092 00093 c o n s t c h a r * c u r ; 00094 00095 c o n s t c h a r * e n d ; 00096 00097 v o i d * u s e r _ d a t a ; 00098 00099 i n t ( * e n t e r ) ( s t r u c t x m l _ s t a c k _ s t * s t , c o n s t c h a r * v a l , s i z e _ t l e n ) ; 00100 00101 i n t ( * v a l u e ) ( s t r u c t x m l _ s t a c k _ s t * s t , c o n s t c h a r * v a l , s i z e _ t l e n ) ; 00102 00103 i n t ( * l e a v e _ x m l ) ( s t r u c t x m l _ s t a c k _ s t * s t , c o n s t c h a r * v a l , s i z e _ t l e n ) ; 00104 00105 } M Y _ X M L _ P A R S E R ; 00106 00107 v o i d m y _ x m l _ p a r s e r _ c r e a t e ( M Y _ X M L _ P A R S E R * s t ) ; 00108 00109 v o i d m y _ x m l _ p a r s e r _ f r e e ( M Y _ X M L _ P A R S E R * s t ) ; 00110 00111 i n t m y _ x m l _ p a r s e ( M Y _ X M L _ P A R S E R * s t , c o n s t c h a r * s t r , s i z e _ t l e n ) ; 00112 00113 v o i d m y _ x m l _ s e t _ v a l u e _ h a n d l e r ( M Y _ X M L _ P A R S E R * s t , i n t ( * ) ( M Y _ X M L _ P A R S E R * , 00114 00115 c o n s t c h a r * , 00116 00117 s i z e _ t l e n ) ) ; 00118 00119 v o i d m y _ x m l _ s e t _ e n t e r _ h a n d l e r ( M Y _ X M L _ P A R S E R * s t , i n t ( * ) ( M Y _ X M L _ P A R S E R * , 00120 00121 c o n s t c h a r * , 00122 00123 s i z e _ t l e n ) ) ; 00124 00125 v o i d m y _ x m l _ s e t _ l e a v e _ h a n d l e r ( M Y _ X M L _ P A R S E R * s t , i n t ( * ) ( M Y _ X M L _ P A R S E R * , 00126 00127 c o n s t c h a r * , 00128 00129 s i z e _ t l e n ) ) ; 00130 00131 v o i d m y _ x m l _ s e t _ u s e r _ d a t a ( M Y _ X M L _ P A R S E R * s t , v o i d * ) ; 00132 00133 s i z e _ t m y _ x m l _ e r r o r _ p o s ( M Y _ X M L _ P A R S E R * s t ) ; 00134 00135 u i n t m y _ x m l _ e r r o r _ l i n e n o ( M Y _ X M L _ P A R S E R * s t ) ; 00136 00137 c o n s t c h a r * m y _ x m l _ e r r o r _ s t r i n g ( M Y _ X M L _ P A R S E R * s t ) ; 00138 00139 # i f d e f _ _ c p l u s p l u s 00140 00141 } 00142 00143 # e n d i f 00144 00145 # e n d i f / * _ m y _ x m l _ h * / 00146 00147