devel
devel > Gifti XSD details.
Feb 21, 2008 08:02 PM | Erik Anderson
Gifti XSD details.
Hi all,
Below are the details of the .xsd XML Schema that can be found in the Files section. Please note that the .xsd represents a translation from the .dtd originally defining the XML Schema to use. That being said, it should be fully backward compatible as it strengthens the constraints placed upon the schema as given in the documentation for the standard.
The original comments are below:
- The XML specification is a DTD. This is out-dated and very limiting. Most of the comments after this point can be addressed almost trivially by moving the specification from DTD to XSD. By moving away from the DTD-based spec, we gain the ability to type our data. This allows us to store things not just as CDATA, but as anything from floats, ints, strings, etc.
- The XML tree needs to be re-worked to reflect the multiplicity of the objects in the spec. This, once again, is easily done after moving away from the DTD spec. (implemented in .xsd file)
- Page 5 section 2.3.1 The current DTD-based schema does NOT enforce the fact that the coordinate system child is only used for data arrays of NIFTI_INTENT_POINTSET
- The MetaData type is defined twice: once for the Gifti parent object and once for the data array object. This should be moved outside and re-used in both places instead of re-defined. (resolved in .xsd)
- Cardinality of the Gifti Children (page 9 section 2.5) should be defined in the XSD.
Thank you,
Erik
Below are the details of the .xsd XML Schema that can be found in the Files section. Please note that the .xsd represents a translation from the .dtd originally defining the XML Schema to use. That being said, it should be fully backward compatible as it strengthens the constraints placed upon the schema as given in the documentation for the standard.
The original comments are below:
- The XML specification is a DTD. This is out-dated and very limiting. Most of the comments after this point can be addressed almost trivially by moving the specification from DTD to XSD. By moving away from the DTD-based spec, we gain the ability to type our data. This allows us to store things not just as CDATA, but as anything from floats, ints, strings, etc.
- The XML tree needs to be re-worked to reflect the multiplicity of the objects in the spec. This, once again, is easily done after moving away from the DTD spec. (implemented in .xsd file)
- Page 5 section 2.3.1 The current DTD-based schema does NOT enforce the fact that the coordinate system child is only used for data arrays of NIFTI_INTENT_POINTSET
- The MetaData type is defined twice: once for the Gifti parent object and once for the data array object. This should be moved outside and re-used in both places instead of re-defined. (resolved in .xsd)
- Cardinality of the Gifti Children (page 9 section 2.5) should be defined in the XSD.
Thank you,
Erik