The HDF5 DTD
Version 1.4 of HDF5 introduced some changes to the data model, specifically the introduction of an 'ARRAY' datatype, and the deletion of compound fields with 'dimensions'.
In addition, some aspects of the DTD were clarified and completed..
[ Previous DTD (5.1.2.2) ] (Available at: http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File-1.2.2.dtd)
[ Revised DTD (5.1.4) ] (Available at: http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File-1.4.dtd and as the default: http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File-1.4.dtd)
[ diff -c ]
Changes
1. Added New <Array> and <ArrayDimension> elements
These elements represent the new HDF5 ARRAY data type. Note that this data type represents a dataset that is an Array of Arrays, e.g., a three dimensional dataspace, each element of which is a two dimensional matrix.
<!-- ArrayType is new in 1.4. This replaces the dimensions in the CompoundType--> <!ELEMENT ArrayType (ArrayDimension+,DataType)> <!ATTLIST ArrayType Ndims CDATA #IMPLIED > <!-- Note: Dim permutations not implemented yet in library --> <!ELEMENT ArrayDimension EMPTY> <!ATTLIST ArrayDimension DimSize CDATA "0" DimPerm CDATA "0" >
2. Elimination of Compound Data Field <FieldDimension>
elements
The ARRAY type is a general feature which replaces the earlier compound field with dimensions. these should be replaced with a field of type ARRAY.
<!-- CompoundType is simplified in 5.1.4, eliminating the dimensions. See the ArrayType below. --> <!ELEMENT CompoundType (Field)+> <!ELEMENT Field (DataType)> <!ATTLIST Field FieldName CDATA #REQUIRED >
3. Extensions and corrections
The definition of the <ChunkedLayout> incorrectly required compression, this should be optional. (Compression information is still not specified in the DTD.) The corrected defnition is:
The <BitFieldType> and <OpaqueType> elements are more fully specified. The revised definitions are:<!ELEMENT ChunkedLayout (Compression?,ChunkDimension+)> <!ATTLIST ChunkedLayout Ndims CDATA #REQUIRED > <!ELEMENT ChunkDimension EMPTY> <!ATTLIST ChunkDimension DimSize CDATA "0" >
<!-- BitField was not specified in earlier versions of the DTD --> <!ELEMENT BitfieldType EMPTY> <!ATTLIST BitFieldType ByteOrder (BE|LE) #REQUIRED Size (1|2|4|8) #REQUIRED > <!-- OpaqueType was not specified in earlier versions of the DTD --> <!ELEMENT OpaqueType EMPTY> <!ATTLIST OpaqueType Tag CDATA #REQUIRED Size CDATA #REQUIRED >