Example demonstrating how to convert SBML documents between SBML Levels.
#include <iostream>
int
main (int argc, char *argv[])
{
if (argc != 3)
{
cout << "Usage: convertSBML input-filename output-filename" << endl
<< "This program will attempt to convert a model either to" << endl
<< "SBML Level " << latestLevel << " Version " << latestVersion
<< " (if the model is not already) or, if " << endl
<< "the model is already expressed in Level " << latestLevel
<< " Version " << latestVersion << ", this" << endl
<< "program will attempt to convert the model to Level 1 Version 2."
<< endl;
return 1;
}
const char* inputFile = argv[1];
const char* outputFile = argv[2];
if (errors > 0)
{
cerr << "Encountered the following SBML errors:" << endl;
cerr << "Conversion skipped. Please correct the problems above first."
<< endl;
return errors;
}
unsigned int olevel = document->
getLevel();
bool success;
if (olevel < latestLevel || oversion < latestVersion)
{
cout << "Attempting to convert Level " << olevel << " Version " << oversion
<< " model to Level " << latestLevel
<< " Version " << latestVersion << "." << endl;
}
else
{
cout << "Attempting to convert Level " << olevel << " Version " << oversion
<< " model to Level 1 Version 2." << endl;
}
if (!success)
{
cerr << "Unable to perform conversion due to the following:" << endl;
cout << endl;
cout << "Conversion skipped. Either libSBML does not (yet)" << endl
<< "have the ability to convert this model or (automatic)" << endl
<< "conversion is not possible in this case." << endl;
delete document;
return errors;
}
if (errors > 0)
{
cout << "Information may have been lost in conversion; but a valid model ";
cout << "was produced by the conversion.\nThe following information ";
cout << "was provided:\n";
}
else
{
cout << "Conversion completed." << endl;
}
delete document;
return 0;
}