00001
00002
00003 #include "SAXPrint_Handler.h"
00004 #include "ace/ACE.h"
00005 #include "ace/Log_Msg.h"
00006
00007 #if !defined (__ACEXML_INLINE__)
00008 # include "SAXPrint_Handler.inl"
00009 #endif
00010
00011 ACEXML_SAXPrint_Handler::ACEXML_SAXPrint_Handler (const ACEXML_Char* filename)
00012 : indent_ (0), fileName_(ACE::strnew (filename)), locator_ (0)
00013 {
00014
00015 }
00016
00017 ACEXML_SAXPrint_Handler::~ACEXML_SAXPrint_Handler (void)
00018 {
00019 delete [] this->fileName_;
00020 }
00021
00022 void
00023 ACEXML_SAXPrint_Handler::characters (const ACEXML_Char *cdata,
00024 size_t,
00025 size_t
00026 ACEXML_ENV_ARG_DECL_NOT_USED)
00027 {
00028 ACE_DEBUG ((LM_DEBUG,
00029 ACE_TEXT ("%s"),
00030 cdata));
00031 }
00032
00033 void
00034 ACEXML_SAXPrint_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
00035 {
00036
00037
00038 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
00039 }
00040
00041 void
00042 ACEXML_SAXPrint_Handler::endElement (const ACEXML_Char *,
00043 const ACEXML_Char *,
00044 const ACEXML_Char *qName
00045 ACEXML_ENV_ARG_DECL_NOT_USED)
00046 {
00047
00048
00049 this->dec_indent ();
00050 this->print_indent ();
00051 ACE_DEBUG ((LM_DEBUG,
00052 ACE_TEXT ("</%s>"),
00053 qName));
00054 }
00055
00056 void
00057 ACEXML_SAXPrint_Handler::endPrefixMapping (const ACEXML_Char *
00058 ACEXML_ENV_ARG_DECL_NOT_USED)
00059 {
00060
00061
00062
00063 }
00064
00065 void
00066 ACEXML_SAXPrint_Handler::ignorableWhitespace (const ACEXML_Char * cdata,
00067 int,
00068 int ACEXML_ENV_ARG_DECL_NOT_USED)
00069 {
00070 ACE_DEBUG ((LM_DEBUG,
00071 ACE_TEXT ("%s"),
00072 cdata));
00073
00074
00075 }
00076
00077 void
00078 ACEXML_SAXPrint_Handler::processingInstruction (const ACEXML_Char *target,
00079 const ACEXML_Char *data
00080 ACEXML_ENV_ARG_DECL_NOT_USED)
00081 {
00082
00083
00084 this->print_indent ();
00085 ACE_DEBUG ((LM_DEBUG,
00086 ACE_TEXT ("<?%s %s>\n"),
00087 target, data));
00088 }
00089
00090 void
00091 ACEXML_SAXPrint_Handler::setDocumentLocator (ACEXML_Locator * locator)
00092 {
00093
00094 this->locator_ = locator;
00095
00096 }
00097
00098 void
00099 ACEXML_SAXPrint_Handler::skippedEntity (const ACEXML_Char *name
00100 ACEXML_ENV_ARG_DECL_NOT_USED)
00101 {
00102
00103
00104 ACE_DEBUG ((LM_DEBUG,
00105 ACE_TEXT ("* Event skippedEntity (%s) ***************\n"),
00106 name));
00107 }
00108
00109 void
00110 ACEXML_SAXPrint_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
00111 {
00112
00113
00114 ACE_DEBUG ((LM_DEBUG,
00115 ACE_TEXT ("* Event startDocument () ***************\n")));
00116 }
00117
00118 void
00119 ACEXML_SAXPrint_Handler::startElement (const ACEXML_Char *,
00120 const ACEXML_Char *,
00121 const ACEXML_Char *qName,
00122 ACEXML_Attributes *alist
00123 ACEXML_ENV_ARG_DECL_NOT_USED)
00124 {
00125
00126
00127 this->print_indent ();
00128
00129 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("<%s"),
00130 qName));
00131 if (alist != 0)
00132 for (size_t i = 0; i < alist->getLength (); ++i)
00133 {
00134 ACE_DEBUG ((LM_DEBUG,
00135 ACE_TEXT (" %s = \"%s\""),
00136 alist->getQName (i), alist->getValue (i)));
00137 }
00138 ACE_DEBUG ((LM_DEBUG, ACE_TEXT (">")));
00139 this->inc_indent ();
00140 }
00141
00142 void
00143 ACEXML_SAXPrint_Handler::startPrefixMapping (const ACEXML_Char * ,
00144 const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
00145 {
00146
00147
00148
00149
00150
00151 }
00152
00153
00154
00155 void
00156 ACEXML_SAXPrint_Handler::notationDecl (const ACEXML_Char *,
00157 const ACEXML_Char *,
00158 const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
00159 {
00160
00161 }
00162
00163 void
00164 ACEXML_SAXPrint_Handler::unparsedEntityDecl (const ACEXML_Char *,
00165 const ACEXML_Char *,
00166 const ACEXML_Char *,
00167 const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
00168 {
00169
00170 }
00171
00172
00173
00174 ACEXML_InputSource *
00175 ACEXML_SAXPrint_Handler::resolveEntity (const ACEXML_Char *,
00176 const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
00177 {
00178
00179 return 0;
00180 }
00181
00182
00183
00184
00185
00186
00187 void
00188 ACEXML_SAXPrint_Handler::error (ACEXML_SAXParseException & ex
00189 ACEXML_ENV_ARG_DECL_NOT_USED)
00190 {
00191 ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
00192 (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
00193 this->locator_->getLineNumber(),
00194 this->locator_->getColumnNumber()));
00195 ex.print();
00196 }
00197
00198 void
00199 ACEXML_SAXPrint_Handler::fatalError (ACEXML_SAXParseException & ex
00200 ACEXML_ENV_ARG_DECL_NOT_USED)
00201 {
00202 ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
00203 (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
00204 this->locator_->getLineNumber(),
00205 this->locator_->getColumnNumber()));
00206 ex.print();
00207 }
00208
00209 void
00210 ACEXML_SAXPrint_Handler::warning (ACEXML_SAXParseException & ex
00211 ACEXML_ENV_ARG_DECL_NOT_USED)
00212 {
00213 ACE_DEBUG ((LM_DEBUG, "%s: line: %d col: %d ",
00214 (this->locator_->getSystemId() == 0 ? this->fileName_ : this->locator_->getSystemId()),
00215 this->locator_->getLineNumber(),
00216 this->locator_->getColumnNumber()));
00217 ex.print();
00218 }
00219
00220 void
00221 ACEXML_SAXPrint_Handler::print_indent (void)
00222 {
00223 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
00224 for (size_t i = 0; i < this->indent_; ++i)
00225 ACE_DEBUG ((LM_DEBUG, ACE_TEXT (" ")));
00226 }