OpenMS
|
Base class for XML handlers. More...
#include <OpenMS/FORMAT/HANDLERS/XMLHandler.h>
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... | |
Protected Member Functions | |
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) const |
Conversion of a String to an integer value. More... | |
Int | asInt_ (const XMLCh *in) const |
Conversion of a Xerces string to an integer value. More... | |
UInt | asUInt_ (const String &in) const |
Conversion of a String to an unsigned integer value. More... | |
double | asDouble_ (const String &in) const |
Conversion of a String to a double value. More... | |
float | asFloat_ (const String &in) const |
Conversion of a String to a float value. More... | |
bool | asBool_ (const String &in) const |
Conversion of a string to a boolean value. More... | |
DateTime | asDateTime_ (String date_string) const |
Conversion of a xs:datetime string to a DateTime value. More... | |
Reimplemented XERCES-C error handlers | |
These methods forward the error message to our own error handlers below. | |
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... | |
void | fatalError (const xercesc::SAXParseException &exception) override |
void | error (const xercesc::SAXParseException &exception) override |
void | warning (const xercesc::SAXParseException &exception) override |
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... | |
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... | |
DataValue | cvParamToValue (const ControlledVocabulary &cv, const String &parent_tag, const String &accession, const String &name, const String &value, const String &unit_accession) const |
Convert the value of a <cvParam value=.> (as commonly found in PSI schemata) to the DataValue with the correct type (e.g. int) according to the type stored in the CV (usually PSI-MS CV), as well as set its unit. More... | |
DataValue | cvParamToValue (const ControlledVocabulary &cv, const CVTerm &raw_term) const |
Convert the value of a <cvParam value=.> (as commonly found in PSI schemata) to the DataValue with the correct type (e.g. int) according to the type stored in the CV (usually PSI-MS CV), as well as set its unit. More... | |
void | checkUniqueIdentifiers_ (const std::vector< ProteinIdentification > &prot_ids) const |
static String | writeXMLEscape (const String &to_escape) |
Escapes a string and returns the escaped string. More... | |
static DataValue | fromXSDString (const String &type, const String &value) |
Convert an XSD type (e.g. 'xsd:double') to a DataValue. More... | |
bool | equal_ (const XMLCh *a, const XMLCh *b) const |
Returns if two Xerces strings are equal. More... | |
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) |
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... | |
XMLHandler () | |
Not implemented. More... | |
const String & | expectList_ (const String &str) const |
Base class for XML handlers.
enum ActionMode |
enum LOADDETAIL |
XMLHandler | ( | const String & | filename, |
const String & | version | ||
) |
Default constructor.
|
override |
Destructor.
|
private |
Not implemented.
|
inlineprotected |
Conversion of a string to a boolean value.
'true', 'false', '1' and '0' are accepted.
For all other values a parse error is produced.
Conversion of a xs:datetime string to a DateTime value.
References DateTime::set(), String::substr(), and String::trim().
|
inlineprotected |
Conversion of a String to a double value.
References String::toDouble().
|
inlineprotected |
Conversion of a String to a float value.
References String::toFloat().
Conversion of a String to an integer value.
References String::toInt().
|
inlineprotected |
Conversion of a Xerces string to an integer value.
Conversion of a String to an unsigned integer value.
References String::toInt().
|
inlineprotected |
Converts an attribute to a double.
References StringManager::convert(), StringManager::convertPtr(), and String::toDouble().
|
inlineprotected |
Converts an attribute to a double.
References StringManager::convert().
|
inlineprotected |
Converts an attribute to a DoubleList.
References String::substr().
|
inlineprotected |
Converts an attribute to a DoubleList.
References String::substr().
|
inlineprotected |
Converts an attribute to a Int.
References StringManager::convertPtr().
|
inlineprotected |
Converts an attribute to a Int.
References StringManager::convert().
|
inlineprotected |
Converts an attribute to an IntList.
References String::substr().
|
inlineprotected |
Converts an attribute to a IntList.
References String::substr().
|
inlineprotected |
Converts an attribute to a String.
References StringManager::convert(), and StringManager::convertPtr().
|
inlineprotected |
Converts an attribute to a String.
References StringManager::convert().
|
inlineprotected |
Converts an attribute to an StringList.
References String::hasSubstring(), and String::substr().
|
inlineprotected |
Converts an attribute to a StringList.
References String::hasSubstring(), and String::substr().
|
override |
Parsing method for character data.
void checkUniqueIdentifiers_ | ( | const std::vector< ProteinIdentification > & | prot_ids | ) | const |
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
DataValue cvParamToValue | ( | const ControlledVocabulary & | cv, |
const CVTerm & | raw_term | ||
) | const |
Convert the value of a <cvParam value=.> (as commonly found in PSI schemata) to the DataValue with the correct type (e.g. int) according to the type stored in the CV (usually PSI-MS CV), as well as set its unit.
cv | A CV, usually the PSI-MS CV, see ControlledVocabulary::getPSIMSCV() |
raw_term | Represenation of the raw data (i.e. all strings) from a <cvParam ...> without the conversion to a specific value type |
value
could not be converted to an integer for an accession
which requires an integer) or the DataValue upon success DataValue cvParamToValue | ( | const ControlledVocabulary & | cv, |
const String & | parent_tag, | ||
const String & | accession, | ||
const String & | name, | ||
const String & | value, | ||
const String & | unit_accession | ||
) | const |
Convert the value of a <cvParam value=.> (as commonly found in PSI schemata) to the DataValue with the correct type (e.g. int) according to the type stored in the CV (usually PSI-MS CV), as well as set its unit.
cv | A CV, usually the PSI-MS CV, see ControlledVocabulary::getPSIMSCV() |
parent_tag | The tag which encloses the <cvParam> |
accession | The accession from the 'accession' attribute of the <cvParam> |
name | The name from the 'name' attribute of the <cvParam> |
value | The value from the 'value' attribute of the <cvParam> |
unit_accession | The unit_accession from the 'unitAccession' attribute of the <cvParam> |
value
could not be converted to an integer for an accession
which requires an integer) or the DataValue upon success
|
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)
|
override |
Parsing method for closing tags.
|
inlineprotected |
Returns if two Xerces strings are equal.
void error | ( | ActionMode | mode, |
const String & | msg, | ||
UInt | line = 0 , |
||
UInt | column = 0 |
||
) | const |
Error handler for recoverable errors.
|
override |
References String::hasPrefix(), and String::hasSuffix().
void fatalError | ( | ActionMode | mode, |
const String & | msg, | ||
UInt | line = 0 , |
||
UInt | column = 0 |
||
) | const |
Fatal error handler. Throws a ParseError exception.
|
override |
Convert an XSD type (e.g. 'xsd:double') to a DataValue.
Not all conversions are supported yet, due to DataValue using an Int64 as the largest possible integer. Thus, if the value
contains a large UInt64, conversion will fail. Value ranges are currently also not checked, only for XSD types which happen to match the internal representation.
type | An XSD type. If the type is not supported, the returned type will be a string |
value | The value in sting format, e.g. "123.34" |
Exception::ConversionError | if the value does not fit into the internal representation or (for few types) exceeds the XSD specs. |
References String::toDouble(), String::toInt32(), and String::toInt64().
|
virtual |
handler which support partial loading, implement this method
Reimplemented in MzXMLHandler, and MzMLHandler.
|
inlineprotected |
Assigns the attribute content to the double value if the attribute is present.
References StringManager::convert(), StringManager::convertPtr(), and String::toDouble().
|
inlineprotected |
Assigns the attribute content to the double value if the attribute is present.
References StringManager::convert().
|
inlineprotected |
Assigns the attribute content to the DoubleList value if the attribute is present.
References StringManager::convertPtr().
|
inlineprotected |
Assigns the attribute content to the DoubleList value if the attribute is present.
|
inlineprotected |
Assigns the attribute content to the Int value if the attribute is present.
References StringManager::convertPtr().
|
inlineprotected |
Assigns the attribute content to the Int value if the attribute is present.
|
inlineprotected |
Assigns the attribute content to the IntList value if the attribute is present.
References StringManager::convertPtr().
|
inlineprotected |
Assigns the attribute content to the IntList value if the attribute is present.
|
inlineprotected |
Assigns the attribute content to the String value if the attribute is present.
References StringManager::convert(), and StringManager::convertPtr().
|
inlineprotected |
Assigns the attribute content to the String value if the attribute is present.
References StringManager::convert().
|
inlineprotected |
Assigns the attribute content to the StringList value if the attribute is present.
References StringManager::convertPtr().
|
inlineprotected |
Assigns the attribute content to the StringList value if the attribute is present.
|
inlineprotected |
Assigns the attribute content to the UInt value if the attribute is present.
References StringManager::convertPtr().
|
inlineprotected |
Assigns the attribute content to the UInt value if the attribute is present.
void reset | ( | ) |
Release internal memory used for parsing (call.
|
virtual |
handler which support partial loading, implement this method
Reimplemented in MzXMLHandler, and MzMLHandler.
|
override |
Parsing method for opening tags.
void warning | ( | ActionMode | mode, |
const String & | msg, | ||
UInt | line = 0 , |
||
UInt | column = 0 |
||
) | const |
Warning handler.
|
override |
|
virtual |
Writes the contents to a stream.
Reimplemented in XQuestResultXMLHandler, TraMLHandler, ToolDescriptionHandler, PTMXMLHandler, MzXMLHandler, MzMLHandler, MzIdentMLHandler, MzDataHandler, FeatureXMLHandler, and ConsensusXMLHandler.
|
protected |
Writes the content of MetaInfoInterface to the file.
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().
|
protected |
Array of CV term lists (one sublist denotes one term and it's children)
|
protected |
parse only until total number of scans and chroms have been determined from attributes
|
protected |
Stack of open XML tags.
This member is used only in those XML parsers that need this information.
|
protected |
Helper class for string conversion.
|
protected |
Schema version.