#include <psfa/UnitSax2ContentHandler.hpp>
Öffentliche Methoden | |
UnitSax2ContentHandler (const std::string pool, std::vector< IndexData_SP > &dataList) | |
~UnitSax2ContentHandler () | |
virtual void | characters (const XMLCh *const chars, const unsigned int length) |
virtual void | endDocument () |
virtual void | endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname) |
virtual void | ignorableWhitespace (const XMLCh *const chars, const unsigned int length) |
virtual void | processingInstruction (const XMLCh *const target, const XMLCh *const data) |
virtual void | setDocumentLocator (const xercesc::Locator *locator) |
virtual void | startDocument () |
virtual void | startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const xercesc::Attributes &attrs) |
virtual void | startPrefixMapping (const XMLCh *const prefix, const XMLCh *const uri) |
virtual void | endPrefixMapping (const XMLCh *const prefix) |
virtual void | skippedEntity (const XMLCh *const name) |
void | setFileName (const std::string name) |
Private Typen | |
enum | Mode { start, unit, index } |
Der interne Zustand beim Parsen. Mehr... | |
Private Attribute | |
Mode | mode_ |
der Zustand | |
const xercesc::Locator * | locator_ |
das locator-Objekt des Parsers | |
std::string | pool_ |
der Pool | |
std::string | aktFile_ |
der aktuelle Dateiname | |
std::string | aktUnit_ |
die aktuelle Einheit | |
std::string | aktKontext_ |
der aktuelle Kontext | |
std::vector< IndexData_SP > & | dataList_ |
der Container mit den Indizierungsergebnissen | |
std::vector< std::string > | tagNames_ |
die Such-Tags | |
std::vector< std::string > | kontextNames_ |
die Kontext-Tags | |
std::string | unitTag_ |
der Name des eindeutigen Tag-Namens, der eine Einheit kennzeichnet | |
IndexData_SP | indexData_ |
die aktuellen Indizierungdaten |
Definiert in Zeile 37 der Datei UnitSax2ContentHandler.hpp.
|
Der interne Zustand beim Parsen.
Definiert in Zeile 104 der Datei UnitSax2ContentHandler.hpp.
|
|
Definiert in Zeile 29 der Datei UnitSax2ContentHandler.cpp. Benutzt psfa::Config::getConfigValue(), kontextNames_, pool_, psfahelper::splitString(), tagNames_ und unitTag_.
00032 : mode_(start), 00033 locator_(0), 00034 pool_(pool), 00035 aktFile_(""), 00036 aktUnit_(""), 00037 aktKontext_(""), 00038 dataList_(dataList) 00039 { 00040 using psfahelper::splitString; 00041 00042 Config* conf = Config::getConfig(); 00043 splitString( conf->getConfigValue( pool, "tags" ), 00044 tagNames_ ); 00045 splitString( conf->getConfigValue( pool, "kontexts" ), 00046 kontextNames_ ); 00047 unitTag_ = conf->getConfigValue( pool_, "unitTag" ); 00048 00049 } |
|
Definiert in Zeile 53 der Datei UnitSax2ContentHandler.cpp.
00054 { 00055 00056 00057 } |
|
Definiert in Zeile 62 der Datei UnitSax2ContentHandler.cpp. Benutzt aktUnit_, index, indexData_, locator_, mode_, psfahelper::onlyWhiteSpace(), psfahelper::stripWhiteSpace(), unit und XMLCh.
00064 { 00065 using xercesc::XMLString; 00066 using psfahelper::onlyWhiteSpace; 00067 using psfahelper::stripWhiteSpace; 00068 00069 switch( mode_ ) { 00070 case index: 00071 { 00072 std::string content( chars, chars+length); 00073 bool ignore = onlyWhiteSpace( content ); 00074 if( ignore ) { 00075 indexData_->content = ""; 00076 } 00077 else { 00078 indexData_->content = stripWhiteSpace( content ); 00079 } 00080 indexData_->lineStop = locator_->getLineNumber(); 00081 indexData_->columnStop = locator_->getColumnNumber(); 00082 } 00083 break; 00084 case unit: 00085 { 00086 std::string content(chars, chars+length); 00087 bool ignore = psfahelper::onlyWhiteSpace( content ); 00088 if( ignore ) { 00089 aktUnit_ = "Einheit ohne Namen"; 00090 } 00091 else { 00092 aktUnit_ = stripWhiteSpace( content ); 00093 } 00094 } 00095 break; 00096 default: 00097 break; 00098 } 00099 return; 00100 } |
|
Definiert in Zeile 105 der Datei UnitSax2ContentHandler.cpp.
00106 { 00107 00108 } |
|
Definiert in Zeile 113 der Datei UnitSax2ContentHandler.cpp. Benutzt dataList_, index, indexData_, mode_, start, unit und XMLCh.
|
|
Definiert in Zeile 239 der Datei UnitSax2ContentHandler.cpp. Benutzt XMLCh.
00240 { 00241 00242 00243 } |
|
Definiert in Zeile 134 der Datei UnitSax2ContentHandler.cpp. Benutzt XMLCh.
00136 { 00137 00138 } |
|
Definiert in Zeile 143 der Datei UnitSax2ContentHandler.cpp. Benutzt XMLCh.
00145 { 00146 00147 } |
|
Definiert in Zeile 152 der Datei UnitSax2ContentHandler.cpp. Benutzt locator_.
00153 { 00154 locator_ = locator; 00155 return; 00156 } |
|
Definiert in Zeile 255 der Datei UnitSax2ContentHandler.cpp. Benutzt aktFile_. Wird benutzt von psfa::UnitParser::parse().
00256 { 00257 aktFile_ = name; 00258 return; 00259 } |
|
Definiert in Zeile 248 der Datei UnitSax2ContentHandler.cpp. Benutzt XMLCh.
00249 { 00250 00251 } |
|
Definiert in Zeile 161 der Datei UnitSax2ContentHandler.cpp.
00162 { 00163 00164 } |
|
Definiert in Zeile 169 der Datei UnitSax2ContentHandler.cpp. Benutzt aktFile_, aktKontext_, aktUnit_, psfahelper::getXMLChLength(), index, indexData_, psfa::IndexData_SP, kontextNames_, locator_, mode_, start, psfahelper::stripWhiteSpace(), psfa::sVec, tagNames_, unit, unitTag_ und XMLCh.
00173 { 00174 using std::string; 00175 using std::vector; 00176 using std::find; 00177 using psfahelper::getXMLChLength; 00178 using psfahelper::stripWhiteSpace; 00179 typedef vector< string > sVec; 00180 00181 string::size_type i = getXMLChLength( qname ); 00182 string tagName( qname, qname + i ); 00183 if( unitTag_ == tagName ) { 00184 mode_ = unit; 00185 return; 00186 } 00187 00188 sVec::iterator nEnd = kontextNames_.end(); 00189 sVec::iterator match = find( kontextNames_.begin(), 00190 nEnd, 00191 tagName ); 00192 if( match != nEnd ) { 00193 aktKontext_ = tagName; 00194 return; 00195 } 00196 00197 nEnd = tagNames_.end(); 00198 match = find( tagNames_.begin(), nEnd, tagName ); 00199 if( match != nEnd && mode_ == start ) { 00200 indexData_ = IndexData_SP( new IndexData ); 00201 indexData_->file = aktFile_; 00202 indexData_->unit = aktUnit_; 00203 indexData_->kontext = aktKontext_; 00204 indexData_->tag = tagName; 00205 unsigned int l = attrs.getLength(); 00206 if( l != 0 ) { 00207 for( unsigned int i = 0; i < l; ++i ) { 00208 const XMLCh* const aName = attrs.getLocalName( i ); 00209 const XMLCh* const aValue = attrs.getValue( i ); 00210 string::size_type s = getXMLChLength( aName ); 00211 string name( aName, aName + s ); 00212 s = getXMLChLength( aValue ); 00213 string value( aValue, aValue + s ); 00214 AttMap::value_type att( stripWhiteSpace( name ), 00215 stripWhiteSpace( value ) 00216 ); 00217 indexData_->attributes.insert( att ); 00218 } 00219 } 00220 indexData_->lineStart = locator_->getLineNumber(); 00221 indexData_->columnStart = locator_->getColumnNumber(); 00222 mode_ = index; 00223 } 00224 return; 00225 } |
|
Definiert in Zeile 230 der Datei UnitSax2ContentHandler.cpp. Benutzt XMLCh.
00232 { 00233 00234 } |
|
der aktuelle Dateiname
Definiert in Zeile 116 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von setFileName() und startElement(). |
|
der aktuelle Kontext
Definiert in Zeile 120 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von startElement(). |
|
die aktuelle Einheit
Definiert in Zeile 118 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von characters() und startElement(). |
|
der Container mit den Indizierungsergebnissen
Definiert in Zeile 122 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von endElement(). |
|
die aktuellen Indizierungdaten
Definiert in Zeile 132 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von characters(), endElement() und startElement(). |
|
die Kontext-Tags
Definiert in Zeile 127 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von startElement() und UnitSax2ContentHandler(). |
|
das locator-Objekt des Parsers
Definiert in Zeile 112 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von characters(), setDocumentLocator() und startElement(). |
|
der Zustand
Definiert in Zeile 110 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von characters(), endElement() und startElement(). |
|
der Pool
Definiert in Zeile 114 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von UnitSax2ContentHandler(). |
|
die Such-Tags
Definiert in Zeile 125 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von startElement() und UnitSax2ContentHandler(). |
|
der Name des eindeutigen Tag-Namens, der eine Einheit kennzeichnet
Definiert in Zeile 129 der Datei UnitSax2ContentHandler.hpp. Wird benutzt von startElement() und UnitSax2ContentHandler(). |