#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(). |
1.3.4