| OpenMS 2.5.0

Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
XMLHandler Class Reference

Base class for XML handlers. More...

`#include <OpenMS/FORMAT/HANDLERS/XMLHandler.h>`

Inheritance diagram for XMLHandler:

## Classes

class | EndParsingSoftly
| Exception that is thrown if the parsing is ended by some event (e.g. if only a prefix of the XML file is needed). More...

## Public Types

enum | ActionMode { LOAD, STORE }
| Action to set the current mode (for error messages) More...
enum | LOADDETAIL { LD_ALLDATA, LD_RAWCOUNTS, LD_COUNTS_WITHOPTIONS }

## Public Member Functions

| XMLHandler (const String &filename, const String &version)
| Default constructor. More...
| ~XMLHandler () override
| Destructor. More...
void | reset ()
| Release internal memory used for parsing (call. More...
void | fatalError (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const
| Fatal error handler. Throws a ParseError exception. More...
void | error (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const
| Error handler for recoverable errors. More...
void | warning (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const
| Warning handler. More...
void | characters (const XMLCh *const chars, const XMLSize_t length) override
| Parsing method for character data. More...
void | startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const xercesc::Attributes &attrs) override
| Parsing method for opening tags. More...
void | endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname) override
| Parsing method for closing tags. More...
virtual void | writeTo (std::ostream &)
| Writes the contents to a stream. More...
String | errorString ()
| Returns the last error description. More...
virtual LOADDETAIL | getLoadDetail () const
| handler which support partial loading, implement this method More...
virtual void | setLoadDetail (const LOADDETAIL d)
| handler which support partial loading, implement this method More...
void | checkUniqueIdentifiers_ (const std::vector< ProteinIdentification > &prot_ids)
Reimplemented XERCES-C error handlers
These methods forward the error message to our own error handlers below.
void | fatalError (const xercesc::SAXParseException &exception) override
void | error (const xercesc::SAXParseException &exception) override
void | warning (const xercesc::SAXParseException &exception) override

## Static Public Member Functions

static String | writeXMLEscape (const String &to_escape)
| Escapes a string and returns the escaped string. More...

## Protected Member Functions

bool | equal_ (const XMLCh *a, const XMLCh *b) const
| Returns if two Xerces strings are equal. More...
General MetaInfo handling (for idXML, featureXML, consensusXML)
void | writeUserParam_ (const String &tag_name, std::ostream &os, const MetaInfoInterface &meta, UInt indent) const
| Writes the content of MetaInfoInterface to the file. More...
String conversion
Int | asInt_ (const String &in)
| Conversion of a String to an integer value. More...
Int | asInt_ (const XMLCh *in)
| Conversion of a Xerces string to an integer value. More...
UInt | asUInt_ (const String &in)
| Conversion of a String to an unsigned integer value. More...
double | asDouble_ (const String &in)
| Conversion of a String to a double value. More...
float | asFloat_ (const String &in)
| Conversion of a String to a float value. More...
bool | asBool_ (const String &in)
| Conversion of a string to a boolean value. More...
DateTime | asDateTime_ (String date_string)
| Conversion of a xs:datetime string to a DateTime value. More...
Accessing attributes
String | attributeAsString_ (const xercesc::Attributes &a, const char *name) const
| Converts an attribute to a String. More...
Int | attributeAsInt_ (const xercesc::Attributes &a, const char *name) const
| Converts an attribute to a Int. More...
double | attributeAsDouble_ (const xercesc::Attributes &a, const char *name) const
| Converts an attribute to a double. More...
DoubleList | attributeAsDoubleList_ (const xercesc::Attributes &a, const char *name) const
| Converts an attribute to a DoubleList. More...
IntList | attributeAsIntList_ (const xercesc::Attributes &a, const char *name) const
| Converts an attribute to an IntList. More...
StringList | attributeAsStringList_ (const xercesc::Attributes &a, const char *name) const
| Converts an attribute to an StringList. More...
bool | optionalAttributeAsString_ (String &value, const xercesc::Attributes &a, const char *name) const
| Assigns the attribute content to the String value if the attribute is present. More...
bool | optionalAttributeAsInt_ (Int &value, const xercesc::Attributes &a, const char *name) const
| Assigns the attribute content to the Int value if the attribute is present. More...
bool | optionalAttributeAsUInt_ (UInt &value, const xercesc::Attributes &a, const char *name) const
| Assigns the attribute content to the UInt value if the attribute is present. More...
bool | optionalAttributeAsDouble_ (double &value, const xercesc::Attributes &a, const char *name) const
| Assigns the attribute content to the double value if the attribute is present. More...
bool | optionalAttributeAsDoubleList_ (DoubleList &value, const xercesc::Attributes &a, const char *name) const
| Assigns the attribute content to the DoubleList value if the attribute is present. More...
bool | optionalAttributeAsStringList_ (StringList &value, const xercesc::Attributes &a, const char *name) const
| Assigns the attribute content to the StringList value if the attribute is present. More...
bool | optionalAttributeAsIntList_ (IntList &value, const xercesc::Attributes &a, const char *name) const
| Assigns the attribute content to the IntList value if the attribute is present. More...
String | attributeAsString_ (const xercesc::Attributes &a, const XMLCh *name) const
| Converts an attribute to a String. More...
Int | attributeAsInt_ (const xercesc::Attributes &a, const XMLCh *name) const
| Converts an attribute to a Int. More...
double | attributeAsDouble_ (const xercesc::Attributes &a, const XMLCh *name) const
| Converts an attribute to a double. More...
DoubleList | attributeAsDoubleList_ (const xercesc::Attributes &a, const XMLCh *name) const
| Converts an attribute to a DoubleList. More...
IntList | attributeAsIntList_ (const xercesc::Attributes &a, const XMLCh *name) const
| Converts an attribute to a IntList. More...
StringList | attributeAsStringList_ (const xercesc::Attributes &a, const XMLCh *name) const
| Converts an attribute to a StringList. More...
bool | optionalAttributeAsString_ (String &value, const xercesc::Attributes &a, const XMLCh *name) const
| Assigns the attribute content to the String value if the attribute is present. More...
bool | optionalAttributeAsInt_ (Int &value, const xercesc::Attributes &a, const XMLCh *name) const
| Assigns the attribute content to the Int value if the attribute is present. More...
bool | optionalAttributeAsUInt_ (UInt &value, const xercesc::Attributes &a, const XMLCh *name) const
| Assigns the attribute content to the UInt value if the attribute is present. More...
bool | optionalAttributeAsDouble_ (double &value, const xercesc::Attributes &a, const XMLCh *name) const
| Assigns the attribute content to the double value if the attribute is present. More...
bool | optionalAttributeAsDoubleList_ (DoubleList &value, const xercesc::Attributes &a, const XMLCh *name) const
| Assigns the attribute content to the DoubleList value if the attribute is present. More...
bool | optionalAttributeAsIntList_ (IntList &value, const xercesc::Attributes &a, const XMLCh *name) const
| Assigns the attribute content to the IntList value if the attribute is present. More...
bool | optionalAttributeAsStringList_ (StringList &value, const xercesc::Attributes &a, const XMLCh *name) const
| Assigns the attribute content to the StringList value if the attribute is present. More...

## Protected Attributes

String | error_message_
| Error message of the last error. More...
String | file_
| File name. More...
String | version_
| Schema version. More...
StringManager | sm_
| Helper class for string conversion. More...
std::vector< String > | open_tags_
| Stack of open XML tags. More...
LOADDETAIL | load_detail_
| parse only until total number of scans and chroms have been determined from attributes More...

## Private Member Functions

| XMLHandler ()
| Not implemented. More...
const String & | expectList_ (const String &str) const

## controlled vocabulary handling methods

std::vector< std::vector< String > > | cv_terms_
| Array of CV term lists (one sublist denotes one term and it's children) More...
SignedSize | cvStringToEnum_ (const Size section, const String &term, const char *message, const SignedSize result_on_error=0)

## Detailed Description

Base class for XML handlers.

## Member Enumeration Documentation

## ◆ ActionMode

enum ActionMode

Action to set the current mode (for error messages)

Enumerator
LOAD | Loading a file.
STORE | Storing a file.

## ◆ LOADDETAIL

enum LOADDETAIL

Enumerator
LD_ALLDATA |
LD_RAWCOUNTS |
LD_COUNTS_WITHOPTIONS |

## Constructor & Destructor Documentation

## ◆ XMLHandler() [1/2]

XMLHandler | ( | const String & | filename,
|  | const String & | version
| ) |  |

Default constructor.

## ◆ ~XMLHandler()

~XMLHandler | ( |  | ) |

override

Destructor.

## ◆ XMLHandler() [2/2]

XMLHandler | ( |  | ) |

private

Not implemented.

## Member Function Documentation

## ◆ asBool_()

bool asBool_ | ( | const String & | in | ) |

inline protected

Conversion of a string to a boolean value.

'true', 'false', '1' and '0' are accepted.

For all other values a parse error is produced.

## ◆ asDateTime_()

DateTime asDateTime_ | ( | String | date_string | ) |

inline protected

Conversion of a xs:datetime string to a DateTime value.

References DateTime::set(), String::substr(), and String::trim().

## ◆ asDouble_()

double asDouble_ | ( | const String & | in | ) |

inline protected

Conversion of a String to a double value.

References String::toDouble().

## ◆ asFloat_()

float asFloat_ | ( | const String & | in | ) |

inline protected

Conversion of a String to a float value.

References String::toFloat().

## ◆ asInt_() [1/2]

Int asInt_ | ( | const String & | in | ) |

inline protected

Conversion of a String to an integer value.

References String::toInt().

## ◆ asInt_() [2/2]

Int asInt_ | ( | const XMLCh * | in | ) |

inline protected

Conversion of a Xerces string to an integer value.

## ◆ asUInt_()

UInt asUInt_ | ( | const String & | in | ) |

inline protected

Conversion of a String to an unsigned integer value.

References String::toInt().

## ◆ attributeAsDouble_() [1/2]

double attributeAsDouble_ | ( | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Converts an attribute to a double.

References StringManager::convert().

## ◆ attributeAsDouble_() [2/2]

double attributeAsDouble_ | ( | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Converts an attribute to a double.

References StringManager::convert().

## ◆ attributeAsDoubleList_() [1/2]

DoubleList attributeAsDoubleList_ | ( | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Converts an attribute to a DoubleList.

References String::substr().

## ◆ attributeAsDoubleList_() [2/2]

DoubleList attributeAsDoubleList_ | ( | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Converts an attribute to a DoubleList.

References String::substr().

## ◆ attributeAsInt_() [1/2]

Int attributeAsInt_ | ( | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Converts an attribute to a Int.

References StringManager::convert().

## ◆ attributeAsInt_() [2/2]

Int attributeAsInt_ | ( | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Converts an attribute to a Int.

References StringManager::convert().

## ◆ attributeAsIntList_() [1/2]

IntList attributeAsIntList_ | ( | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Converts an attribute to an IntList.

References String::substr().

## ◆ attributeAsIntList_() [2/2]

IntList attributeAsIntList_ | ( | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Converts an attribute to a IntList.

References String::substr().

## ◆ attributeAsString_() [1/2]

String attributeAsString_ | ( | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Converts an attribute to a String.

References StringManager::convert().

## ◆ attributeAsString_() [2/2]

String attributeAsString_ | ( | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Converts an attribute to a String.

References StringManager::convert().

## ◆ attributeAsStringList_() [1/2]

StringList attributeAsStringList_ | ( | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Converts an attribute to an StringList.

References String::substr().

## ◆ attributeAsStringList_() [2/2]

StringList attributeAsStringList_ | ( | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Converts an attribute to a StringList.

References String::substr().

## ◆ characters()

void characters | ( | const XMLCh *const | chars,
|  | const XMLSize_t | length
| ) |  |

override

Parsing method for character data.

## ◆ checkUniqueIdentifiers_()

void checkUniqueIdentifiers_ | ( | const std::vector< ProteinIdentification > & | prot_ids | ) |

throws a ParseError if protIDs are not unique, i.e. PeptideIDs will be randomly assigned (bad!) Should be called before writing any ProtIDs to file

## ◆ cvStringToEnum_()

SignedSize cvStringToEnum_ | ( | const Size | section,
|  | const String & | term,
|  | const char * | message,
|  | const SignedSize | result_on_error = `0`
| ) |  |

inline protected

Converts `term` to the index of the term in the cv_terms_ entry `section` If the term is not found, `result_on_error` is returned (0 by default)

References seqan::find(), and OPENMS_PRECONDITION.

## ◆ endElement()

void endElement | ( | const XMLCh *const | uri,
|  | const XMLCh *const | localname,
|  | const XMLCh *const | qname
| ) |  |

override

Parsing method for closing tags.

## ◆ equal_()

bool equal_ | ( | const XMLCh * | a,
|  | const XMLCh * | b
| ) |  | const

inline protected

Returns if two Xerces strings are equal.

## ◆ error() [1/2]

void error | ( | const xercesc::SAXParseException & | exception | ) |

override

## ◆ error() [2/2]

void error | ( | ActionMode | mode,
|  | const String & | msg,
|  | UInt | line = `0`,
|  | UInt | column = `0`
| ) |  | const

Error handler for recoverable errors.

## ◆ errorString()

String errorString | ( |  | ) |

Returns the last error description.

## ◆ expectList_()

const String& expectList_ | ( | const String & | str | ) | const

inline private

References String::hasPrefix(), and String::hasSuffix().

## ◆ fatalError() [1/2]

void fatalError | ( | const xercesc::SAXParseException & | exception | ) |

override

## ◆ fatalError() [2/2]

void fatalError | ( | ActionMode | mode,
|  | const String & | msg,
|  | UInt | line = `0`,
|  | UInt | column = `0`
| ) |  | const

Fatal error handler. Throws a ParseError exception.

## ◆ getLoadDetail()

virtual LOADDETAIL getLoadDetail | ( |  | ) | const

virtual

handler which support partial loading, implement this method

Reimplemented in MzMLHandler, and MzXMLHandler.

## ◆ optionalAttributeAsDouble_() [1/2]

bool optionalAttributeAsDouble_ | ( | double & | value,
|  | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Assigns the attribute content to the double value if the attribute is present.

Returns
  if the attribute was present

References StringManager::convert().

## ◆ optionalAttributeAsDouble_() [2/2]

bool optionalAttributeAsDouble_ | ( | double & | value,
|  | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Assigns the attribute content to the double value if the attribute is present.

References StringManager::convert().

## ◆ optionalAttributeAsDoubleList_() [1/2]

bool optionalAttributeAsDoubleList_ | ( | DoubleList & | value,
|  | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Assigns the attribute content to the DoubleList value if the attribute is present.

Returns
  if the attribute was present

References StringManager::convert().

## ◆ optionalAttributeAsDoubleList_() [2/2]

bool optionalAttributeAsDoubleList_ | ( | DoubleList & | value,
|  | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Assigns the attribute content to the DoubleList value if the attribute is present.

Returns
  if the attribute was present

## ◆ optionalAttributeAsInt_() [1/2]

bool optionalAttributeAsInt_ | ( | Int & | value,
|  | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Assigns the attribute content to the Int value if the attribute is present.

Returns
  if the attribute was present

References StringManager::convert().

## ◆ optionalAttributeAsInt_() [2/2]

bool optionalAttributeAsInt_ | ( | Int & | value,
|  | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Assigns the attribute content to the Int value if the attribute is present.

## ◆ optionalAttributeAsIntList_() [1/2]

bool optionalAttributeAsIntList_ | ( | IntList & | value,
|  | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Assigns the attribute content to the IntList value if the attribute is present.

Returns
  if the attribute was present

References StringManager::convert().

## ◆ optionalAttributeAsIntList_() [2/2]

bool optionalAttributeAsIntList_ | ( | IntList & | value,
|  | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Assigns the attribute content to the IntList value if the attribute is present.

Returns
  if the attribute was present

## ◆ optionalAttributeAsString_() [1/2]

bool optionalAttributeAsString_ | ( | String & | value,
|  | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Assigns the attribute content to the String value if the attribute is present.

Returns
  if the attribute was present

References StringManager::convert().

## ◆ optionalAttributeAsString_() [2/2]

bool optionalAttributeAsString_ | ( | String & | value,
|  | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Assigns the attribute content to the String value if the attribute is present.

References StringManager::convert().

## ◆ optionalAttributeAsStringList_() [1/2]

bool optionalAttributeAsStringList_ | ( | StringList & | value,
|  | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Assigns the attribute content to the StringList value if the attribute is present.

Returns
  if the attribute was present

References StringManager::convert().

## ◆ optionalAttributeAsStringList_() [2/2]

bool optionalAttributeAsStringList_ | ( | StringList & | value,
|  | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Assigns the attribute content to the StringList value if the attribute is present.

Returns
  if the attribute was present

## ◆ optionalAttributeAsUInt_() [1/2]

bool optionalAttributeAsUInt_ | ( | UInt & | value,
|  | const xercesc::Attributes & | a,
|  | const char * | name
| ) |  | const

inline protected

Assigns the attribute content to the UInt value if the attribute is present.

Returns
  if the attribute was present

References StringManager::convert().

## ◆ optionalAttributeAsUInt_() [2/2]

bool optionalAttributeAsUInt_ | ( | UInt & | value,
|  | const xercesc::Attributes & | a,
|  | const XMLCh * | name
| ) |  | const

inline protected

Assigns the attribute content to the UInt value if the attribute is present.

## ◆ reset()

void reset | ( |  | ) |

Release internal memory used for parsing (call.

## ◆ setLoadDetail()

virtual void setLoadDetail | ( | const LOADDETAIL | d | ) |

virtual

handler which support partial loading, implement this method

Reimplemented in MzMLHandler, and MzXMLHandler.

## ◆ startElement()

void startElement | ( | const XMLCh *const | uri,
|  | const XMLCh *const | localname,
|  | const XMLCh *const | qname,
|  | const xercesc::Attributes & | attrs
| ) |  |

override

Parsing method for opening tags.

## ◆ warning() [1/2]

void warning | ( | const xercesc::SAXParseException & | exception | ) |

override

## ◆ warning() [2/2]

void warning | ( | ActionMode | mode,
|  | const String & | msg,
|  | UInt | line = `0`,
|  | UInt | column = `0`
| ) |  | const

Warning handler.

## ◆ writeTo()

virtual void writeTo | ( | std::ostream & |  | ) |

virtual

Writes the contents to a stream.

Reimplemented in MzMLHandler, MzIdentMLHandler, XQuestResultXMLHandler, MzXMLHandler, MzDataHandler, TraMLHandler, MzQuantMLHandler, ToolDescriptionHandler, and PTMXMLHandler.

## ◆ writeUserParam_()

void writeUserParam_ | ( | const String & | tag_name,
|  | std::ostream & | os,
|  | const MetaInfoInterface & | meta,
|  | UInt | indent
| ) |  | const

protected

Writes the content of MetaInfoInterface to the file.

## ◆ writeXMLEscape()

static String writeXMLEscape | ( | const String & | to_escape | ) |

inline static

Escapes a string and returns the escaped string.

Some characters must be escaped which are allowed in user params. E.g. > and & are not in XML and need to be escaped. Parsing those escaped strings from file again is automatically done by Xerces. Escaped characters are: & < > " '

References String::has(), and String::substitute().

## Member Data Documentation

## ◆ cv_terms_

std::vector<std::vector<String> > cv_terms_

protected

Array of CV term lists (one sublist denotes one term and it's children)

## ◆ error_message_

String error_message_

mutable protected

Error message of the last error.

## ◆ file_

String file_

protected

File name.

## ◆ load_detail_

LOADDETAIL load_detail_

protected

parse only until total number of scans and chroms have been determined from attributes

## ◆ open_tags_

std::vector<String> open_tags_

protected

Stack of open XML tags.

This member is used only in those XML parsers that need this information.

## ◆ sm_

StringManager sm_

protected

Helper class for string conversion.

## ◆ version_

String version_

protected

Schema version.