Version History0.2, 2015/3/15, Ardan Patwardhan: 1) Added support for color 2) Added support for triangle representation of segment - this is in support of Amira segmentations 0.3, 2015/10/21, Paul Korir: 1) Added voxelTransform 2) Added filePath for segmentLinks to HDF5 (Segger) segmentations 3) Added segmentObjects with contours and meshes for IMOD 0.4, 2015/11/04, Paul Korir: 1) Added alpha for rgb color (transparency) 0.5, 2015/12/14, Paul Korir: 1) Removed 'voxelTransform'2) Moved 'numberOfCopies' as 'numberOfInstances' to be a sequence element within 'biologicalAnnotation'3) Made 'color' a choice between 'name' (X11/HTML4 sRGB colour space names) and 'rgba'4) Added a 'transform' element, which is a possibly empty list of transformation matrices referenced within the document by a non-negative identifier5) Renamed 'segmentLink' to 'voxelSegmentation' and added a 'transformId' element6) Renamed 'color' element to 'colour' and 'colorType' to 'colourType'7) Structured 'shapePrimitive' to a list of 'shapePrimitive' (substitution group for 'ellipsoid', 'cuboid', 'pyramid', 'cylinder')8) Identified and labeled deprecated data types9) Renamed shapePrimitive 'pyramid' to 'cone' and added tentative definition10) Removed 'origin' and 'viewVectorRotation' elements from shape primitives (cuboid, ellipsoid, cone, cylinder) and replaced with 'transformId' element11) Renamed references to 'triangles' to 'polygons' e.g. 'triangleListType' now 'polygonListType'0.5.1, 2015/12/23, Paul Korir:1) Change colourType to have rgbaType minOccurs=12) Added 'attribute' element (e.g. for FOM) to shapePrimitive3) Deleted comment: 'Are the CCP4 format masks going to be allowed? If so, we could represent the information of the mask (mapType) here.' from 'voxelSegmentation'.4) Added segment 'format' element to 'voxelSegmentation' restricted to values 'runLengthEncoding', 'MRC', or 'Segger'5) Renamed 'voxelSegmentation' to 'threeDVolume' and deprecated 'subTomogramAverage'.6) Restructured 'transforms' into a list ('transformList') of 'transform', which is a substitutionGroup of 'transformationMatrix', 'canonicalEulerAngles' or 'viewVectorRotation'. 7) Added an 'angleDegreeType' to restrict angle range in degrees [0,360].0.5.2, 2016/01/04, Paul Korir:1) Made 'transformList' optional2) Added 'id' attributes for 'canonicalEulerAngle' and 'viewVectorRotation'3) Annotations for 'filePath'4) Added 'other' to types for 'externalReference' and optional 'otherTypes' attribute5) Changed type of 'name' element in 'colour' from 'xs:string' to 'xs:token'6) Created 'threeDVolumeType' to be used by 'threeDVolume' and 'subtomogramAverage'7) Added 'id' attributes for 'shapePrimitive' and 'threeDVolumeType'8) Renamed 'contours' to 'contourList'9) Created 'meshList' as a sequence of 'mesh'. Each 'mesh' has an 'id'0.5.3, 2016/01/06, Paul Korir:1) Renamed 'transformationMatrixType' attribute from 'transformId' to 'id'2) Created 'dimensionType' for all 'shapePrimitive' dimensions0.5.4, 2016/01/06, Paul Korir:1) Added element 'primaryDescriptor' of type restricted string to 'threeDVolume', 'shapePrimitiveList', 'contourList', 'meshList'0.5.5, 2016/01/22, Paul Korir:1) Changed 'vertices' and 'polygons' to 'vertexList' and 'polygonList', respectively.2) Added attribute 'designation' restricted to string 'vertex' (default) and 'normal' to 'vertex' element.0.5.6, 2016/01/25, Paul Korir:1) Changed attribute 'polygonID' from 'positiveInteger' to 'nonNegativeInteger'0.5.7, 2016/01/26, Paul Korir:1) Change element names to save disk space: 'vertex' to 'v', 'vertexID' to 'vID', 'point' to 'p', 'polygon' to 'P', 'polygonID' to 'PID'2) Changed 'vertexType' to have ID of type 'xs:nonNegativeInteger' (from 'xs:positiveInteger')0.5.8, 2016/04/26, Paul Korir:1) Added 'version' element at the root.0.5.8, 2016/08/08, Paul Korir:2) Made 'shapePrimitive' element 'attribute (not present in 'subtomogramAverage' optional (minOccurs=0)0.5.8, 2016/08/17, Paul Korir:3) Added a 'transformId' element to 'contourList' and to 'mesh'.0.5.8, 2016/10/04, Paul Korir:4) Simplified shape primitives by eliminating internal layering e.g. cone/dimensions/height to cone/height0.5.8, 2016/10/14, Paul Korir:5) (Finally) renamed 'surfaceType' to 'meshType' for consistency.0.5.8, 2016/10/20, Paul Korir:6) 'macromolecule' and 'complex' changed from 'positiveInteger' to 'string'0.6.0a1, 2017/02/28, Paul Korir:1) Added 'EMAN' as a 'threeDVolume' format0.6.0a2, 2017/05/15, Paul Korir:1) Restructured 'externalReferences' from simpleType to complexType2) Changed 'externalReference' to 'externalReferenceType' and replaced elements with attributes0.6.0a3, 2017/05/25, Paul Korir:1) Added element 'boundingBox' taking six integers: xmin, xmax, ymin, ymax, zmin, zmax; minimums default to 00.6.0a4, 2017/07/31, Paul Korir:1) Added global (optional) external references0.6.0a4, 2017/09/20, Paul Korir:2) Renamed global external references to globalExternalReferences
Source
<xs:element name="segmentation"><xs:annotation><xs:documentation>Link to assembly or component id.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="version" type="xs:string"/><xs:element name="name" type="xs:string"/><xs:element name="software" type="softwareType" minOccurs="0"/><xs:element name="transformList" minOccurs="0"><xs:complexType><xs:sequence><xs:element ref="transform" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element><xs:element name="filePath" type="xs:token"><xs:annotation><xs:documentation>Specifies the location of file containing referenced data. Applies to 'threeDVolume' and 'subtomogramAverage'. If its value is an empty string then the full path is assumed to be contained in the 'file' attribute that refers to the data ('threeDVolume' or 'subtomogramAverage'). Otherwise it is assumed to be a full path excluding the filename. This is consistent with concatenating the 'filePath' content with the 'file' content.</xs:documentation></xs:annotation></xs:element><xs:element name="primaryDescriptor"><xs:annotation><xs:documentation>Mandatory field. Designates the element type within 'segmentList' that contains the primary description of the segments. Constrained to be either 'threeDVolume', 'shapePrimitiveList', 'contourList' or 'meshList'.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="threeDVolume"/><xs:enumeration value="shapePrimitiveList"/><xs:enumeration value="contourList"/><xs:enumeration value="meshList"/></xs:restriction></xs:simpleType></xs:element><xs:element name="boundingBox" type="boundingBoxType" minOccurs="0"/><xs:element name="globalExternalReferences" type="externalReferenceType" minOccurs="0"/><xs:element name="segmentList"><xs:complexType><xs:sequence><xs:element name="segment" type="segmentType" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element><xs:element name="details" type="xs:string" minOccurs="0"/></xs:sequence><xs:attribute name="schemaVersion" type="xs:token" default="0.6.0a4"><xs:annotation><xs:documentation><![CDATA[
Version History
0.2, 2015/3/15, Ardan Patwardhan:
1) Added support for color
2) Added support for triangle representation of segment - this is in support of Amira segmentations
0.3, 2015/10/21, Paul Korir:
1) Added voxelTransform
2) Added filePath for segmentLinks to HDF5 (Segger) segmentations
3) Added segmentObjects with contours and meshes for IMOD
0.4, 2015/11/04, Paul Korir:
1) Added alpha for rgb color (transparency)
0.5, 2015/12/14, Paul Korir:
1) Removed 'voxelTransform'
2) Moved 'numberOfCopies' as 'numberOfInstances' to be a sequence element within 'biologicalAnnotation'
3) Made 'color' a choice between 'name' (X11/HTML4 sRGB colour space names) and 'rgba'
4) Added a 'transform' element, which is a possibly empty list of transformation matrices referenced within the document by a non-negative identifier
5) Renamed 'segmentLink' to 'voxelSegmentation' and added a 'transformId' element
6) Renamed 'color' element to 'colour' and 'colorType' to 'colourType'
7) Structured 'shapePrimitive' to a list of 'shapePrimitive' (substitution group for 'ellipsoid', 'cuboid', 'pyramid', 'cylinder')
8) Identified and labeled deprecated data types
9) Renamed shapePrimitive 'pyramid' to 'cone' and added tentative definition
10) Removed 'origin' and 'viewVectorRotation' elements from shape primitives (cuboid, ellipsoid, cone, cylinder) and replaced with 'transformId' element
11) Renamed references to 'triangles' to 'polygons' e.g. 'triangleListType' now 'polygonListType'
0.5.1, 2015/12/23, Paul Korir:
1) Change colourType to have rgbaType minOccurs=1
2) Added 'attribute' element (e.g. for FOM) to shapePrimitive
3) Deleted comment: 'Are the CCP4 format masks going to be allowed? If so, we could represent the information of the mask (mapType) here.' from 'voxelSegmentation'.
4) Added segment 'format' element to 'voxelSegmentation' restricted to values 'runLengthEncoding', 'MRC', or 'Segger'
5) Renamed 'voxelSegmentation' to 'threeDVolume' and deprecated 'subTomogramAverage'.
6) Restructured 'transforms' into a list ('transformList') of 'transform', which is a substitutionGroup of 'transformationMatrix', 'canonicalEulerAngles' or 'viewVectorRotation'.
7) Added an 'angleDegreeType' to restrict angle range in degrees [0,360].
0.5.2, 2016/01/04, Paul Korir:
1) Made 'transformList' optional
2) Added 'id' attributes for 'canonicalEulerAngle' and 'viewVectorRotation'
3) Annotations for 'filePath'
4) Added 'other' to types for 'externalReference' and optional 'otherTypes' attribute
5) Changed type of 'name' element in 'colour' from 'xs:string' to 'xs:token'
6) Created 'threeDVolumeType' to be used by 'threeDVolume' and 'subtomogramAverage'
7) Added 'id' attributes for 'shapePrimitive' and 'threeDVolumeType'
8) Renamed 'contours' to 'contourList'
9) Created 'meshList' as a sequence of 'mesh'. Each 'mesh' has an 'id'
0.5.3, 2016/01/06, Paul Korir:
1) Renamed 'transformationMatrixType' attribute from 'transformId' to 'id'
2) Created 'dimensionType' for all 'shapePrimitive' dimensions
0.5.4, 2016/01/06, Paul Korir:
1) Added element 'primaryDescriptor' of type restricted string to 'threeDVolume', 'shapePrimitiveList', 'contourList', 'meshList'
0.5.5, 2016/01/22, Paul Korir:
1) Changed 'vertices' and 'polygons' to 'vertexList' and 'polygonList', respectively.
2) Added attribute 'designation' restricted to string 'vertex' (default) and 'normal' to 'vertex' element.
0.5.6, 2016/01/25, Paul Korir:
1) Changed attribute 'polygonID' from 'positiveInteger' to 'nonNegativeInteger'
0.5.7, 2016/01/26, Paul Korir:
1) Change element names to save disk space: 'vertex' to 'v', 'vertexID' to 'vID', 'point' to 'p', 'polygon' to 'P', 'polygonID' to 'PID'
2) Changed 'vertexType' to have ID of type 'xs:nonNegativeInteger' (from 'xs:positiveInteger')
0.5.8, 2016/04/26, Paul Korir:
1) Added 'version' element at the root.
0.5.8, 2016/08/08, Paul Korir:
2) Made 'shapePrimitive' element 'attribute (not present in 'subtomogramAverage' optional (minOccurs=0)
0.5.8, 2016/08/17, Paul Korir:
3) Added a 'transformId' element to 'contourList' and to 'mesh'.
0.5.8, 2016/10/04, Paul Korir:
4) Simplified shape primitives by eliminating internal layering e.g. cone/dimensions/height to cone/height
0.5.8, 2016/10/14, Paul Korir:
5) (Finally) renamed 'surfaceType' to 'meshType' for consistency.
0.5.8, 2016/10/20, Paul Korir:
6) 'macromolecule' and 'complex' changed from 'positiveInteger' to 'string'
0.6.0a1, 2017/02/28, Paul Korir:
1) Added 'EMAN' as a 'threeDVolume' format
0.6.0a2, 2017/05/15, Paul Korir:
1) Restructured 'externalReferences' from simpleType to complexType
2) Changed 'externalReference' to 'externalReferenceType' and replaced elements with attributes
0.6.0a3, 2017/05/25, Paul Korir:
1) Added element 'boundingBox' taking six integers: xmin, xmax, ymin, ymax, zmin, zmax; minimums default to 0
0.6.0a4, 2017/07/31, Paul Korir:
1) Added global (optional) external references
0.6.0a4, 2017/09/20, Paul Korir:
2) Renamed global external references to globalExternalReferences
]]></xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
Specifies the location of file containing referenced data.Applies to 'threeDVolume' and 'subtomogramAverage'. If its value is anempty string then the full path is assumed to be contained in the 'file'attribute that refers to the data ('threeDVolume' or'subtomogramAverage'). Otherwise it is assumed to be a full pathexcluding the filename. This is consistent with concatenating the'filePath' content with the 'file' content.
Diagram
Type
xs:token
Properties
content
simple
Source
<xs:element name="filePath" type="xs:token"><xs:annotation><xs:documentation>Specifies the location of file containing referenced data. Applies to 'threeDVolume' and 'subtomogramAverage'. If its value is an empty string then the full path is assumed to be contained in the 'file' attribute that refers to the data ('threeDVolume' or 'subtomogramAverage'). Otherwise it is assumed to be a full path excluding the filename. This is consistent with concatenating the 'filePath' content with the 'file' content.</xs:documentation></xs:annotation></xs:element>
Mandatory field. Designates the element type within'segmentList' that contains the primary description of the segments.Constrained to be either 'threeDVolume', 'shapePrimitiveList','contourList' or 'meshList'.
Diagram
Type
restriction of xs:string
Properties
content
simple
Facets
enumeration
threeDVolume
enumeration
shapePrimitiveList
enumeration
contourList
enumeration
meshList
Source
<xs:element name="primaryDescriptor"><xs:annotation><xs:documentation>Mandatory field. Designates the element type within 'segmentList' that contains the primary description of the segments. Constrained to be either 'threeDVolume', 'shapePrimitiveList', 'contourList' or 'meshList'.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="threeDVolume"/><xs:enumeration value="shapePrimitiveList"/><xs:enumeration value="contourList"/><xs:enumeration value="meshList"/></xs:restriction></xs:simpleType></xs:element>
<xs:element name="biologicalAnnotation" minOccurs="0"><xs:complexType><xs:sequence><xs:element name="description" type="xs:string" minOccurs="0"/><xs:element name="externalReferences" minOccurs="0"><xs:complexType><xs:sequence><xs:element name="ref" type="externalReferenceType" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element><xs:element name="numberOfInstances" type="xs:positiveInteger" minOccurs="0"><xs:annotation><xs:documentation>Number of instances present of the basic structure (complex or macromolecule). For example it could be '7' for the upper ring of GroEL</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element>
Number of instances present of the basic structure(complex or macromolecule). For example it could be '7' for theupper ring of GroEL
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
Source
<xs:element name="numberOfInstances" type="xs:positiveInteger" minOccurs="0"><xs:annotation><xs:documentation>Number of instances present of the basic structure (complex or macromolecule). For example it could be '7' for the upper ring of GroEL</xs:documentation></xs:annotation></xs:element>
This is particularly relevant if all the segments are storedin one file, like in HDF5.
Diagram
Type
xs:token
Properties
content
simple
minOccurs
0
Source
<xs:element name="objectPath" type="xs:token" minOccurs="0"><xs:annotation><xs:documentation>This is particularly relevant if all the segments are stored in one file, like in HDF5.</xs:documentation></xs:annotation></xs:element>
<xs:element name="contourLevel" type="xs:float" minOccurs="0"><xs:annotation><xs:documentation>Should be specified if map is non-binary</xs:documentation></xs:annotation></xs:element>
<xs:element name="offset" type="integerVectorType"><xs:annotation><xs:documentation>Offset of the segment relative to the orign map.</xs:documentation></xs:annotation></xs:element>
<xs:complexType name="macromoleculesAndComplexesType"><xs:annotation><xs:documentation>Depending on the problem, one can either reference the sample on the macromolecule level or the complex level.</xs:documentation></xs:annotation><xs:sequence><xs:element name="macromolecule" minOccurs="0"><xs:complexType><xs:sequence><xs:element name="id" type="xs:string" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element><xs:element name="complex" minOccurs="0"><xs:complexType><xs:sequence><xs:element name="id" type="xs:string" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType>
Complex Type colourType
Namespace
No namespace
Annotations
The 'name' corresponds to the sRGB colour space name and mapsprecisely to an RGB value. When this happens, the alpha channel should be set to '1'(opaque). Requires the use of an external Python module (webcolors.py).
<xs:complexType name="colourType"><xs:annotation><xs:documentation>The 'name' corresponds to the sRGB colour space name and maps precisely to an RGB value. When this happens, the alpha channel should be set to '1' (opaque). Requires the use of an external Python module (webcolors.py).</xs:documentation></xs:annotation><xs:choice><xs:element name="name" type="xs:token"/><xs:element name="rgba" type="rgbaType" minOccurs="1"/></xs:choice></xs:complexType>
<xs:complexType name="threeDVolumeType"><xs:sequence><xs:element name="file" type="xs:token"/><xs:element name="objectPath" type="xs:token" minOccurs="0"><xs:annotation><xs:documentation>This is particularly relevant if all the segments are stored in one file, like in HDF5.</xs:documentation></xs:annotation></xs:element><xs:element name="contourLevel" type="xs:float" minOccurs="0"><xs:annotation><xs:documentation>Should be specified if map is non-binary</xs:documentation></xs:annotation></xs:element><xs:element name="transformId" type="xs:nonNegativeInteger" minOccurs="0"/><xs:element name="format"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="runLengthEncoding"/><xs:enumeration value="MRC"/><xs:enumeration value="Segger"/><xs:enumeration value="EMAN"/></xs:restriction></xs:simpleType></xs:element></xs:sequence><xs:attribute name="id" type="xs:nonNegativeInteger"/></xs:complexType>
data is a space-separated sequence of numbers to be converted tofloats. The number of items in 'data' is equivalent to the product of 'rows' and'cols'.
<xs:complexType name="transformationMatrixType"><xs:annotation><xs:documentation>data is a space-separated sequence of numbers to be converted to floats. The number of items in 'data' is equivalent to the product of 'rows' and 'cols'.</xs:documentation></xs:annotation><xs:sequence><xs:element name="rows" type="xs:positiveInteger"/><xs:element name="cols" type="xs:positiveInteger"/><xs:element name="data" type="xs:string"/></xs:sequence><xs:attribute name="id" type="xs:nonNegativeInteger"/></xs:complexType>
Complex Type canonicalEulerAnglesType
Namespace
No namespace
Annotations
Euler angler according to Heymann et al. 2005(doi:10.1016/j.jsb.2005.06.001)
Angles are specified in degrees together with theirbounds.
<xs:complexType name="canonicalEulerAnglesType"><xs:annotation><xs:documentation>Euler angler according to Heymann et al. 2005 (doi:10.1016/j.jsb.2005.06.001)</xs:documentation><xs:documentation>Angles are specified in degrees together with their bounds.</xs:documentation></xs:annotation><xs:sequence><xs:element name="phi" type="angleDegreeType"/><xs:element name="theta" type="angleDegreeType"/><xs:element name="psi" type="angleDegreeType"/></xs:sequence><xs:attribute name="id" type="xs:nonNegativeInteger"/></xs:complexType>
<xs:complexType name="runLengthEncodingType"><xs:annotation><xs:documentation>Deprecated</xs:documentation></xs:annotation><xs:sequence><xs:element name="string"><xs:simpleType><xs:restriction base="xs:token"><xs:pattern value="\d+(,\d+)+"/></xs:restriction></xs:simpleType></xs:element><xs:element name="offset" type="integerVectorType"><xs:annotation><xs:documentation>Offset of the segment relative to the orign map.</xs:documentation></xs:annotation></xs:element><xs:element name="boxSize" type="positiveIntegerVectorType"/></xs:sequence></xs:complexType>
Version History0.2, 2015/3/15, Ardan Patwardhan: 1) Added support for color 2) Added support for triangle representation of segment - this is in support of Amira segmentations 0.3, 2015/10/21, Paul Korir: 1) Added voxelTransform 2) Added filePath for segmentLinks to HDF5 (Segger) segmentations 3) Added segmentObjects with contours and meshes for IMOD 0.4, 2015/11/04, Paul Korir: 1) Added alpha for rgb color (transparency) 0.5, 2015/12/14, Paul Korir: 1) Removed 'voxelTransform'2) Moved 'numberOfCopies' as 'numberOfInstances' to be a sequence element within 'biologicalAnnotation'3) Made 'color' a choice between 'name' (X11/HTML4 sRGB colour space names) and 'rgba'4) Added a 'transform' element, which is a possibly empty list of transformation matrices referenced within the document by a non-negative identifier5) Renamed 'segmentLink' to 'voxelSegmentation' and added a 'transformId' element6) Renamed 'color' element to 'colour' and 'colorType' to 'colourType'7) Structured 'shapePrimitive' to a list of 'shapePrimitive' (substitution group for 'ellipsoid', 'cuboid', 'pyramid', 'cylinder')8) Identified and labeled deprecated data types9) Renamed shapePrimitive 'pyramid' to 'cone' and added tentative definition10) Removed 'origin' and 'viewVectorRotation' elements from shape primitives (cuboid, ellipsoid, cone, cylinder) and replaced with 'transformId' element11) Renamed references to 'triangles' to 'polygons' e.g. 'triangleListType' now 'polygonListType'0.5.1, 2015/12/23, Paul Korir:1) Change colourType to have rgbaType minOccurs=12) Added 'attribute' element (e.g. for FOM) to shapePrimitive3) Deleted comment: 'Are the CCP4 format masks going to be allowed? If so, we could represent the information of the mask (mapType) here.' from 'voxelSegmentation'.4) Added segment 'format' element to 'voxelSegmentation' restricted to values 'runLengthEncoding', 'MRC', or 'Segger'5) Renamed 'voxelSegmentation' to 'threeDVolume' and deprecated 'subTomogramAverage'.6) Restructured 'transforms' into a list ('transformList') of 'transform', which is a substitutionGroup of 'transformationMatrix', 'canonicalEulerAngles' or 'viewVectorRotation'. 7) Added an 'angleDegreeType' to restrict angle range in degrees [0,360].0.5.2, 2016/01/04, Paul Korir:1) Made 'transformList' optional2) Added 'id' attributes for 'canonicalEulerAngle' and 'viewVectorRotation'3) Annotations for 'filePath'4) Added 'other' to types for 'externalReference' and optional 'otherTypes' attribute5) Changed type of 'name' element in 'colour' from 'xs:string' to 'xs:token'6) Created 'threeDVolumeType' to be used by 'threeDVolume' and 'subtomogramAverage'7) Added 'id' attributes for 'shapePrimitive' and 'threeDVolumeType'8) Renamed 'contours' to 'contourList'9) Created 'meshList' as a sequence of 'mesh'. Each 'mesh' has an 'id'0.5.3, 2016/01/06, Paul Korir:1) Renamed 'transformationMatrixType' attribute from 'transformId' to 'id'2) Created 'dimensionType' for all 'shapePrimitive' dimensions0.5.4, 2016/01/06, Paul Korir:1) Added element 'primaryDescriptor' of type restricted string to 'threeDVolume', 'shapePrimitiveList', 'contourList', 'meshList'0.5.5, 2016/01/22, Paul Korir:1) Changed 'vertices' and 'polygons' to 'vertexList' and 'polygonList', respectively.2) Added attribute 'designation' restricted to string 'vertex' (default) and 'normal' to 'vertex' element.0.5.6, 2016/01/25, Paul Korir:1) Changed attribute 'polygonID' from 'positiveInteger' to 'nonNegativeInteger'0.5.7, 2016/01/26, Paul Korir:1) Change element names to save disk space: 'vertex' to 'v', 'vertexID' to 'vID', 'point' to 'p', 'polygon' to 'P', 'polygonID' to 'PID'2) Changed 'vertexType' to have ID of type 'xs:nonNegativeInteger' (from 'xs:positiveInteger')0.5.8, 2016/04/26, Paul Korir:1) Added 'version' element at the root.0.5.8, 2016/08/08, Paul Korir:2) Made 'shapePrimitive' element 'attribute (not present in 'subtomogramAverage' optional (minOccurs=0)0.5.8, 2016/08/17, Paul Korir:3) Added a 'transformId' element to 'contourList' and to 'mesh'.0.5.8, 2016/10/04, Paul Korir:4) Simplified shape primitives by eliminating internal layering e.g. cone/dimensions/height to cone/height0.5.8, 2016/10/14, Paul Korir:5) (Finally) renamed 'surfaceType' to 'meshType' for consistency.0.5.8, 2016/10/20, Paul Korir:6) 'macromolecule' and 'complex' changed from 'positiveInteger' to 'string'0.6.0a1, 2017/02/28, Paul Korir:1) Added 'EMAN' as a 'threeDVolume' format0.6.0a2, 2017/05/15, Paul Korir:1) Restructured 'externalReferences' from simpleType to complexType2) Changed 'externalReference' to 'externalReferenceType' and replaced elements with attributes0.6.0a3, 2017/05/25, Paul Korir:1) Added element 'boundingBox' taking six integers: xmin, xmax, ymin, ymax, zmin, zmax; minimums default to 00.6.0a4, 2017/07/31, Paul Korir:1) Added global (optional) external references0.6.0a4, 2017/09/20, Paul Korir:2) Renamed global external references to globalExternalReferences
<xs:attribute name="schemaVersion" type="xs:token" default="0.6.0a4"><xs:annotation><xs:documentation><![CDATA[
Version History
0.2, 2015/3/15, Ardan Patwardhan:
1) Added support for color
2) Added support for triangle representation of segment - this is in support of Amira segmentations
0.3, 2015/10/21, Paul Korir:
1) Added voxelTransform
2) Added filePath for segmentLinks to HDF5 (Segger) segmentations
3) Added segmentObjects with contours and meshes for IMOD
0.4, 2015/11/04, Paul Korir:
1) Added alpha for rgb color (transparency)
0.5, 2015/12/14, Paul Korir:
1) Removed 'voxelTransform'
2) Moved 'numberOfCopies' as 'numberOfInstances' to be a sequence element within 'biologicalAnnotation'
3) Made 'color' a choice between 'name' (X11/HTML4 sRGB colour space names) and 'rgba'
4) Added a 'transform' element, which is a possibly empty list of transformation matrices referenced within the document by a non-negative identifier
5) Renamed 'segmentLink' to 'voxelSegmentation' and added a 'transformId' element
6) Renamed 'color' element to 'colour' and 'colorType' to 'colourType'
7) Structured 'shapePrimitive' to a list of 'shapePrimitive' (substitution group for 'ellipsoid', 'cuboid', 'pyramid', 'cylinder')
8) Identified and labeled deprecated data types
9) Renamed shapePrimitive 'pyramid' to 'cone' and added tentative definition
10) Removed 'origin' and 'viewVectorRotation' elements from shape primitives (cuboid, ellipsoid, cone, cylinder) and replaced with 'transformId' element
11) Renamed references to 'triangles' to 'polygons' e.g. 'triangleListType' now 'polygonListType'
0.5.1, 2015/12/23, Paul Korir:
1) Change colourType to have rgbaType minOccurs=1
2) Added 'attribute' element (e.g. for FOM) to shapePrimitive
3) Deleted comment: 'Are the CCP4 format masks going to be allowed? If so, we could represent the information of the mask (mapType) here.' from 'voxelSegmentation'.
4) Added segment 'format' element to 'voxelSegmentation' restricted to values 'runLengthEncoding', 'MRC', or 'Segger'
5) Renamed 'voxelSegmentation' to 'threeDVolume' and deprecated 'subTomogramAverage'.
6) Restructured 'transforms' into a list ('transformList') of 'transform', which is a substitutionGroup of 'transformationMatrix', 'canonicalEulerAngles' or 'viewVectorRotation'.
7) Added an 'angleDegreeType' to restrict angle range in degrees [0,360].
0.5.2, 2016/01/04, Paul Korir:
1) Made 'transformList' optional
2) Added 'id' attributes for 'canonicalEulerAngle' and 'viewVectorRotation'
3) Annotations for 'filePath'
4) Added 'other' to types for 'externalReference' and optional 'otherTypes' attribute
5) Changed type of 'name' element in 'colour' from 'xs:string' to 'xs:token'
6) Created 'threeDVolumeType' to be used by 'threeDVolume' and 'subtomogramAverage'
7) Added 'id' attributes for 'shapePrimitive' and 'threeDVolumeType'
8) Renamed 'contours' to 'contourList'
9) Created 'meshList' as a sequence of 'mesh'. Each 'mesh' has an 'id'
0.5.3, 2016/01/06, Paul Korir:
1) Renamed 'transformationMatrixType' attribute from 'transformId' to 'id'
2) Created 'dimensionType' for all 'shapePrimitive' dimensions
0.5.4, 2016/01/06, Paul Korir:
1) Added element 'primaryDescriptor' of type restricted string to 'threeDVolume', 'shapePrimitiveList', 'contourList', 'meshList'
0.5.5, 2016/01/22, Paul Korir:
1) Changed 'vertices' and 'polygons' to 'vertexList' and 'polygonList', respectively.
2) Added attribute 'designation' restricted to string 'vertex' (default) and 'normal' to 'vertex' element.
0.5.6, 2016/01/25, Paul Korir:
1) Changed attribute 'polygonID' from 'positiveInteger' to 'nonNegativeInteger'
0.5.7, 2016/01/26, Paul Korir:
1) Change element names to save disk space: 'vertex' to 'v', 'vertexID' to 'vID', 'point' to 'p', 'polygon' to 'P', 'polygonID' to 'PID'
2) Changed 'vertexType' to have ID of type 'xs:nonNegativeInteger' (from 'xs:positiveInteger')
0.5.8, 2016/04/26, Paul Korir:
1) Added 'version' element at the root.
0.5.8, 2016/08/08, Paul Korir:
2) Made 'shapePrimitive' element 'attribute (not present in 'subtomogramAverage' optional (minOccurs=0)
0.5.8, 2016/08/17, Paul Korir:
3) Added a 'transformId' element to 'contourList' and to 'mesh'.
0.5.8, 2016/10/04, Paul Korir:
4) Simplified shape primitives by eliminating internal layering e.g. cone/dimensions/height to cone/height
0.5.8, 2016/10/14, Paul Korir:
5) (Finally) renamed 'surfaceType' to 'meshType' for consistency.
0.5.8, 2016/10/20, Paul Korir:
6) 'macromolecule' and 'complex' changed from 'positiveInteger' to 'string'
0.6.0a1, 2017/02/28, Paul Korir:
1) Added 'EMAN' as a 'threeDVolume' format
0.6.0a2, 2017/05/15, Paul Korir:
1) Restructured 'externalReferences' from simpleType to complexType
2) Changed 'externalReference' to 'externalReferenceType' and replaced elements with attributes
0.6.0a3, 2017/05/25, Paul Korir:
1) Added element 'boundingBox' taking six integers: xmin, xmax, ymin, ymax, zmin, zmax; minimums default to 0
0.6.0a4, 2017/07/31, Paul Korir:
1) Added global (optional) external references
0.6.0a4, 2017/09/20, Paul Korir:
2) Renamed global external references to globalExternalReferences
]]></xs:documentation></xs:annotation></xs:attribute>