OpenMS
Loading...
Searching...
No Matches
MzMLValidator Class Reference

Semantic validator for mzML files. More...

#include <OpenMS/FORMAT/VALIDATORS/MzMLValidator.h>

Inheritance diagram for MzMLValidator:
[legend]
Collaboration diagram for MzMLValidator:
[legend]

Public Member Functions

 MzMLValidator (const CVMappings &mapping, const ControlledVocabulary &cv)
 Constructor.
 
 ~MzMLValidator () override
 Destructor.
 
- Public Member Functions inherited from SemanticValidator
 SemanticValidator (const CVMappings &mapping, const ControlledVocabulary &cv)
 Constructor.
 
 ~SemanticValidator () override
 Destructor.
 
bool validate (const std::string &filename, StringList &errors, StringList &warnings)
 Semantically validates an XML file.
 
bool locateTerm (const std::string &path, const CVTerm &parsed_term) const
 Checks if a CVTerm is allowed in a given path.
 
void setTag (const std::string &tag)
 Sets the CV parameter tag name (default: 'cvParam')
 
void setAccessionAttribute (const std::string &accession)
 Sets the name of the attribute for accessions in the CV parameter tag name (default: 'accession')
 
void setNameAttribute (const std::string &name)
 Sets the name of the attribute for accessions in the CV parameter tag name (default: 'name')
 
void setValueAttribute (const std::string &value)
 Sets the name of the attribute for accessions in the CV parameter tag name (default: 'value')
 
void setCheckTermValueTypes (bool check)
 Set if CV term value types should be check (enabled by default)
 
void setCheckUnits (bool check)
 Set if CV term units should be check (disabled by default)
 
void setUnitAccessionAttribute (const std::string &accession)
 Sets the name of the unit accession attribute (default: 'unitAccession')
 
void setUnitNameAttribute (const std::string &name)
 Sets the name of the unit name attribute (default: 'unitName')
 
- Public Member Functions inherited from XMLFile
 XMLFile ()
 Construct an XMLFile without schema info; schema_location_ remains unset, so isValid cannot be used until derived-class logic initializes schema_location_ before calling isValid.
 
 XMLFile (const std::string &schema_location, const std::string &version)
 Construct with a schema location for later isValid calls.
 
virtual ~XMLFile ()
 Virtual destructor — defaulted; allows safe deletion through a base-class pointer.
 
bool isValid (const std::string &filename, std::ostream &os)
 Check if filename validates against the bound XML schema.
 
const std::string & getVersion () const
 Return the schema version string passed to the parameterised constructor; empty for default-constructed instances.
 

Protected Member Functions

void startElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attributes) override
 
std::string getPath_ (UInt remove_from_end=0) const override
 Returns the current element path.
 
void handleTerm_ (const std::string &path, const CVTerm &parsed_term) override
 Handling of the term.
 
- Protected Member Functions inherited from SemanticValidator
void startElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attributes) override
 
void endElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname) override
 
void characters (const XMLCh *const chars, const XMLSize_t) override
 
virtual void getCVTerm_ (const xercesc::Attributes &attributes, CVTerm &parsed_term)
 Parses the CV term accession (required), name (required) and value (optional) from the XML attributes.
 
- Protected Member Functions inherited from XMLHandler
void writeUserParam_ (const std::string &tag_name, std::ostream &os, const MetaInfoInterface &meta, UInt indent) const
 Writes the content of MetaInfoInterface to the file.
 
Int asInt_ (const std::string &in) const
 Conversion of a std::string to an integer value.
 
Int asInt_ (const XMLCh *in) const
 Conversion of a Xerces string to an integer value.
 
UInt asUInt_ (const std::string &in) const
 Conversion of a std::string to an unsigned integer value.
 
double asDouble_ (const std::string &in) const
 Conversion of a std::string to a double value.
 
float asFloat_ (const std::string &in) const
 Conversion of a std::string to a float value.
 
bool asBool_ (const std::string &in) const
 Conversion of a string to a boolean value.
 
DateTime asDateTime_ (std::string date_string) const
 Conversion of a xs:datetime string to a DateTime value.
 
bool equal_ (const XMLCh *a, const XMLCh *b) const
 Returns if two Xerces strings are equal.
 
SignedSize cvStringToEnum_ (const Size section, const std::string &term, const char *message, const SignedSize result_on_error=0)
 
std::string attributeAsString_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a String.
 
Int attributeAsInt_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a Int.
 
double attributeAsDouble_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a double.
 
DoubleList attributeAsDoubleList_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a DoubleList.
 
IntList attributeAsIntList_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to an IntList.
 
StringList attributeAsStringList_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to an StringList.
 
bool optionalAttributeAsString_ (std::string &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the String value if the attribute is present.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
std::string attributeAsString_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a String.
 
Int attributeAsInt_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a Int.
 
double attributeAsDouble_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a double.
 
DoubleList attributeAsDoubleList_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a DoubleList.
 
IntList attributeAsIntList_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a IntList.
 
StringList attributeAsStringList_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a StringList.
 
bool optionalAttributeAsString_ (std::string &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the String value if the attribute is present.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
 XMLHandler (const std::string &filename, const std::string &version)
 Default constructor.
 
 ~XMLHandler () override
 Destructor.
 
void reset ()
 Release internal memory used for parsing (call.
 
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 std::string &msg, UInt line=0, UInt column=0) const
 Fatal error handler. Throws a ParseError exception.
 
void error (ActionMode mode, const std::string &msg, UInt line=0, UInt column=0) const
 Error handler for recoverable errors.
 
void warning (ActionMode mode, const std::string &msg, UInt line=0, UInt column=0) const
 Warning handler.
 
void characters (const XMLCh *const chars, const XMLSize_t length) override
 Parsing method for character data.
 
void startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const xercesc::Attributes &attrs) override
 Parsing method for opening tags.
 
void endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname) override
 Parsing method for closing tags.
 
virtual void writeTo (std::ostream &)
 Writes the contents to a stream.
 
virtual LOADDETAIL getLoadDetail () const
 handler which support partial loading, implement this method
 
virtual void setLoadDetail (const LOADDETAIL d)
 handler which support partial loading, implement this method
 
DataValue cvParamToValue (const ControlledVocabulary &cv, const std::string &parent_tag, const std::string &accession, const std::string &name, const std::string &value, const std::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.
 
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.
 
void checkUniqueIdentifiers_ (const std::vector< ProteinIdentification > &prot_ids) const
 
- Protected Member Functions inherited from XMLFile
void parse_ (const std::string &filename, XMLHandler *handler)
 Parse the XML file at filename through handler.
 
void parseBuffer_ (const std::string &buffer, XMLHandler *handler)
 Parse an in-memory XML buffer through handler.
 
void save_ (const std::string &filename, XMLHandler *handler) const
 Stores the contents of the XML handler given by handler in the file given by filename.
 
void enforceEncoding_ (const std::string &encoding)
 Set or clear the XML-encoding override applied to subsequent parse_ / parseBuffer_ calls.
 
 XMLFile ()
 Construct an XMLFile without schema info; schema_location_ remains unset, so isValid cannot be used until derived-class logic initializes schema_location_ before calling isValid.
 
 XMLFile (const std::string &schema_location, const std::string &version)
 Construct with a schema location for later isValid calls.
 
virtual ~XMLFile ()
 Virtual destructor — defaulted; allows safe deletion through a base-class pointer.
 
bool isValid (const std::string &filename, std::ostream &os)
 Check if filename validates against the bound XML schema.
 
const std::string & getVersion () const
 Return the schema version string passed to the parameterised constructor; empty for default-constructed instances.
 

Protected Attributes

std::map< std::string, std::vector< CVTerm > > param_groups_
 CV terms which can have a value (term => value type)
 
std::string current_id_
 Current referenceableParamGroup identifier.
 
std::string binary_data_array_
 Binary data array name.
 
std::string binary_data_type_
 Binary data array type.
 
- Protected Attributes inherited from SemanticValidator
const CVMappingsmapping_
 Reference to the mappings.
 
const ControlledVocabularycv_
 Reference to the CVs.
 
StringList errors_
 Validation errors.
 
StringList warnings_
 Validation warnings.
 
StringList open_tags_
 List of open tags.
 
std::map< std::string, std::vector< CVMappingRule > > rules_
 Rules (location => rule)
 
std::map< std::string, std::map< std::string, std::map< std::string, UInt > > > fulfilled_
 
std::string cv_tag_
 
std::string accession_att_
 
std::string name_att_
 
std::string value_att_
 
std::string unit_accession_att_
 
std::string unit_name_att_
 
bool check_term_value_types_
 
bool check_units_
 
- Protected Attributes inherited from XMLHandler
std::string file_
 File name.
 
std::string version_
 Schema version.
 
StringManager sm_
 Helper class for string conversion.
 
std::vector< std::string > open_tags_
 Stack of open XML tags.
 
LOADDETAIL load_detail_
 parse only until total number of scans and chroms have been determined from attributes
 
std::vector< std::vector< std::string > > cv_terms_
 Array of CV term lists (one sublist denotes one term and it's children)
 
- Protected Attributes inherited from XMLFile
std::string schema_location_
 Path of the XML schema for validation; empty when the default constructor was used (isValid then throws NotImplemented).
 
std::string schema_version_
 Schema version string returned by getVersion.
 
std::string enforced_encoding_
 Optional XML encoding override applied to the InputSource in parse_ and parseBuffer_; empty disables the override. Used as a workaround for XTandem output XML which carries an encoding the parser otherwise stumbles on.
 

Private Member Functions

 MzMLValidator ()
 Not implemented.
 
 MzMLValidator (const MzMLValidator &rhs)
 Not implemented.
 
MzMLValidatoroperator= (const MzMLValidator &rhs)
 Not implemented.
 

Additional Inherited Members

- Protected Types inherited from XMLHandler
enum  ActionMode { LOAD , STORE }
 Action to set the current mode (for error messages) More...
 
enum  LOADDETAIL { LD_ALLDATA , LD_RAWCOUNTS , LD_COUNTS_WITHOPTIONS }
 
- Static Protected Member Functions inherited from XMLHandler
static std::string writeXMLEscape (const std::string &to_escape)
 Escapes a string and returns the escaped string.
 
static DataValue fromXSDString (const std::string &type, const std::string &value)
 Convert an XSD type (e.g. 'xsd:double') to a DataValue.
 

Detailed Description

Semantic validator for mzML files.

Specialises SemanticValidator with mzML-specific rules in addition to the generic CV-mapping checks:

  • Terms placed inside a referenceableParamGroup are remembered and re-validated wherever the group is referenced via referenceableParamGroupRef.
  • For each binaryDataArray, the data-array CV term and the data-type CV term are cross-checked: the value type must be listed as a valid pairing for the data array (otherwise an error is reported).
  • The leading indexedmzML wrapper, if present, is stripped from the reported element path so validation messages refer to the mzML body.
  • GO and BTO terms are skipped because they use part_of relations which the is_a-based inheritance check cannot evaluate.

Unit checking is enabled.

Constructor & Destructor Documentation

◆ MzMLValidator() [1/3]

MzMLValidator ( const CVMappings mapping,
const ControlledVocabulary cv 
)

Constructor.

Parameters
[in]mappingThe mapping rules
[in]cvAll controlled vocabularies required for the mapping

◆ ~MzMLValidator()

~MzMLValidator ( )
override

Destructor.

◆ MzMLValidator() [2/3]

MzMLValidator ( )
private

Not implemented.

◆ MzMLValidator() [3/3]

MzMLValidator ( const MzMLValidator rhs)
private

Not implemented.

Member Function Documentation

◆ getPath_()

std::string getPath_ ( UInt  remove_from_end = 0) const
overrideprotectedvirtual

Returns the current element path.

Reimplemented from SemanticValidator.

◆ handleTerm_()

void handleTerm_ ( const std::string &  path,
const CVTerm parsed_term 
)
overrideprotectedvirtual

Handling of the term.

Reimplemented from SemanticValidator.

◆ operator=()

MzMLValidator & operator= ( const MzMLValidator rhs)
private

Not implemented.

◆ startElement()

void startElement ( const XMLCh * const  ,
const XMLCh * const  ,
const XMLCh *const  qname,
const xercesc::Attributes &  attributes 
)
overrideprotected

Member Data Documentation

◆ binary_data_array_

std::string binary_data_array_
protected

Binary data array name.

◆ binary_data_type_

std::string binary_data_type_
protected

Binary data array type.

◆ current_id_

std::string current_id_
protected

Current referenceableParamGroup identifier.

◆ param_groups_

std::map<std::string, std::vector<CVTerm> > param_groups_
protected

CV terms which can have a value (term => value type)