Element <compartmentInfo> is used to store compartment location, size, shape and color.
<compartmentInfo> is part of <annotation> for <compartment> element.
DTD for compartment layout information:
<!ELEMENT compartmentInfo>
<!-- "shape" attribute possible values are:
0-rectangle; 1-round rectangle; 2-oval -->
<!ATTLIST compartmentInfo
kernel CDATA #REQUIRED
x CDATA #REQUIRED
y CDATA #REQUIRED
width CDATA #REQUIRED
height CDATA #REQUIRED
title CDATA
shape CDATA "0"
color CDATA "255, 255, 255"
>

Element <nodeInfo> is used to store node title and location. <image> element is reserved to store description of image that can be used as node view, this feature is under construction and will be completed in BioUML v. 0.7.2.
<nodeInfo> is part of <annotation> for <specie> and <reaction> SBML elements that are mapped into BioUML nodes.
DTD for node layout information:
<!ELEMENT nodeInfo (image?)>
<!ATTLIST nodeInfo
title CDATA
x CDATA
y CDATA
>
<!ELEMENT image>
<!ATTLIST image
src CDATA #REQUIRED
width CDATA
height CDATA
hideTitle CDATA "false"
>
Element <specieInfo> is used to store specie type and allows SbmlDiagramViewBuilder to generate corresponding node view.
Possible specie type values are: molecule-substance, molecule-gene, molecule-RNA or molecule-protein.
DTD for additional specie information:
<!ELEMENT specieInfo>
<!ATTLIST specieInfo
type CDATA
>

Currently element <edgeInfo> is used to store edge title, edge start and end points. Currently this feature is under construction and will be completed in BioUML v. 0.7.2 that will allow application to store complex line path for graph edge.
<edgeInfo> is part of <annotation> for <specieReference> SBML elements that is mapped into BioUML edge diagram element.
DTD for edge layout information:
<!ELEMENT edgeInfo>
<!ATTLIST edgeInfo
title CDATA
inPort CDATA
outPort CDATA
>

Constants for elements and namespaces to diagram layout information are declared at biouml.plugins.sbml.SbmlConstants:
public static final String BIOUML_XMLNS_ATTR = "xmlns:biouml";
public static final String BIOUML_XMLNS_VALUE = "http://www.biouml.org/ns";
public static final String BIOUML_COMPARTMENT_INFO_ELEMENT = "biouml:compartmentInfo";
public static final String BIOUML_NODE_INFO_ELEMENT = "biouml:nodeInfo";
public static final String BIOUML_EDGE_INFO_ELEMENT = "biouml:edgeInfo";
SbmlDiagramWriter uses methods provided by biouml.model.util.DiagramXmlWriter to write diagram layout information:
writeCompartmentInfo - writes compartment location, size, shape and color.
writeNodeInfo - writes node title and location.
isEdgeInfoInformative - indicates whether information about edge is informative and should be written.
writeEdgeInfo - writes edge title, edge start and end points.
SbmlDiagramReader uses methods provided by biouml.model.util.DiagramXmlReader to read diagram layout information:
readCompartmentInfo - reads compartment location, size, shape and color. readNodeInfo - reads node title and location. readEdgeInfo - reads edge title, edge start and end points.
