sbmlteam / jsbml

JSBML is a community-driven project to create a free, open-source, pure Java™ library for reading, writing, and manipulating SBML files (the Systems Biology Markup Language) and data streams. It is an alternative to the mixed Java/native code-based interface provided in libSBML.

Home Page:https://sbml.org/software/jsbml/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

export of listOfSpeciesFeatures

piotr-gawron opened this issue · comments

When exporting a species with listOfSpeciesFeatures from multi package the resulting xml node is missing "multi:" prefix for listOfSpeciesFeatures node.

This can be reproduced by simply reading and writing the file that has properly defined listOfSpeciesFeatures (I added such file in the attachment):

SBMLDocument sbmlDocument = SBMLReader.read(inputStream);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
SBMLWriter.write(sbmlDocument, stream);
system.out(stream.toString("UTF-8"));

The resulting xml will contain a species defined as follow:

      <species boundaryCondition="false" constant="false" hasOnlySubstanceUnits="false" id="sp_AB" multi:speciesType="st_AB" name="AB">
        <listOfSpeciesFeatures>
          <multi:speciesFeature xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" multi:speciesFeatureType="phosphorylation">
            <multi:listOfSpeciesFeatureValues>
              <multi:speciesFeatureValue multi:value="U"/>
            </multi:listOfSpeciesFeatureValues>
          </multi:speciesFeature>
        </listOfSpeciesFeatures>
      </species>

This xml later on cannot be properly parsed because "multi:" prefix is missed on listOfSpeciesFeatures node and following warnings are produced:

WARN [main] (SBMLCoreParser.java:1252) - The element 'listOfSpeciesFeatures' is not recognized.
WARN [main] (AbstractReaderWriter.java:105) - processAttribute: The attribute 'speciesFeatureType' on the element speciesFeature is not part of the SBML specifications (XMLNode) or has an invalid value.
WARN [main] (AbstractReaderWriter.java:105) - processAttribute: The attribute 'value' on the element speciesFeatureValue is not part of the SBML specifications (XMLNode) or has an invalid value.

This should be fixed now.